Attend XDA's Second Annual Developer Conference, XDA:DevCon 2014!
5,779,531 Members 51,111 Now Online
XDA Developers Android and Mobile Development Forum

[PATCHER][APP] Dual boot any ROM on all Galaxy S4 variants!

Tip us?
 
chenxiaolong
Old
(Last edited by chenxiaolong; 21st January 2014 at 08:27 PM.)
#1  
chenxiaolong's Avatar
Senior Member - OP
Thanks Meter 3410
Posts: 1,483
Join Date: Sep 2011
Location: Solon

 
DONATE TO ME
Default [PATCHER][APP] Dual boot any ROM on all Galaxy S4 variants!

I'm proud to present the first dual boot project for the Qualcomm-based Samsung Galaxy S4! This project started off as a feature in my ROM, but not anymore. This will allow any two ROMs (soon, three) to be installed at the same time. It works by patching the secondary ROM's installation scripts and boot image to load the ROM files from an alternate location (/system/dual, /cache/dual, and /data/dual). Because of the way this is implemented, no changes to the primary ROM are necessary :D

Donators

A huge thanks goes out to all of the donators for supporting this project!
  • Christopher Edwards
  • Dang Lee
  • pikatchu
  • Gerard Worster
  • Matthew Smith
  • Shahzain Badruddin
  • John Nguyen
  • Marcos Shrem
  • John West
  • Oliver Madden
  • Bejda
  • Cody Wells
  • GhiGo65
  • remorema

It patches...
  • Custom kernels for dual boot support
  • ROMs so that they can be installed as secondary
  • Google Apps packages for AOSP-based ROMs
  • SuperSU so that it can be used in the secondary ROM

NOTE: If you want to dualboot a TouchWiz ROM, I highly recommend installing TW as the primary ROM. Otherwise, any mods will need to be patched before flashing.

What's supported?

It is very easy to add support for other kernels and ROMs. Let me know if you want support for another kernel or ROM :)

 

ROMs:
  • CyanogenMod ROMs
    • Official CyanogenMod nightlies
    • CyanogenMod-based ROMs
    • HellyBean / HellKat
    • JellyBeer
    • Gummy
    • OSE
    • BAM Android
    • CyanFox
    • Smasher X
    • Mahdi
    • BeanStalk
    • NamelessROM
    • EHNDROIX
    • SOKP
  • AOKP ROMs
    • Official AOKP ROMs
    • Task650
    • IceColdJelly (Vertigo)
    • IOKP
    • Dirty Unicorns
  • PAC-Man ROMs
    • Official PAC-Man
    • ProBAM
    • Metaiiica
  • Google Edition ROMs
    • MaKTaiL
    • jamal2367
    • Kangabean/Kangakat
    • VirginROM
    • Dandroid
    • Echoe
    • Infamous
    • Blackbox
    • BoBCaTROM
  • ParanoidAndroid ROMs
  • MIUI (official)
  • MIUI (unofficial - miuiandroid)
  • MIUI (Tquetski)
  • Slim Bean
  • Carbon
  • LiquidSmooth
  • Vanir
  • AOSP (Broodplank)
  • OctOS
  • TouchWiz ROMs
    • FoxHound
    • GoldenEye
    • SkyFall
    • Evil UnWizzed
    • Negalite
    • iNTriNsiC (20130806 version)
    • TriForceROM
    • Omnifarious
    • Echoe
    • BlackBox
    • TouchliteGE
    • Phoenix
    • SHOstock
    • EclipseTW
    • WanamLite
    • Imperium
  • Sense 5 Port (geiti94) (Version 2)

Kernels:
  • ktoonsez (AOSP, Google Edition, & TouchWiz)
  • faux123 (AOSP & Google Edition)
  • ChronicKernel jb43 AOSP
  • Infamous kernel
  • Ausdim kernel
  • Adam kernel
  • Alucard kernel (AOSP, Google Edition, & TouchWiz)
  • Echoe AEL (Google Edition)
  • GoogyMax3 (CyanogenMod, Google Edition, & TouchWiz)
  • Plain boot.img files (use useful/patch-ramdisk.bat script)

