diff --git a/changeAppSettings.sh b/changeAppSettings.sh index 81103483a..63c73cc85 100755 --- a/changeAppSettings.sh +++ b/changeAppSettings.sh @@ -1277,8 +1277,8 @@ for F in *.java; do cat $F | sed "s/package .*;/package $AppFullName;/" >> ../src/$F # | sed 's@$@ // THIS FILE IS AUTO-GENERATED@' >> done -if [ -e ../jni/application/src/java.diff ]; then patch -d ../src < ../jni/application/src/java.diff || exit 1 ; fi -if [ -e ../jni/application/src/java.patch ]; then patch -d ../src < ../jni/application/src/java.patch || exit 1 ; fi +if [ -e ../jni/application/src/java.diff ]; then patch -d ../src --no-backup-if-mismatch < ../jni/application/src/java.diff || exit 1 ; fi +if [ -e ../jni/application/src/java.patch ]; then patch -d ../src --no-backup-if-mismatch < ../jni/application/src/java.patch || exit 1 ; fi cd ../.. diff --git a/project/java/Settings.java b/project/java/Settings.java index f3520d3b4..5c91db6c4 100644 --- a/project/java/Settings.java +++ b/project/java/Settings.java @@ -566,6 +566,7 @@ class Settings nativeSetEnv( "DATADIR", Globals.DataDir ); nativeSetEnv( "UNSECURE_STORAGE_DIR", Globals.DataDir ); nativeSetEnv( "HOME", Globals.DataDir ); + nativeSetEnv( "SDCARD", Environment.getExternalStorageDirectory().getAbsolutePath() ); nativeSetEnv( "ANDROID_VERSION", String.valueOf(android.os.Build.VERSION.SDK_INT) ); Log.d("SDL", "libSDL: Is running on OUYA: " + p.isRunningOnOUYA()); if( p.isRunningOnOUYA() ) diff --git a/project/jni/application/openarena/engine b/project/jni/application/openarena/engine index 30e98be35..07c011b6c 160000 --- a/project/jni/application/openarena/engine +++ b/project/jni/application/openarena/engine @@ -1 +1 @@ -Subproject commit 30e98be3582cca3009f371ca2f9a7334e24e1582 +Subproject commit 07c011b6ccb275fc2b69dbd6e7ee8dba6223e59a diff --git a/project/jni/application/openarena/vm b/project/jni/application/openarena/vm index 278f04520..4b83db91a 160000 --- a/project/jni/application/openarena/vm +++ b/project/jni/application/openarena/vm @@ -1 +1 @@ -Subproject commit 278f045202ff1bc0c1911b6c3d441909ba93ee87 +Subproject commit 4b83db91ab39b9cae27f087fe1a0a8ba9f30d43d diff --git a/project/jni/application/teeworlds/src b/project/jni/application/teeworlds/src index e5489c8c0..34b64249c 160000 --- a/project/jni/application/teeworlds/src +++ b/project/jni/application/teeworlds/src @@ -1 +1 @@ -Subproject commit e5489c8c089e57d88bbaa90df0176d5e5d4c6351 +Subproject commit 34b64249c46a90ce127f32b3ef41a565b8a70a61 diff --git a/project/jni/application/xserver-gimp/.gitignore b/project/jni/application/xserver-gimp/.gitignore new file mode 120000 index 000000000..ac0ff339c --- /dev/null +++ b/project/jni/application/xserver-gimp/.gitignore @@ -0,0 +1 @@ +../xserver/.gitignore \ No newline at end of file diff --git a/project/jni/application/xserver-gimp/AndroidAppSettings.cfg b/project/jni/application/xserver-gimp/AndroidAppSettings.cfg new file mode 100644 index 000000000..ef56e6b67 --- /dev/null +++ b/project/jni/application/xserver-gimp/AndroidAppSettings.cfg @@ -0,0 +1,230 @@ +# The application settings for Android libSDL port + +AppSettingVersion=19 + +# libSDL version to use (1.2 or 1.3, specify 1.3 for SDL2) +LibSdlVersion=1.2 + +# Specify application name (e.x. My Application) +AppName="GIMP Inkscape" + +# Specify reversed site name of application (e.x. com.mysite.myapp) +AppFullName=org.gimp.inkscape + +# Specify screen orientation: (v)ertical/(p)ortrait or (h)orizontal/(l)andscape +ScreenOrientation=h + +# Do not allow device to sleep when the application is in foreground, set this for video players or apps which use accelerometer +InhibitSuspend=n + +# Specify path to download application data in zip archive in the form 'Description|URL|MirrorURL^Description2|URL2|MirrorURL2^...' +# If you'll start Description with '!' symbol it will be enabled by default, other downloads should be selected by user from startup config menu +# If the URL in in the form ':dir/file.dat:http://URL/' it will be downloaded as binary BLOB to the application dir and not unzipped +# If the URL does not contain 'http://' it is treated as file from 'project/jni/application/src/AndroidData' dir - +# these files are put inside .apk package by build system +# Also please avoid 'https://' URLs, many Android devices do not have trust certificates and will fail to connect to SF.net over HTTPS +AppDataDownloadUrl="!!Data files|:data.tar.gz:http://sourceforge.net/projects/libsdl-android/files/ubuntu/dist-debug-wheezy-armhf-gimp.tar.gz/download^!!Data files|:busybox:busybox^!!Data files|:DroidSansMono.ttf:DroidSansMono.ttf" + +# Video color depth - 16 BPP is the fastest and supported for all modes, 24 bpp is supported only +# with SwVideoMode=y, SDL_OPENGL mode supports everything. (16)/(24)/(32) +VideoDepthBpp=24 + +# Enable OpenGL depth buffer (needed only for 3-d applications, small speed decrease) (y) or (n) +NeedDepthBuffer=n + +# Enable OpenGL stencil buffer (needed only for 3-d applications, small speed decrease) (y) or (n) +NeedStencilBuffer=n + +# Try to use GLES 2.x context - will revert to GLES 1.X if unsupported by device +# you need this option only if you're developing 3-d app (y) or (n) +NeedGles2=n + +# Application uses software video buffer - you're calling SDL_SetVideoMode() without SDL_HWSURFACE and without SDL_OPENGL, +# this will allow small speed optimization. Enable this even when you're using SDL_HWSURFACE. (y) or (n) +SwVideoMode=y + +# Application video output will be resized to fit into native device screen (y)/(n) +SdlVideoResize=y + +# Application resizing will keep 4:3 aspect ratio, with black bars at sides (y)/(n) +SdlVideoResizeKeepAspect=n + +# Application does not call SDL_Flip() or SDL_UpdateRects() appropriately, or draws from non-main thread - +# enabling the compatibility mode will force screen update every 100 milliseconds, which is laggy and inefficient (y) or (n) +CompatibilityHacks=n + +# Application initializes SDL audio/video inside static constructors (which is bad, you won't be able to run ndk-gdb) (y)/(n) +CompatibilityHacksStaticInit=n + +# On-screen Android soft text input emulates hardware keyboard, this will only work with Hackers Keyboard app (y)/(n) +CompatibilityHacksTextInputEmulatesHwKeyboard=y + +# Hack for broken devices: prevent audio chopping, by sleeping a bit after pushing each audio chunk (y)/(n) +CompatibilityHacksPreventAudioChopping=n + +# Hack for broken apps: application ignores audio buffer size returned by SDL (y)/(n) +CompatibilityHacksAppIgnoresAudioBufferSize=n + +# Hack for VCMI: preload additional shared libraries before aplication start +CompatibilityHacksAdditionalPreloadedSharedLibraries="" + +# Hack for Free Heroes 2, which redraws the screen inside SDL_PumpEvents(): slow and compatible SDL event queue - +# do not use it with accelerometer/gyroscope, or your app may freeze at random (y)/(n) +CompatibilityHacksSlowCompatibleEventQueue=n + +# Save and restore OpenGL state when drawing on-screen keyboard for apps that use SDL_OPENGL +CompatibilityHacksTouchscreenKeyboardSaveRestoreOpenGLState= + +CompatibilityHacksProperUsageOfSDL_UpdateRects=y + +# Application uses mouse (y) or (n), this will show mouse emulation dialog to the user +AppUsesMouse=y + +# Application needs two-button mouse, will also enable advanced point-and-click features (y) or (n) +AppNeedsTwoButtonMouse=y + +# Show SDL mouse cursor, for applications that do not draw cursor at all (y) or (n) +ShowMouseCursor=n + +GenerateSubframeTouchEvents=y + +# Force relative (laptop) mouse movement mode, useful when both on-screen keyboard and mouse are needed (y) or (n) +ForceRelativeMouseMode=n + +# Application needs arrow keys (y) or (n), will show on-screen dpad/joystick (y) or (n) +AppNeedsArrowKeys=n + +# Application needs text input (y) or (n), enables button for text input on screen +AppNeedsTextInput=n + +# Application uses joystick (y) or (n), the on-screen DPAD will be used as joystick 0 axes 0-1 +AppUsesJoystick=n + +# Application uses second on-screen joystick, as SDL joystick 0 axes 2-3 (y)/(n) +AppUsesSecondJoystick=n + +# Application uses accelerometer (y) or (n), the accelerometer will be used as joystick 1 axes 0-1 and 5-7 +AppUsesAccelerometer=n + +# Application uses gyroscope (y) or (n), the gyroscope will be used as joystick 1 axes 2-4 +AppUsesGyroscope=n + +# Application uses multitouch (y) or (n), multitouch events are passed as SDL_JOYBALLMOTION events for the joystick 0 +AppUsesMultitouch=y + +# Application records audio (it will use any available source, such a s microphone) +# API is defined in file SDL_android.h: int SDL_ANDROID_OpenAudioRecording(SDL_AudioSpec *spec); void SDL_ANDROID_CloseAudioRecording(void); +# This option will add additional permission to Android manifest (y)/(n) +AppRecordsAudio=n + +# Application implements Android-specific routines to put to background, and will not draw anything to screen +# between SDL_ACTIVEEVENT lost / gained notifications - you should check for them +# rigth after SDL_Flip(), if (n) then SDL_Flip() will block till app in background (y) or (n) +# This option is reported to be buggy, sometimes failing to restore video state +NonBlockingSwapBuffers=n + +# Redefine common hardware keys to SDL keysyms +# BACK hardware key is available on all devices, MENU is available on pre-ICS devices, other keys may be absent +# SEARCH and CALL by default return same keycode as DPAD_CENTER - one of those keys is available on most devices +# Use word NO_REMAP if you want to preserve native functionality for certain key (volume keys are 3-rd and 4-th) +# Keys: TOUCHSCREEN (works only when AppUsesMouse=n), DPAD_CENTER/SEARCH, VOLUMEUP, VOLUMEDOWN, MENU, BACK, CAMERA +RedefinedKeys="LALT RETURN NO_REMAP NO_REMAP RETURN UNDO" + +# Number of virtual keyboard keys (currently 6 is maximum) +AppTouchscreenKeyboardKeysAmount=0 + +# Number of virtual keyboard keys that support autofire (currently 2 is maximum) +AppTouchscreenKeyboardKeysAmountAutoFire=0 + +# Redefine on-screen keyboard keys to SDL keysyms - 6 keyboard keys + 4 multitouch gestures (zoom in/out and rotate left/right) +RedefinedKeysScreenKb="LALT RETURN KP_PLUS KP_MINUS SPACE DELETE KP_PLUS KP_MINUS 1 2" + +# Names for on-screen keyboard keys, such as Fire, Jump, Run etc, separated by spaces, they are used in SDL config menu +RedefinedKeysScreenKbNames="LALT RETURN KP_PLUS KP_MINUS SPACE DELETE KP_PLUS KP_MINUS 1 2" + +# On-screen keys theme +# 0 = Ultimate Droid by Sean Stieber (green, with gamepad joystick) +# 1 = Simple Theme by Beholder (white, with gamepad joystick) +# 2 = Sun by Sirea (yellow, with round joystick) +# 3 = Keen by Gerstrong (multicolor, with round joystick) +TouchscreenKeysTheme=2 + +# Redefine gamepad keys to SDL keysyms, button order is: +# A B X Y L1 R1 L2 R2 LThumb RThumb +RedefinedKeysGamepad="LALT RETURN KP_PLUS KP_MINUS SPACE DELETE KP_PLUS KP_MINUS 1 2" + +# How long to show startup menu button, in msec, 0 to disable startup menu +StartupMenuButtonTimeout=3000 + +# Menu items to hide from startup menu, available menu items: +# SettingsMenu.OkButton SettingsMenu.DummyMenu SettingsMenu.MainMenu SettingsMenuMisc.DownloadConfig SettingsMenuMisc.OptionalDownloadConfig SettingsMenuMisc.AudioConfig SettingsMenuMisc.VideoSettingsConfig SettingsMenuMisc.ShowReadme SettingsMenuMisc.GyroscopeCalibration SettingsMenuMisc.ResetToDefaultsConfig SettingsMenuMouse.MouseConfigMainMenu SettingsMenuMouse.DisplaySizeConfig SettingsMenuMouse.LeftClickConfig SettingsMenuMouse.RightClickConfig SettingsMenuMouse.AdditionalMouseConfig SettingsMenuMouse.JoystickMouseConfig SettingsMenuMouse.TouchPressureMeasurementTool SettingsMenuMouse.CalibrateTouchscreenMenu SettingsMenuKeyboard.KeyboardConfigMainMenu SettingsMenuKeyboard.ScreenKeyboardSizeConfig SettingsMenuKeyboard.ScreenKeyboardDrawSizeConfig SettingsMenuKeyboard.ScreenKeyboardThemeConfig SettingsMenuKeyboard.ScreenKeyboardTransparencyConfig SettingsMenuKeyboard.RemapHwKeysConfig SettingsMenuKeyboard.RemapScreenKbConfig SettingsMenuKeyboard.ScreenGesturesConfig SettingsMenuKeyboard.CustomizeScreenKbLayout +HiddenMenuOptions='' #SettingsMenuMisc.OptionalDownloadConfig SettingsMenuMouse.DisplaySizeConfig + +# Menu items to show at startup - this is Java code snippet, leave empty for default +# new SettingsMenuMisc.ShowReadme(), (AppUsesMouse \&\& \! ForceRelativeMouseMode \? new SettingsMenuMouse.DisplaySizeConfig(true) : new SettingsMenu.DummyMenu()), new SettingsMenuMisc.OptionalDownloadConfig(true), new SettingsMenuMisc.GyroscopeCalibration() +# Available menu items: +# SettingsMenu.OkButton SettingsMenu.DummyMenu SettingsMenu.MainMenu SettingsMenuMisc.DownloadConfig SettingsMenuMisc.OptionalDownloadConfig SettingsMenuMisc.AudioConfig SettingsMenuMisc.VideoSettingsConfig SettingsMenuMisc.ShowReadme SettingsMenuMisc.GyroscopeCalibration SettingsMenuMisc.ResetToDefaultsConfig SettingsMenuMouse.MouseConfigMainMenu SettingsMenuMouse.DisplaySizeConfig SettingsMenuMouse.LeftClickConfig SettingsMenuMouse.RightClickConfig SettingsMenuMouse.AdditionalMouseConfig SettingsMenuMouse.JoystickMouseConfig SettingsMenuMouse.TouchPressureMeasurementTool SettingsMenuMouse.CalibrateTouchscreenMenu SettingsMenuKeyboard.KeyboardConfigMainMenu SettingsMenuKeyboard.ScreenKeyboardSizeConfig SettingsMenuKeyboard.ScreenKeyboardDrawSizeConfig SettingsMenuKeyboard.ScreenKeyboardThemeConfig SettingsMenuKeyboard.ScreenKeyboardTransparencyConfig SettingsMenuKeyboard.RemapHwKeysConfig SettingsMenuKeyboard.RemapScreenKbConfig SettingsMenuKeyboard.ScreenGesturesConfig SettingsMenuKeyboard.CustomizeScreenKbLayout +FirstStartMenuOptions='SettingsMenu.DummyMenu' + +# Enable multi-ABI binary, with hardware FPU support - it will also work on old devices, +# but .apk size is 2x bigger (y) / (n) / (x86) / (all) +MultiABI=armeabi-v7a + +# Minimum amount of RAM application requires, in Mb, SDL will print warning to user if it's lower +AppMinimumRAM=0 + +# Application version code (integer) +AppVersionCode=28601 + +# Application user-visible version name (string) +AppVersionName="2.8.6.01" + +# Reset SDL config when updating application to the new version (y) / (n) +ResetSdlConfigForThisVersion=n + +# Delete application data files when upgrading (specify file/dir paths separated by spaces) +DeleteFilesOnUpgrade="%" + +# Optional shared libraries to compile - removing some of them will save space +# MP3 support by libMAD is encumbered by patents and libMAD is GPL-ed +# Available libraries: mad (GPL-ed!) sdl_mixer sdl_image sdl_ttf sdl_net sdl_blitpool sdl_gfx sdl_sound intl xml2 lua jpeg png ogg flac tremor vorbis freetype xerces curl theora fluidsynth lzma lzo2 mikmod openal timidity zzip bzip2 yaml-cpp python boost_date_time boost_filesystem boost_iostreams boost_program_options boost_regex boost_signals boost_system boost_thread glu avcodec avdevice avfilter avformat avresample avutil swscale swresample bzip2 +CompiledLibraries="jpeg png freetype sdl_ttf" + +# Application uses custom build script AndroidBuild.sh instead of Android.mk (y) or (n) +CustomBuildScript=y + +# Aditional CFLAGS for application +AppCflags='' + +# Additional LDFLAGS for application +AppLdflags='' + +# If application has headers with the same name as system headers, this option tries to fix compiler flags to make it compilable +AppOverlapsSystemHeaders= + +# Build only following subdirs (empty will build all dirs, ignored with custom script) +AppSubdirsBuild='' + +# Exclude these files from build +AppBuildExclude='' + +# Application command line parameters, including app name as 0-th param +AppCmdline='XSDL -nohelp /data/data/org.gimp.inkscape/files/chroot.sh bin/sh -c ./start-gimp.sh' + +# Here you may type readme text, which will be shown during startup. Format is: +# Text in English, use \\\\n to separate lines^de:Text in Deutsch^ru:Text in Russian, and so on (that's four backslashes, nice isn't it?) +ReadmeText='' + +# Screen size is used by Google Play to prevent an app to be installed on devices with smaller screens +# Minimum screen size that application supports: (s)mall / (m)edium / (l)arge +MinimumScreenSize=m + +# Your AdMob Publisher ID, (n) if you don't want advertisements +AdmobPublisherId=n + +# Your AdMob test device ID, to receive a test ad +AdmobTestDeviceId= + +# Your AdMob banner size (BANNER/IAB_BANNER/IAB_LEADERBOARD/IAB_MRECT/IAB_WIDE_SKYSCRAPER/SMART_BANNER) +AdmobBannerSize= + diff --git a/project/jni/application/xserver-gimp/AndroidBuild.sh b/project/jni/application/xserver-gimp/AndroidBuild.sh new file mode 120000 index 000000000..894909421 --- /dev/null +++ b/project/jni/application/xserver-gimp/AndroidBuild.sh @@ -0,0 +1 @@ +../xserver/AndroidBuild.sh \ No newline at end of file diff --git a/project/jni/application/xserver-gimp/AndroidData/DroidSansMono.ttf b/project/jni/application/xserver-gimp/AndroidData/DroidSansMono.ttf new file mode 120000 index 000000000..0cfbee59b --- /dev/null +++ b/project/jni/application/xserver-gimp/AndroidData/DroidSansMono.ttf @@ -0,0 +1 @@ +../../xserver/AndroidData/DroidSansMono.ttf \ No newline at end of file diff --git a/project/jni/application/xserver-gimp/AndroidData/busybox b/project/jni/application/xserver-gimp/AndroidData/busybox new file mode 120000 index 000000000..6a591d4cb --- /dev/null +++ b/project/jni/application/xserver-gimp/AndroidData/busybox @@ -0,0 +1 @@ +../../xserver/AndroidData/busybox \ No newline at end of file diff --git a/project/jni/application/xserver-gimp/AndroidData/logo.png b/project/jni/application/xserver-gimp/AndroidData/logo.png new file mode 100644 index 000000000..b49b42506 Binary files /dev/null and b/project/jni/application/xserver-gimp/AndroidData/logo.png differ diff --git a/project/jni/application/xserver-gimp/gfx.c b/project/jni/application/xserver-gimp/gfx.c new file mode 120000 index 000000000..ccab9cb4c --- /dev/null +++ b/project/jni/application/xserver-gimp/gfx.c @@ -0,0 +1 @@ +../xserver/gfx.c \ No newline at end of file diff --git a/project/jni/application/xserver-gimp/gfx.h b/project/jni/application/xserver-gimp/gfx.h new file mode 120000 index 000000000..75e09da82 --- /dev/null +++ b/project/jni/application/xserver-gimp/gfx.h @@ -0,0 +1 @@ +../xserver/gfx.h \ No newline at end of file diff --git a/project/jni/application/xserver-gimp/icon.png b/project/jni/application/xserver-gimp/icon.png new file mode 100644 index 000000000..cd7ce42f7 Binary files /dev/null and b/project/jni/application/xserver-gimp/icon.png differ diff --git a/project/jni/application/xserver-gimp/java.diff b/project/jni/application/xserver-gimp/java.diff new file mode 120000 index 000000000..fa31c8759 --- /dev/null +++ b/project/jni/application/xserver-gimp/java.diff @@ -0,0 +1 @@ +../xserver/java.diff \ No newline at end of file diff --git a/project/jni/application/xserver-gimp/main.c b/project/jni/application/xserver-gimp/main.c new file mode 120000 index 000000000..29336d6b4 --- /dev/null +++ b/project/jni/application/xserver-gimp/main.c @@ -0,0 +1 @@ +../xserver/main.c \ No newline at end of file diff --git a/project/jni/application/xserver-gimp/readme.txt b/project/jni/application/xserver-gimp/readme.txt new file mode 100644 index 000000000..57dd96b47 --- /dev/null +++ b/project/jni/application/xserver-gimp/readme.txt @@ -0,0 +1,50 @@ +You will need to install some packages to your Debian/Ubuntu first: + +sudo apt-get install bison libpixman-1-dev \ +libxfont-dev libxkbfile-dev libpciaccess-dev \ +xutils-dev xcb-proto python-xcbgen xsltproc \ +x11proto-bigreqs-dev x11proto-composite-dev \ +x11proto-core-dev x11proto-damage-dev \ +x11proto-dmx-dev x11proto-dri2-dev x11proto-fixes-dev \ +x11proto-fonts-dev x11proto-gl-dev \ +x11proto-input-dev x11proto-kb-dev \ +x11proto-print-dev x11proto-randr-dev \ +x11proto-record-dev x11proto-render-dev \ +x11proto-resource-dev x11proto-scrnsaver-dev \ +x11proto-video-dev x11proto-xcmisc-dev \ +x11proto-xext-dev x11proto-xf86bigfont-dev \ +x11proto-xf86dga-dev x11proto-xf86dri-dev \ +x11proto-xf86vidmode-dev x11proto-xinerama-dev \ +libxmuu-dev libxt-dev libsm-dev libice-dev \ +libxrender-dev libxrandr-dev curl + +Then run commands: + +git clone git@github.com:pelya/commandergenius.git sdl-android +cd sdl-android +git submodule update --init project/jni/application/xserver/xserver +rm project/jni/application/src +ln -s xserver-gimp project/jni/application/src +./changeAppSettings.sh -a +android update project -p project +./build.sh + +To build system image, download repo: + +https://github.com/pelya/cuntubuntu + +install dependencies described in it's readme, +then launch script img-debug-wheezy-armhf-gimp.sh from directory img. +This will create Debian system image under directory +dist-debug-wheezy-armhf-gimp. Execute commands ( is path to this repo): + +sudo cp -a /project/jni/application/src/xserver/data/usr/ dist-debug-wheezy-armhf-gimp/usr/ +sudo cp -a /project/jni/application/src/xserver/android/xhost dist-debug-wheezy-armhf-gimp/usr/bin/ +sudo cp -a /project/jni/application/src/xserver/android/xkbcomp dist-debug-wheezy-armhf-gimp/usr/bin/ +sudo cp -a /project/jni/application/src/xserver/android/xli dist-debug-wheezy-armhf-gimp/usr/bin/ + +cd dist-debug-wheezy-armhf-gimp +sudo tar cvzf ../dist-debug-wheezy-armhf-gimp.tar.gz * + +Upload resulting system image somewhere, and change download URL inside +AndroidAppSettings.cfg, then recompile .apk file. diff --git a/project/jni/application/xserver-gimp/xserver b/project/jni/application/xserver-gimp/xserver new file mode 120000 index 000000000..5be2b5474 --- /dev/null +++ b/project/jni/application/xserver-gimp/xserver @@ -0,0 +1 @@ +../xserver/xserver \ No newline at end of file diff --git a/project/jni/application/xserver/AndroidAppSettings.cfg b/project/jni/application/xserver/AndroidAppSettings.cfg index 77f28ac28..c71808c10 100644 --- a/project/jni/application/xserver/AndroidAppSettings.cfg +++ b/project/jni/application/xserver/AndroidAppSettings.cfg @@ -158,13 +158,13 @@ StartupMenuButtonTimeout=3000 # Menu items to hide from startup menu, available menu items: # SettingsMenu.OkButton SettingsMenu.DummyMenu SettingsMenu.MainMenu SettingsMenuMisc.DownloadConfig SettingsMenuMisc.OptionalDownloadConfig SettingsMenuMisc.AudioConfig SettingsMenuMisc.VideoSettingsConfig SettingsMenuMisc.ShowReadme SettingsMenuMisc.GyroscopeCalibration SettingsMenuMisc.ResetToDefaultsConfig SettingsMenuMouse.MouseConfigMainMenu SettingsMenuMouse.DisplaySizeConfig SettingsMenuMouse.LeftClickConfig SettingsMenuMouse.RightClickConfig SettingsMenuMouse.AdditionalMouseConfig SettingsMenuMouse.JoystickMouseConfig SettingsMenuMouse.TouchPressureMeasurementTool SettingsMenuMouse.CalibrateTouchscreenMenu SettingsMenuKeyboard.KeyboardConfigMainMenu SettingsMenuKeyboard.ScreenKeyboardSizeConfig SettingsMenuKeyboard.ScreenKeyboardDrawSizeConfig SettingsMenuKeyboard.ScreenKeyboardThemeConfig SettingsMenuKeyboard.ScreenKeyboardTransparencyConfig SettingsMenuKeyboard.RemapHwKeysConfig SettingsMenuKeyboard.RemapScreenKbConfig SettingsMenuKeyboard.ScreenGesturesConfig SettingsMenuKeyboard.CustomizeScreenKbLayout -HiddenMenuOptions='SettingsMenuMisc.OptionalDownloadConfig SettingsMenuMouse.DisplaySizeConfig' +HiddenMenuOptions='' #SettingsMenuMisc.OptionalDownloadConfig SettingsMenuMouse.DisplaySizeConfig # Menu items to show at startup - this is Java code snippet, leave empty for default # new SettingsMenuMisc.ShowReadme(), (AppUsesMouse \&\& \! ForceRelativeMouseMode \? new SettingsMenuMouse.DisplaySizeConfig(true) : new SettingsMenu.DummyMenu()), new SettingsMenuMisc.OptionalDownloadConfig(true), new SettingsMenuMisc.GyroscopeCalibration() # Available menu items: # SettingsMenu.OkButton SettingsMenu.DummyMenu SettingsMenu.MainMenu SettingsMenuMisc.DownloadConfig SettingsMenuMisc.OptionalDownloadConfig SettingsMenuMisc.AudioConfig SettingsMenuMisc.VideoSettingsConfig SettingsMenuMisc.ShowReadme SettingsMenuMisc.GyroscopeCalibration SettingsMenuMisc.ResetToDefaultsConfig SettingsMenuMouse.MouseConfigMainMenu SettingsMenuMouse.DisplaySizeConfig SettingsMenuMouse.LeftClickConfig SettingsMenuMouse.RightClickConfig SettingsMenuMouse.AdditionalMouseConfig SettingsMenuMouse.JoystickMouseConfig SettingsMenuMouse.TouchPressureMeasurementTool SettingsMenuMouse.CalibrateTouchscreenMenu SettingsMenuKeyboard.KeyboardConfigMainMenu SettingsMenuKeyboard.ScreenKeyboardSizeConfig SettingsMenuKeyboard.ScreenKeyboardDrawSizeConfig SettingsMenuKeyboard.ScreenKeyboardThemeConfig SettingsMenuKeyboard.ScreenKeyboardTransparencyConfig SettingsMenuKeyboard.RemapHwKeysConfig SettingsMenuKeyboard.RemapScreenKbConfig SettingsMenuKeyboard.ScreenGesturesConfig SettingsMenuKeyboard.CustomizeScreenKbLayout -FirstStartMenuOptions='' +FirstStartMenuOptions='SettingsMenu.DummyMenu' # Enable multi-ABI binary, with hardware FPU support - it will also work on old devices, # but .apk size is 2x bigger (y) / (n) / (x86) / (all) @@ -174,10 +174,10 @@ MultiABI=armeabi-v7a AppMinimumRAM=0 # Application version code (integer) -AppVersionCode=11102 +AppVersionCode=11104 # Application user-visible version name (string) -AppVersionName="1.11.02" +AppVersionName="1.11.04" # Reset SDL config when updating application to the new version (y) / (n) ResetSdlConfigForThisVersion=n diff --git a/project/jni/application/xserver/AndroidBuild.sh b/project/jni/application/xserver/AndroidBuild.sh index 72464a830..de7789829 100755 --- a/project/jni/application/xserver/AndroidBuild.sh +++ b/project/jni/application/xserver/AndroidBuild.sh @@ -1,7 +1,6 @@ #!/bin/sh -LOCAL_PATH=`dirname $0` -LOCAL_PATH=`cd $LOCAL_PATH && pwd` +CURDIR=`pwd` PACKAGE_NAME=`grep AppFullName AndroidAppSettings.cfg | sed 's/.*=//'` @@ -12,14 +11,19 @@ $CC $CFLAGS -c main.c gfx.c' || exit 1 cd xserver [ -e configure ] || autoreconf --force -v --install || exit 1 cd android +[ -e libfontenc-*/Makefile ] && { + grep "/data/data/$PACKAGE_NAME" libfontenc-*/Makefile || \ + git clean -f -d -x . +} env TARGET_DIR=/data/data/$PACKAGE_NAME/files \ ./build.sh || exit 1 +env CURDIR=$CURDIR \ ../../../setEnvironment-armeabi-v7a.sh sh -c '\ -$CC $CFLAGS $LDFLAGS -o ../../libapplication-armeabi-v7a.so -L. \ -../../main.o \ -../../gfx.o \ +$CC $CFLAGS $LDFLAGS -o $CURDIR/libapplication-armeabi-v7a.so -L. \ +$CURDIR/main.o \ +$CURDIR/gfx.o \ hw/kdrive/sdl/sdl.o \ dix/.libs/libmain.a \ dix/.libs/libdix.a \ diff --git a/project/jni/application/xserver/gfx.c b/project/jni/application/xserver/gfx.c index d63d1e548..a9f8cf660 100644 --- a/project/jni/application/xserver/gfx.c +++ b/project/jni/application/xserver/gfx.c @@ -119,6 +119,22 @@ void * unpackFilesThread(void * unused) remove("data.tar.gz"); + strcpy( fname, getenv("SECURE_STORAGE_DIR") ); + strcat( fname, "/postinstall.sh" ); + if( stat( fname, &st ) != 0 ) + { + unpackFinished = 1; + return 1; + } + + fo = popen(fname, "w"); + if( !fo ) + { + unpackFinished = 1; + return 0; + } + pclose(fo); + unpackFinished = 1; return 1; } diff --git a/project/jni/application/xserver/main.c b/project/jni/application/xserver/main.c index ae9d07746..28b4cc222 100644 --- a/project/jni/application/xserver/main.c +++ b/project/jni/application/xserver/main.c @@ -15,7 +15,7 @@ int main( int argc, char* argv[] ) { int i; char screenres[128] = "640x480x24"; - char clientcmd[PATH_MAX*3] = "xhost +"; + char clientcmd[PATH_MAX*3] = ""; char port[16] = ":1111"; char * cmd = ""; char* args[] = { @@ -75,12 +75,19 @@ int main( int argc, char* argv[] ) sprintf( screenres, "%d/%dx%d/%dx%d", resolutionW, displayW, resolutionH, displayH, 24 ); - sprintf( clientcmd, "%s/usr/bin/xhost + ; %s/usr/bin/xli -onroot -fillscreen background.bmp ;", - getenv("SECURE_STORAGE_DIR"), getenv("SECURE_STORAGE_DIR") ); - for( ; argc > 1; argc--, argv++ ) + if( argc > 1 ) { - strcat(clientcmd, " "); - strcat(clientcmd, argv[1]); + for( ; argc > 1; argc--, argv++ ) + { + strcat(clientcmd, " "); + strcat(clientcmd, argv[1]); + } + strcat(clientcmd, " 2>&1"); + } + else + { + sprintf( clientcmd, "%s/usr/bin/xhost + ; %s/usr/bin/xli -onroot -fillscreen background.bmp ;", + getenv("SECURE_STORAGE_DIR"), getenv("SECURE_STORAGE_DIR") ); } __android_log_print(ANDROID_LOG_INFO, "XSDL", "XSDL video resolution %s", screenres);