From 3cd8e21f5c93a104a9a9b7518e342763097f6954 Mon Sep 17 00:00:00 2001 From: Sergii Pylypenko Date: Thu, 2 Jul 2015 22:15:52 +0300 Subject: [PATCH] Debian and Gimp: fixed bug in libdisableselinux.so --- .../xserver-debian/AndroidAppSettings.cfg | 84 +++++++++++------- .../AndroidData/update1-armeabi-v7a.tgz | Bin 0 -> 1772 bytes .../AndroidData/update1-x86.tgz | Bin 0 -> 1761 bytes .../xserver-gimp/AndroidAppSettings.cfg | 6 +- .../AndroidData/update4-armeabi-v7a.tgz | Bin 0 -> 1772 bytes .../xserver-gimp/AndroidData/update4-x86.tgz | Bin 0 -> 1761 bytes todo.txt | 6 -- 7 files changed, 53 insertions(+), 43 deletions(-) create mode 100644 project/jni/application/xserver-debian/AndroidData/update1-armeabi-v7a.tgz create mode 100644 project/jni/application/xserver-debian/AndroidData/update1-x86.tgz create mode 100644 project/jni/application/xserver-gimp/AndroidData/update4-armeabi-v7a.tgz create mode 100644 project/jni/application/xserver-gimp/AndroidData/update4-x86.tgz diff --git a/project/jni/application/xserver-debian/AndroidAppSettings.cfg b/project/jni/application/xserver-debian/AndroidAppSettings.cfg index 743639b7d..4d50f65a3 100644 --- a/project/jni/application/xserver-debian/AndroidAppSettings.cfg +++ b/project/jni/application/xserver-debian/AndroidAppSettings.cfg @@ -1,24 +1,24 @@ # The application settings for Android libSDL port # Specify application name (e.x. My Application) -AppName="Debian" +AppName="Debian xx" # Specify reversed site name of application (e.x. com.mysite.myapp) -AppFullName=com.cuntubuntu +AppFullName=com.cuntubuntu.xx # Application version code (integer) -AppVersionCode=150626 +AppVersionCode=150627 # Application user-visible version name (string) -AppVersionName="15.06.26" +AppVersionName="15.06.27" # 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.xz:obb:main.150626|:data.tar.xz:http://sourceforge.net/projects/libsdl-android/files/ubuntu/jessie/dist-debian-jessie.tar.xz/download^!!XSDL data files|:data-1.tar.gz:data-1.tgz^!!XSDL fonts|:DroidSansMono.ttf:DroidSansMono.ttf^!!Postinstall script|:postinstall.sh:postinstall.sh^!!Loading image|:loading.gif:loading.gif" +# You can specify Google Play expansion files in the form 'obb:main.12345' or 'obb:patch.12345' where 12345 is the app version, first associated with the file +AppDataDownloadUrl="!!Data files|:data.tar.xz:obb:main.150626|:data.tar.xz:http://sourceforge.net/projects/libsdl-android/files/ubuntu/jessie/dist-debian-jessie.tar.xz/download^!!XSDL data files|:data-1.tar.gz:data-1.tgz^!!XSDL fonts|:DroidSansMono.ttf:DroidSansMono.ttf^!!Postinstall script|:postinstall.sh:postinstall.sh^!!Loading image|:loading.gif:loading.gif^!!Update 1|:update1.tar.gz:update1-.tgz" # Reset SDL config when updating application to the new version (y) / (n) ResetSdlConfigForThisVersion=y @@ -36,19 +36,6 @@ LibSdlVersion=1.2 # 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=y - -# Create Android service, so the app is less likely to be killed while in background -CreateService=y - -# Screen follows mouse cursor, when it's covered by soft keyboard, this works only in software video mode (y) or (n) -ScreenFollowsMouse=y - -RightMouseButtonLongPress=n - -CompatibilityHacksForceScreenUpdateMouseClick=y - # 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=16 @@ -73,9 +60,19 @@ SdlVideoResize=y # Application resizing will keep 4:3 aspect ratio, with black bars at sides (y)/(n) SdlVideoResizeKeepAspect=n +# Do not allow device to sleep when the application is in foreground, set this for video players or apps which use accelerometer +InhibitSuspend=y + +# Create Android service, so the app is less likely to be killed while in background +CreateService=y + # 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 +CompatibilityHacksForceScreenUpdate=n + +# Application does not call SDL_Flip() or SDL_UpdateRects() after mouse click (ScummVM and all Amiga emulators do that) - +# force screen update by moving mouse cursor a little after each click (y) or (n) +CompatibilityHacksForceScreenUpdateMouseClick=y # Application initializes SDL audio/video inside static constructors (which is bad, you won't be able to run ndk-gdb) (y)/(n) CompatibilityHacksStaticInit=n @@ -109,27 +106,42 @@ AppUsesMouse=y # Application needs two-button mouse, will also enable advanced point-and-click features (y) or (n) AppNeedsTwoButtonMouse=y +# Right mouse button can do long-press/drag&drop action, necessary for some games (y) or (n) +# If you disable it, swiping with two fingers will send mouse wheel events +RightMouseButtonLongPress=n + # Show SDL mouse cursor, for applications that do not draw cursor at all (y) or (n) ShowMouseCursor=n +# Screen follows mouse cursor, when it's covered by soft keyboard, this works only in software video mode (y) or (n) +ScreenFollowsMouse=y + # Generate more touch events, by default SDL generates one event per one video frame, this is useful for drawing apps (y) or (n) GenerateSubframeTouchEvents=y # Force relative (laptop) mouse movement mode, useful when both on-screen keyboard and mouse are needed (y) or (n) ForceRelativeMouseMode=y -# Application needs arrow keys (y) or (n), will show on-screen dpad/joystick (y) or (n) +# Show on-screen dpad/joystick, that will act as arrow keys (y) or (n) AppNeedsArrowKeys=n +# On-screen dpad/joystick will appear under finger when it touches the screen (y) or (n) +# Joystick always follows finger, so moving mouse requires touching the screen with other finger +FloatingScreenJoystick= + # 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 +# This will disable AppNeedsArrowKeys option AppUsesJoystick=n # Application uses second on-screen joystick, as SDL joystick 0 axes 2-3 (y)/(n) AppUsesSecondJoystick=n +# Application uses third on-screen joystick, as SDL joystick 0 axes 20-21 (y)/(n) +AppUsesThirdJoystick= + # Application uses accelerometer (y) or (n), the accelerometer will be used as joystick 1 axes 0-1 and 5-7 AppUsesAccelerometer=n @@ -179,10 +191,11 @@ RedefinedKeysScreenKb="LCTRL LALT LSHIFT RETURN SPACE DELETE KP_PLUS KP_MINUS 1 RedefinedKeysScreenKbNames="LCTRL LALT LSHIFT RETURN 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) +# 0 = Ultimate Droid by Sean Stieber (green, with cross joystick) +# 1 = Simple Theme by Beholder (white, with cross joystick) # 2 = Sun by Sirea (yellow, with round joystick) # 3 = Keen by Gerstrong (multicolor, with round joystick) +# 4 = Retro by Santiago Radeff (red/white, with cross joystick) TouchscreenKeysTheme=0 # Redefine gamepad keys to SDL keysyms, button order is: @@ -193,22 +206,25 @@ RedefinedKeysGamepad="LCTRL LALT LSHIFT RETURN SPACE DELETE KP_PLUS KP_MINUS 1 2 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 +# 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 SettingsMenuKeyboard.ScreenKeyboardAdvanced HiddenMenuOptions='SettingsMenuMisc.OptionalDownloadConfig' # 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 +# 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 SettingsMenuKeyboard.ScreenKeyboardAdvanced FirstStartMenuOptions='' -# 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 x86' - # Minimum amount of RAM application requires, in Mb, SDL will print warning to user if it's lower AppMinimumRAM=0 +# GCC version, 4.6 (default) or 4.8, CLANG is not supported yet +NDK_TOOLCHAIN_VERSION= + +# Specify architectures to compile, 'all' or 'y' to compile for all architectures. +# Available architectures: armeabi armeabi-v7a armeabi-v7a-hard x86 mips +MultiABI='armeabi-v7a x86' + # 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 @@ -233,7 +249,7 @@ AppSubdirsBuild='' AppBuildExclude='' # Application command line parameters, including app name as 0-th param -AppCmdline='XSDL -nohelp -screenbuttons -warndiskspacemb 1000 -exec $SECURE_STORAGE_DIR/usr/bin/xli -onroot -border black -center $UNSECURE_STORAGE_DIR/loading.gif ; $SECURE_STORAGE_DIR/img/proot.sh ./startx.sh' +AppCmdline='XSDL -nohelp -screenbuttons -warndiskspacemb 900 -exec $SECURE_STORAGE_DIR/usr/bin/xli -onroot -border black -center $UNSECURE_STORAGE_DIR/loading.gif ; $SECURE_STORAGE_DIR/img/proot.sh ./startx.sh' # 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 @@ -245,9 +261,9 @@ 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) +# Your AdMob banner size (BANNER/FULL_BANNER/LEADERBOARD/MEDIUM_RECTANGLE/SMART_BANNER/WIDE_SKYSCRAPER/FULL_WIDTH:Height/Width:AUTO_HEIGHT/Width:Height) AdmobBannerSize= -# Right mouse button can do long-press/drag&drop action, necessary for some games (y) or (n) -# If you disable it, swiping with two fingers will send mouse wheel events -RightMouseButtonLongPress=n +# Google Play Game Services application ID, required for cloud saves to work +GooglePlayGameServicesId= + diff --git a/project/jni/application/xserver-debian/AndroidData/update1-armeabi-v7a.tgz b/project/jni/application/xserver-debian/AndroidData/update1-armeabi-v7a.tgz new file mode 100644 index 0000000000000000000000000000000000000000..017a95c25973f2b2a5c1740619df295e7cf1e7dd GIT binary patch literal 1772 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 =<$pwypcK%kD4!&AasXsZqT(-|Oc)bL+~V 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 =<$pwypcK%kD4!&AasXsZqT(-|Oc)bL+~V zNJSqtiE(|SAUmTmdhteyUlJOwr_+B;abl`pxodw0Uv&Ht$KMm~mM+t6-_YzGD0{g4 zz5FuIa~a}=lWyIREU9}cU3BTOwv6PDk|{E|uI|ixZ`d&QT09ZRHJ+6_TWWEKjZ5CU zD@ld?FWRO?~@!#d`bB zxf$&9)XTa4`+0GuoT^*ZTT$_KmPPmctCk1eExh^X%(LRZ$1-%LsBhRE;+<6eRybnq z((EcO`~M-9S)U?APd@%_%_|w(c=*_@zbD`9Td?;uYZ!mQ&xPR|RLzt%rluou%HU?@6pJS{eHBQH!GQ|HOM= zxev5{m5;d>kiA;w%D;2>0%Ll=xBa}EEZ}cg!SGYS}WFN-cvbu^*~Y2ttsh8@@81*3tsIr zv1|J@Wrxx`YmInm%XLB#al+3FV|H;~KlAr;<-*TyHu?wud8);%?JaEOOy9%LtR}O! zwX>XCxX>k0xbK|#$CAnR$@lpB7QZ*$AN{y+w~xjCxgU?R?5I5vStI|YyzJGEvptJv z*-U-B;@lO#rt0?d-aD#}T=j3No?oy1@XPmVt?J#keJr|;yQ|fIVT*k9