Other:
  • SuperSU
  • Google Apps for Official AOKP
  • Google Apps for Task650's AOKP
  • Google Apps for CyanogenMod and PAC-Man
  • Google Apps for Slim Bean (standard and AROMA)
  • Google Apps for Paranoid Android
  • Google Apps for Gummy
  • Google Apps from BaNkS
  • Google Apps from doomed151 for AOSP
  • ComaDose
  • Xposed disabler
  • 3Minit framework


How to use the patcher

 

Android

Download the patcher apk and run it. It's very straight forward--only has one button to press ;)

Windows (GUI)

Double click PatchFileWindowsGUI.exe or drag the zip file you want to patch onto that file.

If it complains about msvcr100.dll missing, you'll need to install this: http://www.microsoft.com/en-us/download/details.aspx?id=8328

Linux (GUI)

Make sure you have PyQt5 for Python 3 installed. This is the "python3-pyqt5" package on Debian and Ubuntu and "python-pyqt5" on Arch Linux. Then, double click PatchFileLinuxGUI or drag the zip file you want to patch onto that file.

Mac (GUI)

The GUI is not supported on OS X yet. You can probably run the Windows version under Wine or Crossover though. Otherwise, you can use the command line version.

Windows (command line)

Drag the file you want to patch onto PatchFileWindows.exe

Linux or Mac (command line)

Change to the patcher's directory and run:

Code:
./patch-file.sh /path/to/file.zip
--------

After patching the zip file, a new file_dualboot.zip file will be created. For example, patching ktoonsez's

KT-SGS4-JB4.3-AOSP-TMO-08.28.2013.zip

would create a new

KT-SGS4-JB4.3-AOSP-TMO-08.28.2013_dualboot.zip


Instructions for dual booting

Before doing anything, download the Dual Boot Patcher app and the DualBootUtilities.zip from the download section below.

Note: Only the secondary ROM and other zips that should be installed for the secondary ROM need to be patched. Nothing needs to be done for the primary ROM.
  1. Boot into your primary ROM and install the Dual Boot Patcher app
  2. Open the app and set the current kernel as the primary kernel (screenshot)
  3. If the primary ROM is TouchWiz, you will need to remove some bloatware. Otherwise, two ROMs won't be able to fit on the /system partition. You can also convert some system apps to user apps with this tool: https://play.google.com/store/apps/details?id=de.j4velin.systemappmover&hl=en
  4. Patch the ROM (see the "How to use the patcher" section)
  5. Reboot into recovery
  6. Flash the patched zip files.
  7. Reboot
  8. Install the Dual Boot Patcher app again in the secondary ROM. If you have a locked bootloader, set the kernel for the secondary ROM (just in case).
  9. Enjoy!

A normal backup from recovery will backup every ROM. If you would like to back up ROMs individually, please see rlorange's awesome tool: http://forum.xda-developers.com/show....php?t=2491299

How do I...?

 
  • Switch the ROM if something doesn't work properly?
    • Flash DualBootUtilities.zip. You will get a menu allowing you to switch to the primary or secondary ROM.
  • Wipe /cache, /data, /system, or dalvik-cache?
    • Flash DualBootUtilities.zip. You will get a menu that lets to wipe the respective partitions for either the primary or the secondary ROM.
    • It's important to not use the recovery's built-in wiping functions because they may delete files needed for the secondary ROM.
  • Update the primary ROM?

    With version 8.0.0, the primary ROM can be patched so that it doesn't wipe the other ROMs when flashed. It also automatically sets the primary kernel. That is, most likely, the easiest method. The zip can also be manually edited by following the instructions below.

     
    • Edit META-INF/com/google/android/updater-script so that it does not format /system or /dev/block/mmcblk0p16 (because the 16th partition is /system)
    • Flash DualBootUtilities.zip before updating the ROM and choose Wipe Primary /system. If the primary ROM is AOSP-based, you will need to reflash Gapps.
    • Download the two zips here and flash the appropriate one before and after the primary ROM's zip: http://d-h.st/users/chenxiaolong/?fld_id=30845#files
    • Make sure to set the kernel as primary in the Dual Boot Patcher app
    • Alternative: Just flash the update as normal and then reflash the secondary ROM. It's a bit tedious, but it works and you won't lose any files/settings.
  • Update the secondary ROM?
    • Just patch the new zip and flash it
  • Flash a mod or custom kernel for the primary ROM?
    • Just flash it :)
    • If it's a custom kernel, make sure you set it in the Dual Boot Patcher app
  • Flash a mod or custom kernel for the secondary ROM?
    • If it's a custom kernel, just patch and install it.
    • If it's a mod or some other flashable zip, see the "How do I patch a zip file manually?" section.


