[Galaxy S 4 i9505 Original Android Development] chenxiaolong:
The testing release for 8.0.0 has just been released (version 7.0.0.r101.g365afda) :) https://dl.dropboxusercontent.com/u/486665/Snapshots/DualBootPatcher/index.html

Please test and let me know what works and what doesn't. I've also fixed the app's annoying stuttering in a few places, so let me know if the app doesn't feel as smooth as it should :)

Disclaimer: This is a testing release, so be sure to make backups before installing (especially if you plan to test the app sharing features).

So far, the new individual app sharing feature has been tested on:

Android L on the Nexus 5 (SELInux enforcing)

Android 4.4.4 GPE factory image on the Galaxy S4 (SELinux enforcing)

Android 4.4.4 factory image on the Nexus 5 (SELinux enforcing)

Many AOSP 4.4.4 ROMs (SELinux permissive)

It has NOT been tested on:

TouchWiz 4.4 community derivatives (SELinux/KNOX permissive or disabled)

TouchWiz 4.4 factory image (SELinux enforcing)

Any Android 4.3 ROM

Any Android 4.2 ROM

Version 8.0.0 will be released once those ROMs are tested and if there are no more major bugs.

To test any of the app sharing features, the ROM (or just the kernel) must be repatched. Otherwise, you'll get this screen:

And... for those who like statistics...