How do I patch a zip file manually?

 

(My patches for the supported zips above can be found [here] if you'd like to see examples of how this is done)

Note: This has not been updated for version 3.0.0 of the patcher yet. The instructions below will still work, but auto-patching is a lot simpler.

The first thing to do is to download the dual boot helper script and place it at the base of the zip file (not in a subfolder): https://github.com/chenxiaolong/DualBootPatcher/raw/master/patches/dualboot.sh

Next edit the updater-script file: META-INF/com/google/android/updater-script and put the following lines at the top. This allows the helper script to be used.

Code:
package_extract_file("dualboot.sh", "/tmp/dualboot.sh");
set_perm(0, 0, 0777, "/tmp/dualboot.sh");
Now, in order to make the zip file install to the correct location, you'll need to change all the lines that mount /system so that they use the dual-boot location. The helper script offers a convenient way to do this.

If see lines like one of the below:

Code:
mount("ext4", "EMMC", "/dev/block/platform/msm_sdcc.1/by-name/system", "/system");
OR
mount("ext4", "EMMC", "/dev/mmcblk0p16", "/system");
OR
run_program("/sbin/busybox", "mount", "/system");
replace it with:

Code:
run_program("/tmp/dualboot.sh", "mount-system");
If you see any lines that format the /system partition, such as:

Code:
format("ext4", "EMMC", "/dev/block/platform/msm_sdcc.1/by-name/system", "0", "/system");
replace it with:

Code:
run_program("/tmp/dualboot.sh", "format-system");
Finally, the unmount lines:

Code:
unmount("/system");
OR
run_program("/sbin/busybox", "umount", "/system");
should be replaced with:

Code:
run_program("/tmp/dualboot.sh", "set-multi-kernel");
run_program("/tmp/dualboot.sh", "unmount-system");
Now, if zip contains a kernel, you'll need to modify it's ramdisk. The easiest way to do this is to drag the boot.img onto useful/patch-ramdisk.bat if you're on Windows or:

Code:
./useful/patch-ramdisk.sh /path/to/boot.img
if you're on Linux or OS X.

You will see something like this. Just choose the ROM/Kernel type (AOSP, Google Edition, or TouchWiz) and press Enter.



That's it! If it seems like a lot of work, you'll get the hang of it soon. The idea is to change the mount, format, and unmount operations so that they don't affect the primary ROM. Then the ramdisk is modified so that the needed files are loaded from the new locations.



I patched it manually and it worked! How do I include it in the patcher?

 

First of all, thanks for helping to add support for more ROMs! To include support for the ROM, I need two things: a patch and what I call a "patch info" file.

Generating a patch is easy. Make sure you have the original and modified files in the same directory structure as in the zip. You should have:
  • a/META-INF/com/google/android/updater-script
  • b/META-INF/com/google/android/updater-script

where 'a' has the original files and 'b' has the modified files. (Of course, you can name the two folders whatever you want)

If you're on Windows, just drag both 'a' and 'b' folders onto useful/generate-patch.bat that's included with the patcher.

If you're on Linux or Mac, just run:

Code:
./useful/generate-patch.sh /path/to/a /path/to/b
To create the "patch info" file, download this https://github.com/chenxiaolong/Dual...info/Sample.py into the correct subfolder in patchinfo/ (also included with patcher). Now, open the file with a text editor and change it to match your ROM/Kernel/etc. I've included comments on how to do that inside of the sample file :)

That's it! Just send me those two files and I'll include them in the next release :)



Downloads:

 

[LINK] Dual Boot Patcher
[LINK] DualBootUtilities zip


Donations:

Donations are not required, but are greatly appreciated :D Donators will have their names listed in a nice big font on this post and will also be listed in the README file of the patcher.

Changelog:

 
  • Version 5.0.2
    • Fix bug in regex that may cause "errors=remount" to become "errwrs=remount" for my noobdev ROM leading the init binary to fail
  • Version 5.0.1
    • Fix issue where the mount script would not be executed in the init scripts of ktoonsez's kernels
    • falcon is the Moto G, not the Moto X
  • Version 4.1.3
    • Add support for EHNDROIX
    • Add support for WanamLite
    • Sort ramdisks and presets in GUI
  • Version 4.1.2
    • Add support for Echoe v20
  • Version 4.1.1
    • Add support for Echoe v18
  • Version 4.0.4
    • Update to version 1.7.28-2 of the cygwin library (for Windows)
    • Add support for OctOS
    • Add support for NamelessROM
    • Add support for Tquetski's MIUI
    • Automatically comment out check_icd in init.rc of TouchWiz 4.4 ramdisks (initial work to make stock init binary dual-boot capable)
  • Version 4.0.2
    • Remove generic boot.img support. Use the GUI patcher or patch-ramdisk script instead.
    • Add support for patching unsupported boot.lok files by unifying the file type detection code in the CLI and GUI programs
    • Add support for BlackBox 2.2
    • Add support for Echoe v14, 14.1 (untested)
    • Add support for jamal2367's Google Edition version R1.1 final
    • Add support for jamal2367's old Android 4.2.2 build
    • Add support for LiquidSmooth Kit Kat
    • Add support for AOSB
    • Add support for Bobcat Google Edition
    • Add support for SHOstock (TW4.4 tested)
    • Fix bug where the newly flashed kernel for devices needing loki is not saved properly
    • Fix modem partition mounting in TouchWiz 4.4 ROMs -- Fixes unknown baseband bug
  • Version 3.2.2
    • Added support for:
      • Carbon's Kit Kat ROM
      • Omnifarious's ROM
      • Kangakat
      • BAM-Android
      • Infamous Google Edition
      • Echoe Google Edition
      • Echoe TouchWiz
      • Official MIUI (TouchWiz-based)
      • Moto X's optimized bionic and dalvik libraries installer
  • Version 3.2.1
    • Fixes this error when a zip is unsupported:
      Code:
      AttributeError: 'NoneType' object has no attribute 'configs'
    • Add support for VirginROM (4.4 Kit Kat)
    • Add support for Dandroid (4.4 Kit Kat)
    • Add support for faux's Google Edition 4.4 jgedlte kernel
    • Add support for Gummy's Google Apps package
  • Version 3.2.0
    • Google Edition ROMs have the ugliest ramdisk by far (err...I mean Google Edition 4.4 ROMs will now boot)
    • chmod.exe from Cygwin's coreutils in now included in the Windows build so the patcher can set the necessary permissions on the init binary in Google Edition 4.4 ROMs
    • Disable SELinux by default globally
    • Fix mediaserver crash caused by the removal of /system/etc/snd_soc_msm/snd_soc_msm_2x_Fusion3_auxpcm in jamal2367's Google Edition 4.4 ROM
  • Version 3.1.1
    • Add support for Ktoonsez's Google Edition 4.4 kernel
    • Add support for Hell(y?)kat
  • Version 3.1.0
    • Add support for multi-boot patching in the Android GUI
  • Version 3.0.1
    • Update SuperSU patch to support version 1.80
    • Switch to CyanogenMod 11's mkbootimg and unpackbootimg sources
    • Add support for Google Edition 4.4 ROMs (ie. stop trying to patch the missing MSM8960_lpm.rc in the ramdisk)
    • Hack to allow the file chooser in Android 4.4 Kit Kat to work properly (in the Android version of the patcher)
  • Version 3.0.0
    • Separate many functions into common.py to make patchinfo files simpler
    • Set compile target for the Android GUI to Kit Kat (API 19)
    • Add support for debug builds of the Android GUI so I don't have to sign test builds
    • Add support for removing those pesky device check asserts
    • Add support for using multiple patches (can combine auto-patcher with manual patch)
    • Fix broken patch generator in Windows (hopefully, we won't need it anymore though)
      • Removed by default for HellyBean
    • Add auto-patcher
      • Searches through updater script to find mount, unmount, format, and delete lines and replaces them with the multi-boot equivalent.
      • Finds line that flashes the kernel and inserts line that takes a backup and stores it in the appropriate place for the dual boot switcher
      • All partitions will always be unmounted after installation so the phone is not in a weird state when flashing the next zip.
    • Auto-patched ROMs
      • GoldenEye
      • CyanogenMod
      • HellyBean
      • PAC-Man
      • ProBAM
      • AOKP
      • IOKP
      • AOSP
      • SlimBean
      • Paranoid Android
      • AICP
      • Carbon
      • JellyBeer
      • Omni
      • Gummy
      • Vanir
      • Dirty Unicorns
      • jamal2367's Google Edition
      • Ktoonsez AOSP, TouchWiz, and Google Edition kernels
      • Faux kernel
      • Ausdim kernel
      • Adam kernel
      • Infamous kernel
      • Triforce ROM
      • Paranoid Android Google Apps
      • BaNkS' Google Apps
      • CyanogenMod's Google Apps
      • doomed151 Google Apps
      • SlimBean Google Apps (standard and aroma)
      • task650's AOKP Google Apps
      • MIUI's Google Apps
      • MIUI ROM
      • Foxhound
      • HTC Sense 5 port
      • MaKTaiL's Google Edition
      • Kangabean
    • Triple boot! (and quadruple and quintuple and ...)
      • Any auto-patched ROM is automatically supported
      • Requires version 2.0.0 of the Dual Boot Switcher app
      • Dual Boot Switcher supports up to 10 ROMs in addition to the primary and secondary
      • Patcher supports 3 ROMs in addition to the primary and secondary (unless someone wants more)
      • The Android GUI only supports dual booting for now
      • Partition configuration (where things are installed): https://github.com/chenxiaolong/DualBootPatcher/blob/master/scripts/partitionconfigs.py
      • Introduced a new dualboot.sh script that keeps track of what has and hasn't been mounted
        • Terribly written updater-scripts aren't a problem anymore
        • Note: using the script outside of the patcher will cause the ROM to be installed as secondary
      • Note: I don't want to rewrite SELinux rules and compile a modified version of vold, so for now, the target /system must be on a different physical partition than the target /cache. Other dualboot solutions have worked around this by installing the ROM files to a loop mounted ext4 filesystem image
      • Installing ROMs to /data should work in theory, but will not be supported
    • What else? :p
  • Version 2.5.3
    • Catch exception when file cannot be extracted
    • Add support for loki'd ChronicKernel
  • Version 2.5.2
    • Add support for OmniROM's Kit Kat ramdisks
    • Add support for Paranoid Android 4.4 Google Apps
    • Fix syntax error in scripts/gendiff.py
  • Version 2.5.1
    • unlokibootimg: struct can convert little-endian bytes to integers in Python 3.0 and Python 3.1 too
    • Don't use backslashes for filenames when generating patches from Windows
    • Add rushi.1986's patches for GoldenEye AT&T: http://forum.xda-developers.com/showpost.
      php?p=46950654&postcount=801
    • Update Sample.py for bootimg variable
    • Add support for Ktoonsez's non-AOSP kernels
  • Version 2.5
    • Add support for extracted loki'd boot images: https://github.com/chenxiaolong/DualBootPatcher/blob/master/scripts/unlokibootimg.py
    • Add support for Loki'd ktoonsez's AOSP 4.3 kernels
    • Fix crash when script is run with Python 2 due to the code trying to encode a "UTF-8" string as "UTF-8"
    • Flush stdout when printing status messages because Python 2's print() doesn't do that automatically
    • Fix general patch for Kangabean and enable Loki ramdisk patching for it
  • Version 2.4.3
    • Add support for IOKP
  • Version 2.4.2
    • Use custom-compiled tar to fix extraction on ROMs that don't have tar with xz support
    • Fix status messages in patcher so the app doesn't appear to pause with no activity
    • Clean up app cache as soon as it's not needed anymore
    • Add support for GoldenEye (TouchWiz 4.3) for T-Mobile
  • Version 2.4.1
    • Add support for loki'd Slim Bean
  • Version 2.4
    • Switch to GNU patch because busybox's patch can't handle fuzz. There's no way in the world we could ever have 100% perfect patches, so busybox is not an option.
  • Version 2.3
    • New Android app for patching files directly on the phone
  • Version 2.1
    • Add script for generating patches
  • Version 2.0
    • Add support for automatic ramdisk patching https://github.com/chenxiaolong/DualBootPatcher/commit/c8b63aa32ec0fc1c88b28ef76e335167c1e2f47e
  • Version 1.18.1
    • Add LiquidSmooth ramdisk
    • Add support for LiquidSmooth
  • Version 1.18
    • Add munchy_cool's 64-bit OS X unpackbootimg and mkbootimg binaries
    • Add support for OS X
  • Version 1.17.5
    • Add support for Metaiiica's PAC-Man
  • Version 1.17.4
    • Fix regular expressions for HellyBean and AOSP
  • Version 1.17.3
    • Add rushi.1986's fix for the ramdisk replacement script: http://forum.xda-developers.com/showpost.php?p=46319181&postcount=458
  • Version 1.17.2
    • Add support for ProBAM
  • Version 1.17.1
    • Add support for HellyBean
    • Windows: Allow zip files to reside on a drive other separate from the patcher
    • replaceramdisk.py: Bug fix in variable name
  • Version 1.17
    • Add support for Vertigo's AOKP
    • Add generic AOKP ramdisk
  • Version 1.16.2
    • Add support for TriForceROM
  • Version 1.16.1
    • Add support for iNTriNsiC (20130806 version)
  • Version 1.16
    • Add support for Negalite
  • Version 1.15
    • Add support for geiti94's Sense 5 port
  • Version 1.14.2
    • Add support for Kangabean
  • Version 1.14.1
    • Add support for Paranoid Android Google Apps package
  • Version 1.14
    • Add support for Broodplank's AOSP
    • Add support for doom151's AOSP Google Apps package
  • Version 1.13
    • Add support for Evil UnWizzed
  • Version 1.12
    • Add support for ComaDose
    • Add support for JellyBeer
    • Add support for jamal2367's Google Edition ROM
  • Version 1.11
    • Fix critical bug in the repacking of boot.img that may cause secondary ROM to not boot (duplicate files w/same name in zip)
  • Version 1.10.1
    • Add support for AROMA Slim Bean Google Apps package
  • Version 1.10
    • Optimize patcher script so only one full zip read and one full zip write is required
    • Add support for BaNkS's Google Apps
  • Version 1.9
    • Add support for Carbon ROM
    • Add patched Carbon ramdisk
  • Version 1.8.1
    • Use 0 context diff for paranoidandroid.dualboot.patch so it can apply properly to AOSPA's updater-script
  • Version 1.8
    • Add support for FoxHound ROM
    • Add generic TouchWiz ramdisk
    • Update README with notice about free disk space
    • Bind mount /data/media during installation. It is bad practice for an updater-script to touch /data/media, but some ROMs do this, so we need to handle it
    • Add support for mounting secondary /cache in dual boot helper script
    • Update replaceramdisk.py to support version 1.7's change in ramdisk compression
  • Version 1.6.3
    • Add support for Adam kernel (UNTESTED)
  • Version 1.6.2
    • Add support for Ausdim kernel (UNTESTED)
  • Version 1.6.1
    • Add support for Slim Bean ROM
  • Version 1.6
    • Add new script for replacing the ramdisk in boot.img
  • Version 1.5
    • Add support for MIUI
  • Version 1.4.2
    • Add support for ParanoidAndroid
  • Version 1.4.1
    • Experimental Infamous kernel support (UNTESTED)
  • Version 1.4
    • Initial support for Google Edition ramdisks
    • Add support for MaKTaiL's Google Edition ROM
  • Version 1.3
    • Minor fixes in preparation for public release
    • Update README with supported files and convert line endings to rn (thanks Windows!)
  • Version 1.2.6
    • Add SuperSU support
  • Version 1.2.5
    • Add AOKP support
  • Version 1.2.4
    • Add ChronicKernel support
  • Version 1.2.3
    • Add support for Vertigo's PAC-Man
  • Version 1.2.2
    • Add support for CyanogenMod's Google Apps
  • Version 1.2.1
    • Add support for official CyanogenMod nightlies
  • Version 1.2
    • Add faux kernel support
  • Version 1.1
    • Add Windows support
    • Newly compiled mkbootimg.exe and unpackbootimg.exe to support Windows' separate text and binary file I/O modes
    • Add a portable, minimal version of Python 3 for Windows
    • Use newer GNU patch from MSYS for Windows
  • Version 1.0
    • Initial release (Linux only)
    • Supported kernels: ktoonsez AOSP 4.3


Source code:

 

My dual boot patcher: https://github.com/chenxiaolong/DualBootPatcher
My dual boot zips: https://github.com/chenxiaolong/DualBootZips

How to compile the app?

Code:
./gradlew assembleDebug
How to build the patcher?

Please see https://github.com/chenxiaolong/DualBootPatcher for up-to-date instructions on compiling the patcher.

How to rebuild the helpful zips?

Do it manually! Just kidding ;)