Android_GUI/AndroidManifest.xml.in | 55
Android_GUI/build.gradle | 93 -
Android_GUI/project.properties | 14
Android_GUI/res/layout/drawer_list_item_hidden.xml | 25
Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/NavigationDrawerAdapter.java | 78 -
Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/NavigationDrawerItem.java | 62 -
Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/switcher/RomDetector.java | 239 ----
Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/switcher/SwitcherService.java | 137 --
Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/switcher/SwitcherTaskFragment.java | 156 --
b/.gitignore | 4
b/Android_GUI/.gitignore | 2
b/Android_GUI/AndroidManifest.xml | 69 +
b/Android_GUI/build.gradle.in | 110 +
b/Android_GUI/gradle/wrapper/gradle-wrapper.properties | 4
b/Android_GUI/manifests/ci.xml | 34
b/Android_GUI/manifests/debug.xml | 34
b/Android_GUI/proguard-project.txt | 7
b/Android_GUI/res/animator/fragment_in.xml | 43
b/Android_GUI/res/animator/fragment_out.xml | 42
b/Android_GUI/res/drawable-hdpi/about.png |binary
b/Android_GUI/res/drawable-hdpi/check.png |binary
b/Android_GUI/res/drawable-hdpi/exit.png |binary
b/Android_GUI/res/drawable-hdpi/pin.png |binary
b/Android_GUI/res/drawable-hdpi/refresh.png |binary
b/Android_GUI/res/drawable-hdpi/settings.png |binary
b/Android_GUI/res/drawable-hdpi/split.png |binary
b/Android_GUI/res/drawable-mdpi/about.png |binary
b/Android_GUI/res/drawable-mdpi/check.png |binary
b/Android_GUI/res/drawable-mdpi/exit.png |binary
b/Android_GUI/res/drawable-mdpi/pin.png |binary
b/Android_GUI/res/drawable-mdpi/refresh.png |binary
b/Android_GUI/res/drawable-mdpi/settings.png |binary
b/Android_GUI/res/drawable-mdpi/split.png |binary
b/Android_GUI/res/drawable-xhdpi/about.png |binary
b/Android_GUI/res/drawable-xhdpi/check.png |binary
b/Android_GUI/res/drawable-xhdpi/exit.png |binary
b/Android_GUI/res/drawable-xhdpi/pin.png |binary
b/Android_GUI/res/drawable-xhdpi/refresh.png |binary
b/Android_GUI/res/drawable-xhdpi/settings.png |binary
b/Android_GUI/res/drawable-xhdpi/split.png |binary
b/Android_GUI/res/drawable-xxhdpi/about.png |binary
b/Android_GUI/res/drawable-xxhdpi/check.png |binary
b/Android_GUI/res/drawable-xxhdpi/exit.png |binary
b/Android_GUI/res/drawable-xxhdpi/pin.png |binary
b/Android_GUI/res/drawable-xxhdpi/refresh.png |binary
b/Android_GUI/res/drawable-xxhdpi/settings.png |binary
b/Android_GUI/res/drawable-xxhdpi/split.png |binary
b/Android_GUI/res/drawable-xxxhdpi/about.png |binary
b/Android_GUI/res/drawable-xxxhdpi/check.png |binary
b/Android_GUI/res/drawable-xxxhdpi/exit.png |binary
b/Android_GUI/res/drawable-xxxhdpi/pin.png |binary
b/Android_GUI/res/drawable-xxxhdpi/refresh.png |binary
b/Android_GUI/res/drawable-xxxhdpi/settings.png |binary
b/Android_GUI/res/drawable-xxxhdpi/split.png |binary
b/Android_GUI/res/drawable/all_caps_background.xml | 36
b/Android_GUI/res/layout-land/fragment_about.xml | 2
b/Android_GUI/res/layout-port/fragment_about.xml | 2
b/Android_GUI/res/layout/all_caps_button.xml | 35
b/Android_GUI/res/layout/app_checkable_item.xml | 60 +
b/Android_GUI/res/layout/app_list.xml | 39
b/Android_GUI/res/layout/cardcontent_noroot.xml | 2
b/Android_GUI/res/layout/cardcontent_switcher.xml | 5
b/Android_GUI/res/layout/dialog_checkbox_layout.xml | 31
b/Android_GUI/res/layout/drawer_layout.xml | 22
b/Android_GUI/res/layout/drawer_list_item.xml | 17
b/Android_GUI/res/layout/drawer_list_separator_item.xml | 32
b/Android_GUI/res/values/colors.xml | 36
b/Android_GUI/res/values/dimens.xml | 19
b/Android_GUI/res/values/strings.xml | 115 +-
b/Android_GUI/res/values/styles.xml | 22
b/Android_GUI/res/xml/rom_settings.xml | 57 +
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/AboutFragment.java | 49
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/AlertDialogFragment.java | 6
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/CommandUtils.java | 124 ++
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/FileUtils.java | 139 +-
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/MainActivity.java | 515 +++++----
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/MiscUtils.java | 266 ++++
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/RomUtils.java | 318 +++++
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/RootCheckerFragment.java | 94 +
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/RootFile.java | 450 ++++++++
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/SyncDaemonUtils.java | 139 ++
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/patcher/DetailsCard.java | 4
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/patcher/PatchFileFragment.java | 30
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/patcher/PatcherService.java | 2
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/patcher/PatcherTaskFragment.java | 6
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/patcher/PatcherUtils.java | 100 -
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/patcher/PresetCard.java | 1
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/patcher/ProgressCard.java | 6
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/patcher/TasksCard.java | 27
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/settings/AppListFragment.java | 345 ++++++
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/settings/AppListLoaderFragment.java | 199 +++
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/settings/AppSharingEventReceiver.java | 52
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/settings/AppSharingService.java | 109 +
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/settings/AppSharingUtils.java | 91 +
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/settings/ConfigFile.java | 246 ++++
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/settings/RomSettingsFragment.java | 265 ++++
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/settings/SettingsActivity.java | 47
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/switcher/RomCard.java | 67 -
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/switcher/SwitcherListFragment.java | 512 +++++----
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/switcher/SwitcherTasks.java | 133 ++
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/switcher/SwitcherUtils.java | 79 -
b/README.jflte.txt | 2
b/build/build.conf | 9
b/build/compile/.gitignore | 6
b/build/compile/0001-Compile-with-pie.patch | 51
b/build/compile/PyQt5Win32Compile.txt | 12
b/build/compile/build-attr-acl.sh | 118 ++
b/build/compile/build-python-for-android.sh | 114 ++
b/build/compile/build-valgrind.sh | 41
b/build/compile/env.sh | 57 +
b/build/makedist.py | 411 ++++---
b/build/remove.androidpython.txt | 3
b/build/remove.winpython.txt | 2
b/build/syncdaemon/.gitignore | 4
b/build/syncdaemon/build.sh | 71 +
b/build/syncdaemon/common.cpp | 144 ++
b/build/syncdaemon/common.h | 65 +
b/build/syncdaemon/configfile.cpp | 190 +++
b/build/syncdaemon/configfile.h | 58 +
b/build/syncdaemon/syncdaemon.cpp | 553 ++++++++++
b/build/syncdaemon/task.h | 85 +
b/patcher.yaml.in | 29
b/patches/dualboot.sh | 26
b/patchinfo/hammerhead/ROMs/AOSP/chenxiaolong.py | 2
b/patchinfo/jflte/ROMs/AOSP/chenxiaolong.py | 2
b/ramdisks/common/common.py | 32
b/ramdisks/common/qcom.py | 8
b/ramdisks/init.multiboot.mounting.sh | 37
b/ramdisks/jflte/AOSP/cxl.py | 2
b/ramdisks/jflte/GoogleEdition/GoogleEdition.py | 4
b/ramdisks/jflte/TouchWiz/TouchWiz.py | 10
b/scripts/jsondump.py | 2
b/scripts/multiboot/bootimage.py | 5
b/scripts/multiboot/config.py | 72 -
b/scripts/multiboot/minicpio/minicpio.py | 17
b/scripts/multiboot/partitionconfig.py | 6
b/scripts/multiboot/partitionconfigs.py | 8
b/scripts/multiboot/patcher.py | 7
b/scripts/multiboot/ramdisk.py | 2
b/scripts/patchfile.py | 26
b/scripts/qtmain.py | 3
build/compile/build_python_for_android.sh | 175 ---
build/shortcuts/windows-exe.cpp | 123 --
build/shortcuts/windows-exe.manifest | 19
patcher.conf | 31
145 files changed, 6530 insertions(+), 2275 deletions(-)

EDIT: Already found one bug: the navigation drawer doesn't scroll:

EDIT2: Fixed! https://github.com/chenxiaolong/DualBootPatcher/commit/e2997ca21cc9dd182a1776789aa3ecdc0fddda25