Code:
./create-zips.sh


XDA:DevDB Information
Dual Boot Patcher, Tool/Utility for the Samsung Galaxy S 4

Contributors
chenxiaolong

Version Information
Status: Testing

Created 2013-09-17
Last Updated 2014-07-29
Attached Thumbnails
Click image for larger version

Name:	AndroidPatcher1.png
Views:	9825
Size:	77.9 KB
ID:	2530737   Click image for larger version

Name:	AndroidPatcher2.png
Views:	9131
Size:	128.0 KB
ID:	2530738   Click image for larger version

Name:	AndroidPatcher3.png
Views:	7973
Size:	106.1 KB
ID:	2530739   Click image for larger version

Name:	AndroidPatcher4.png
Views:	7628
Size:	130.1 KB
ID:	2530741   Click image for larger version

Name:	AndroidSwitcher1.png
Views:	7363
Size:	124.9 KB
ID:	2530742  

Click image for larger version

Name:	AndroidSwitcher2.png
Views:	7373
Size:	131.5 KB
ID:	2530743   Click image for larger version

Name:	WindowsPatcher1.png
Views:	13746
Size:	3.7 KB
ID:	2530744   Click image for larger version

Name:	WindowsPatcher2.png
Views:	7094
Size:	8.8 KB
ID:	2530745   Click image for larger version

Name:	WindowsPatcher3.png
Views:	6760
Size:	7.5 KB
ID:	2530746   Click image for larger version

Name:	WindowsPatcher4.png
Views:	6581
Size:	8.1 KB
ID:	2530747  

Click image for larger version

Name:	WindowsPatcher5.png
Views:	6614
Size:	14.6 KB
ID:	2530748  
The Following 293 Users Say Thank You to chenxiaolong For This Useful Post: [ Click to Expand ]
 
chenxiaolong
Old
(Last edited by chenxiaolong; 18th September 2013 at 07:38 PM.)
#2  
chenxiaolong's Avatar
Senior Member - OP
Thanks Meter 3410
Posts: 1,483
Join Date: Sep 2011
Location: Solon

 
DONATE TO ME
Default Reserved

EDIT: Funny how people are thanking this reserved post :D
The Following 111 Users Say Thank You to chenxiaolong For This Useful Post: [ Click to Expand ]
 
chenxiaolong
Old
#3  
chenxiaolong's Avatar
Senior Member - OP
Thanks Meter 3410
Posts: 1,483
Join Date: Sep 2011
Location: Solon

 
DONATE TO ME
Default Reserved

The Following 61 Users Say Thank You to chenxiaolong For This Useful Post: [ Click to Expand ]
 
RK
Old
#4  
RK's Avatar
Senior Member
Thanks Meter 359
Posts: 764
Join Date: Feb 2012
Awesome work!
Is it possible to add support for the google edition 4.3 ROMs?
For example
http://forum.xda-developers.com/show....php?t=2395030

Also, the loke-doki zip so that us att users can flash roms that are not lokied!
The Following User Says Thank You to RK For This Useful Post: [ Click to Expand ]
 
chenxiaolong
Old
#5  
chenxiaolong's Avatar
Senior Member - OP
Thanks Meter 3410
Posts: 1,483
Join Date: Sep 2011
Location: Solon

 
DONATE TO ME
Quote:
Originally Posted by rushi.1986 View Post
Awesome work!
Is it possible to add support for the google edition 4.3 ROMs?
For example
http://forum.xda-developers.com/show....php?t=2395030

Also, the loke-doki zip so that us att users can flash roms that are not lokied!
Thanks! I'll add support for the ROM you linked right now.

loki-doki actually doesn't need any patching
Current phone: Samsung Galaxy S4 SGH-M919 (T-Mobile) & Nexus 5

I'm making CM 11.0 nightlies with IR, app2sd support, glove mode, and dual booting for all Galaxy S4 variants here: http://forum.xda-developers.com/show....php?t=2383143

I'm the author of the dialer lookup feature in SlimRoms and CyanogenMod. Please PM me for feature requests or to report bugs!
The Following 18 Users Say Thank You to chenxiaolong For This Useful Post: [ Click to Expand ]
 
ktetreault14
Old
#6  
ktetreault14's Avatar
Senior Member
Thanks Meter 1100
Posts: 2,736
Join Date: Feb 2012
Location: Largo

 
DONATE TO ME
I wish we could patch the files from android Dx

_____________________________________
If I actually did help, how bout a Thanks
The Following User Says Thank You to ktetreault14 For This Useful Post: [ Click to Expand ]
 
`SBR`
Old
#7  
Senior Member
Thanks Meter 241
Posts: 633
Join Date: Apr 2010
Location: NJ
Could you also enable the patch for miui rom avail in the i9505 Android section. .
Sorry in mobile can't link you the thread

Sent from my SGH-M919 using Tapatalk 4 Beta
The Following User Says Thank You to `SBR` For This Useful Post: [ Click to Expand ]
 
hisname
Old
#8  
hisname's Avatar
Senior Member
Thanks Meter 516
Posts: 2,485
Join Date: Jul 2012
Location: Singapore
regarding this dual booting, is there any possibility that the /data partition can be shared across both roms?

Sent from my GT-I9505 using Tapatalk 2
 

Current Devices:
Galaxy S4(GT-I9505)
Philz recovery
Ktoonsez kernel

Asus Eee Pad Slider SL101
RootBox
ClockworkMod Recovery
Stock Kernel


Past Devices:
hTc Desire S
The Following User Says Thank You to hisname For This Useful Post: [ Click to Expand ]
 
chickentuna
Old
#9  
Senior Member
Thanks Meter 408
Posts: 1,124
Join Date: Feb 2012
Quote:
Originally Posted by hisname View Post
regarding this dual booting, is there any possibility that the /data partition can be shared across both roms?

Sent from my GT-I9505 using Tapatalk 2
+1 this would be awesome

Sent from my Galaxy Nexus using Tapatalk 4
 
chenxiaolong
Old
#10  
chenxiaolong's Avatar
Senior Member - OP
Thanks Meter 3410
Posts: 1,483
Join Date: Sep 2011
Location: Solon

 
DONATE TO ME
Quote:
Originally Posted by hisname View Post
regarding this dual booting, is there any possibility that the /data partition can be shared across both roms?

Sent from my GT-I9505 using Tapatalk 2
Quote:
Originally Posted by chickentuna View Post
+1 this would be awesome

Sent from my Galaxy Nexus using Tapatalk 4
It depends on what you mean by /data. Currently, the internal SD is shared. It's possible to share /data/app and /data/app-asec without too much trouble (so apps aren't downloaded twice). If you're looking to share /data/data (app settings), I don't think I'll implement that, as least not for all apps. I don't think it's a good idea to have to have a blacklist of apps that can't have their data shared, such as launchers.

I'm considering adding a new section to the dual boot switcher app so that you can choose which apps' data should be shared between the two ROMs
Current phone: Samsung Galaxy S4 SGH-M919 (T-Mobile) & Nexus 5

I'm making CM 11.0 nightlies with IR, app2sd support, glove mode, and dual booting for all Galaxy S4 variants here: http://forum.xda-developers.com/show....php?t=2383143

I'm the author of the dialer lookup feature in SlimRoms and CyanogenMod. Please PM me for feature requests or to report bugs!

The Following 14 Users Say Thank You to chenxiaolong For This Useful Post: [ Click to Expand ]
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes