[MOD] [APP][KERNEL][RECOVERY] [m7ul] RomSwitcher | Multiboot

Search This thread

MaDc0w

Senior Member
Aug 24, 2009
234
572

N3Mqzk7.png



proudly presents


Multiboot for HTC One


Code:
System.out.println("

	Your warranty is now void

	I am not responsible for bricked devices, dead SD cards
	thermonuclear war, or you getting fired because the alarm app failed. Please
	do some research if you have any concerns about features included in this MOD
	before flashing it! YOU are choosing to make these modifications, and if
	you point the finger at me for messing up your device, I will laugh at you.

");

Sources
Team: https://github.com/RomSwitchers/RomSwitcher
Recovery: https://github.com/RomSwitchers/android_bootable_recovery/tree/cm-10.2-m7ul
Kernel: https://github.com/n3ocort3x/android_device_htc_m7ul
Ramdisk: https://github.com/RomSwitchers/RomSwitcher-m7ul
App: https://github.com/RomSwitchers/RomSwitcher

Features
Boot multiple ROMs on your device
(up to 5 ROMs, Only ROM1 can be Sense)
Easy install multiple ROMs through CWM based recovery
App Sharing between ROM1 and ROM2
Data Sharing between ROM1 and ROM2 (experimental, ROM1 must be AOSP)
Setup a password which will protect your ROMs
OTA updates
teaMseven's awesome kernel



To do list
Run ROMs through OTG
Manual boot


How to install
Check if busybox and superuser are installed
Make sure your internal SD card has at least 1GB free space (one AOSP ROM + Gapps requires about 650MB)
Download RomSwitcher App: Direct Download
Follow the instructions on the App
From the App - More - and Install RomSwitcher Recovery
Reboot to Recovery
In romswitcher section install a ROM of your choice

Contributors
Grarak MaDc0w
 
Last edited:

MaDc0w

Senior Member
Aug 24, 2009
234
572


Known Issues and Bugs

Credits

AndreiLux (helping and perseus kernel)
Intervigil, codeworkx, Faryaab (device tree)
Gokhanmoral (using some scripts of his Siyah Kernel)
JijonHyuni (init scripts)
DerTeufel1980 (recovery scripts)
Chenglu (touch recovery source)
CyanogenMod (CWM)
Google (AOSP)
Samsung (5410 kernel source)

Disturbed™ (testing and support)
[email protected] (RomSwitcher Banners)

n3ocort3x and tbalden for kernel

remind me if I forget to give credits to anybody..

Changelog

16 Nov
Update kernel to teaMseven's v53

11 Nov
Update kernel to teaMseven's v52

30 Oct
Update kernel to teaMseven's v51
Added CIR fixes

20 Oct
New App, Recovery and ramdisk
Support multiboot of 5 ROMs
Update kernel to teaMseven's
Major changes and fixes

03 Oct
Synced with latest CM
minor changes

29 Sep
Synced with latest CM
data and cache now on data/media

16 Sep
appsharing changes

13 Sep
Synced with latest CM
appsharing alpha

04 Sep
Synced with latest CM
Fixed camera

02 Sep
Initial Release

 
Last edited:

Mr. Droid

Senior Member
Mar 26, 2010
1,337
117
Toronto
will be testing soon. Thanks :)

Sent from my HTC One using Tapatalk 2

---------- Post added at 02:40 PM ---------- Previous post was at 02:31 PM ----------

When using Pac Rom, will I need to change the script all the time for new nightlies ?

Sent from my HTC One using Tapatalk 2
 
  • Like
Reactions: santishere

snowblind2142

Senior Member
Jan 20, 2010
1,317
314
Manchester
Ok, so im going to give it a go

But I have a couple of questions.

How would I go about flashing to the aosp rom?
For example, latest super su.

And I imagine trying to install xposed framework through an app wouldn't work as is a different location?

And anything un modified that's flashed just goes to the sense rom an I right?

And do both have to be the same version, ie 4.3, 4.2.2?

Thank you, is an amazing set up
 

Mr. Droid

Senior Member
Mar 26, 2010
1,337
117
Toronto
Just followed the instructions and modified both scripts.
Flashed with no errors
However phone boots up showing HTC Logo and then just black screen.
Anyway ideas?

I didn't extract everything just extracted the script and used notepad++ to modify and added back to the zip to overwrite
 
Last edited:

Grarak

Recognized Developer
Jan 16, 2012
2,799
10,494
Vienna
But I have a couple of questions.

How would I go about flashing to the aosp rom?
For example, latest super su.

And I imagine trying to install xposed framework through an app wouldn't work as is a different location?

And anything un modified that's flashed just goes to the sense rom an I right?

And do both have to be the same version, ie 4.3, 4.2.2?

Thank you, is an amazing set up

You have to modify updater script yourself when you want to flash any mods.
But why you want to flash supersu? All AOSP roms are pre-rooted.

You have to use AOSP 4.3

Just followed the instructions and modified both scripts.
Flashed with no errors
However phone boots up showing HTC Logo and then just black screen.
Anyway ideas?

Did you removed package_extract_file("boot.img", "/dev/block/mmcblk0p33); ?
 

Mr. Droid

Senior Member
Mar 26, 2010
1,337
117
Toronto
You have to modify updater script yourself when you want to flash any mods.
But why you want to flash supersu? All AOSP roms are pre-rooted.

You have to use AOSP 4.3



Did you removed package_extract_file("boot.img", "/dev/block/mmcblk0p33); ?

Yes I did
I'm running ARHD 20.1
I had a nandroid which i restored and im back to sense rom for now

Code:
assert(getprop("ro.product.device") == "m7" || getprop("ro.build.product") == "m7" || 
       getprop("ro.product.device") == "m7ul" || getprop("ro.build.product") == "m7ul");
mount("ext4", "EMMC", "/dev/block/mmcblk0p36", "/system");
package_extract_file("system/bin/backuptool.sh", "/tmp/backuptool.sh");
package_extract_file("system/bin/backuptool.functions", "/tmp/backuptool.functions");
set_perm(0, 0, 0777, "/tmp/backuptool.sh");
set_perm(0, 0, 0644, "/tmp/backuptool.functions");
run_program("/tmp/backuptool.sh", "backup");
unmount("/system");
show_progress(0.500000, 0);
mount("ext4", "EMMC", "/dev/block/mmcblk0p35", "/system");
package_extract_dir("system", "/system");
symlink("/system/xbin/su", "/system/bin/su");
symlink("Roboto-Bold.ttf", "/system/fonts/DroidSans-Bold.ttf");
symlink("Roboto-Regular.ttf", "/system/fonts/DroidSans.ttf");
symlink("busybox", "/system/xbin/[", "/system/xbin/[[",
        "/system/xbin/adjtimex", "/system/xbin/arp", "/system/xbin/ash",
        "/system/xbin/awk", "/system/xbin/base64", "/system/xbin/basename",
        "/system/xbin/bbconfig", "/system/xbin/blkid", "/system/xbin/blockdev",
        "/system/xbin/brctl", "/system/xbin/bunzip2", "/system/xbin/bzcat",
        "/system/xbin/bzip2", "/system/xbin/cal", "/system/xbin/cat",
        "/system/xbin/catv", "/system/xbin/chattr", "/system/xbin/chgrp",
        "/system/xbin/chmod", "/system/xbin/chown", "/system/xbin/chroot",
        "/system/xbin/clear", "/system/xbin/cmp", "/system/xbin/comm",
        "/system/xbin/cp", "/system/xbin/cpio", "/system/xbin/crond",
        "/system/xbin/crontab", "/system/xbin/cut", "/system/xbin/date",
        "/system/xbin/dc", "/system/xbin/dd", "/system/xbin/depmod",
        "/system/xbin/devmem", "/system/xbin/df", "/system/xbin/diff",
        "/system/xbin/dirname", "/system/xbin/dmesg", "/system/xbin/dnsd",
        "/system/xbin/dos2unix", "/system/xbin/du", "/system/xbin/echo",
        "/system/xbin/ed", "/system/xbin/egrep", "/system/xbin/env",
        "/system/xbin/expand", "/system/xbin/expr", "/system/xbin/false",
        "/system/xbin/fbsplash", "/system/xbin/fdisk", "/system/xbin/fgrep",
        "/system/xbin/find", "/system/xbin/flash_lock",
        "/system/xbin/flash_unlock", "/system/xbin/flashcp",
        "/system/xbin/flock", "/system/xbin/fold", "/system/xbin/free",
        "/system/xbin/freeramdisk", "/system/xbin/fstrim", "/system/xbin/fsync",
        "/system/xbin/ftpget", "/system/xbin/ftpput", "/system/xbin/fuser",
        "/system/xbin/getopt", "/system/xbin/grep", "/system/xbin/groups",
        "/system/xbin/gunzip", "/system/xbin/gzip", "/system/xbin/halt",
        "/system/xbin/head", "/system/xbin/hexdump", "/system/xbin/id",
        "/system/xbin/ifconfig", "/system/xbin/inetd", "/system/xbin/insmod",
        "/system/xbin/install", "/system/xbin/ionice", "/system/xbin/iostat",
        "/system/xbin/ip", "/system/xbin/kill", "/system/xbin/killall",
        "/system/xbin/killall5", "/system/xbin/less", "/system/xbin/ln",
        "/system/xbin/losetup", "/system/xbin/ls", "/system/xbin/lsattr",
        "/system/xbin/lsmod", "/system/xbin/lsusb", "/system/xbin/lzcat",
        "/system/xbin/lzma", "/system/xbin/lzop", "/system/xbin/lzopcat",
        "/system/xbin/man", "/system/xbin/md5sum", "/system/xbin/mesg",
        "/system/xbin/mkdir", "/system/xbin/mke2fs", "/system/xbin/mkfifo",
        "/system/xbin/mkfs.ext2", "/system/xbin/mkfs.vfat",
        "/system/xbin/mknod", "/system/xbin/mkswap", "/system/xbin/mktemp",
        "/system/xbin/modinfo", "/system/xbin/modprobe", "/system/xbin/more",
        "/system/xbin/mount", "/system/xbin/mountpoint", "/system/xbin/mpstat",
        "/system/xbin/mv", "/system/xbin/nanddump", "/system/xbin/nandwrite",
        "/system/xbin/nbd-client", "/system/xbin/netstat", "/system/xbin/nice",
        "/system/xbin/nohup", "/system/xbin/nslookup", "/system/xbin/ntpd",
        "/system/xbin/od", "/system/xbin/patch", "/system/xbin/pgrep",
        "/system/xbin/pidof", "/system/xbin/ping", "/system/xbin/pipe_progress",
        "/system/xbin/pkill", "/system/xbin/pmap", "/system/xbin/poweroff",
        "/system/xbin/printenv", "/system/xbin/printf", "/system/xbin/ps",
        "/system/xbin/pstree", "/system/xbin/pwd", "/system/xbin/pwdx",
        "/system/xbin/rdev", "/system/xbin/readlink", "/system/xbin/realpath",
        "/system/xbin/renice", "/system/xbin/reset", "/system/xbin/resize",
        "/system/xbin/rev", "/system/xbin/rm", "/system/xbin/rmdir",
        "/system/xbin/rmmod", "/system/xbin/route", "/system/xbin/run-parts",
        "/system/xbin/rx", "/system/xbin/sed", "/system/xbin/seq",
        "/system/xbin/setconsole", "/system/xbin/setserial",
        "/system/xbin/setsid", "/system/xbin/sh", "/system/xbin/sha1sum",
        "/system/xbin/sha256sum", "/system/xbin/sha3sum",
        "/system/xbin/sha512sum", "/system/xbin/sleep", "/system/xbin/sort",
        "/system/xbin/split", "/system/xbin/stat", "/system/xbin/strings",
        "/system/xbin/stty", "/system/xbin/sum", "/system/xbin/swapoff",
        "/system/xbin/swapon", "/system/xbin/sync", "/system/xbin/sysctl",
        "/system/xbin/tac", "/system/xbin/tail", "/system/xbin/tar",
        "/system/xbin/taskset", "/system/xbin/tee", "/system/xbin/telnet",
        "/system/xbin/telnetd", "/system/xbin/test", "/system/xbin/tftp",
        "/system/xbin/tftpd", "/system/xbin/time", "/system/xbin/timeout",
        "/system/xbin/top", "/system/xbin/touch", "/system/xbin/tr",
        "/system/xbin/traceroute", "/system/xbin/true", "/system/xbin/ttysize",
        "/system/xbin/tune2fs", "/system/xbin/umount", "/system/xbin/uname",
        "/system/xbin/uncompress", "/system/xbin/unexpand", "/system/xbin/uniq",
        "/system/xbin/unix2dos", "/system/xbin/unlzma", "/system/xbin/unlzop",
        "/system/xbin/unxz", "/system/xbin/unzip", "/system/xbin/uptime",
        "/system/xbin/usleep", "/system/xbin/uudecode", "/system/xbin/uuencode",
        "/system/xbin/vi", "/system/xbin/watch", "/system/xbin/wc",
        "/system/xbin/wget", "/system/xbin/which", "/system/xbin/whoami",
        "/system/xbin/xargs", "/system/xbin/xz", "/system/xbin/xzcat",
        "/system/xbin/yes",
        "/system/xbin/zcat");
symlink("libGLESv2.so", "/system/lib/libGLESv3.so");
symlink("logcat", "/system/bin/lolcat");
symlink("mksh", "/system/bin/sh");
symlink("mount.exfat", "/system/bin/fsck.exfat",
        "/system/bin/mkfs.exfat");
symlink("pigz", "/system/xbin/unpigz");
symlink("toolbox", "/system/bin/cat", "/system/bin/chcon",
        "/system/bin/chmod", "/system/bin/chown", "/system/bin/clear",
        "/system/bin/cmp", "/system/bin/cp", "/system/bin/date",
        "/system/bin/dd", "/system/bin/df", "/system/bin/dmesg",
        "/system/bin/du", "/system/bin/getenforce", "/system/bin/getevent",
        "/system/bin/getprop", "/system/bin/getsebool", "/system/bin/grep",
        "/system/bin/hd", "/system/bin/id", "/system/bin/ifconfig",
        "/system/bin/iftop", "/system/bin/insmod", "/system/bin/ioctl",
        "/system/bin/ionice", "/system/bin/kill", "/system/bin/ln",
        "/system/bin/load_policy", "/system/bin/log", "/system/bin/ls",
        "/system/bin/lsmod", "/system/bin/lsof", "/system/bin/md5",
        "/system/bin/mkdir", "/system/bin/mount", "/system/bin/mv",
        "/system/bin/nandread", "/system/bin/netstat",
        "/system/bin/newfs_msdos", "/system/bin/notify", "/system/bin/printenv",
        "/system/bin/ps", "/system/bin/r", "/system/bin/reboot",
        "/system/bin/renice", "/system/bin/restart", "/system/bin/restorecon",
        "/system/bin/rm", "/system/bin/rmdir", "/system/bin/rmmod",
        "/system/bin/route", "/system/bin/runcon", "/system/bin/schedtop",
        "/system/bin/sendevent", "/system/bin/setconsole",
        "/system/bin/setenforce", "/system/bin/setprop",
        "/system/bin/setsebool", "/system/bin/sleep", "/system/bin/smd",
        "/system/bin/start", "/system/bin/stop", "/system/bin/sync",
        "/system/bin/top", "/system/bin/touch", "/system/bin/umount",
        "/system/bin/uptime", "/system/bin/vmstat", "/system/bin/watchprops",
        "/system/bin/wipe");
set_perm_recursive(0, 0, 0755, 0644, "/system");
set_perm_recursive(0, 0, 0755, 0755, "/system/addon.d");
set_perm_recursive(0, 2000, 0755, 0755, "/system/bin");
set_perm(0, 3003, 02750, "/system/bin/netcfg");
set_perm(0, 0, 0755, "/system/bin/ping");
set_perm(0, 2000, 0750, "/system/bin/run-as");
set_perm(1014, 2000, 0550, "/system/etc/dhcpcd/dhcpcd-run-hooks");
set_perm_recursive(0, 2000, 0755, 0755, "/system/etc/init.d");
set_perm(0, 0, 0755, "/system/etc/init.d");
set_perm(0, 2000, 0550, "/system/etc/init.goldfish.sh");
set_perm(1000, 1000, 0644, "/system/etc/paranoid/properties.conf");
set_perm_recursive(0, 0, 0755, 0555, "/system/etc/ppp");
set_perm(0, 2000, 0755, "/system/vendor");
set_perm_recursive(0, 2000, 0755, 0644, "/system/vendor/etc");
set_perm(0, 0, 0644, "/system/vendor/etc/audio_effects.conf");
set_perm(0, 2000, 0755, "/system/vendor/firmware");
set_perm(0, 2000, 0755, "/system/vendor/firmware/keymaster");
set_perm(0, 2000, 0755, "/system/vendor/lib");
set_perm_recursive(0, 2000, 0755, 0755, "/system/xbin");
set_perm(0, 0, 06755, "/system/xbin/librank");
set_perm(0, 0, 06755, "/system/xbin/procmem");
set_perm(0, 0, 06755, "/system/xbin/procrank");
set_perm(0, 0, 06755, "/system/xbin/su");
show_progress(0.200000, 0);
show_progress(0.200000, 10);
package_extract_file("system/bin/backuptool.sh", "/tmp/backuptool.sh");
package_extract_file("system/bin/backuptool.functions", "/tmp/backuptool.functions");
set_perm(0, 0, 0777, "/tmp/backuptool.sh");
set_perm(0, 0, 0644, "/tmp/backuptool.functions");
run_program("/tmp/backuptool.sh", "restore");
delete("/system/bin/backuptool.sh");
delete("/system/bin/backuptool.functions");
show_progress(0.200000, 10);
show_progress(0.100000, 0);
unmount("/system");


---------- Post added at 03:21 PM ---------- Previous post was at 03:19 PM ----------

and my gapps script

Code:
ui_print("***********************************************");
ui_print("        Google Apps for Android 4.3.0");
ui_print("***********************************************");

ui_print("Installing files...");
mount("ext4", "EMMC", "/dev/block/mmcblk0p36", "/system");
show_progress(1, 15);
delete("/system/app/Provision.apk","/system/app/QuickSearchBox.apk","/system/app/SetupWizard.apk","/system/app/Velvet.apk","/system/app/Vending.apk","/system/app/BrowserProviderProxy.apk","/system/app/PartnerBookmarksProvider.apk","/system/app/Gmail2.apk");
package_extract_dir("system", "/system");
set_perm(0, 0, 0755, "/system/addon.d/70-gapps.sh");
package_extract_dir("optional", "/tmp");
package_extract_file("install-optional.sh", "/tmp/install-optional.sh");
set_perm(0, 0, 0777, "/tmp/install-optional.sh");
run_program("/tmp/install-optional.sh", "");
show_progress(1, 15);
ui_print("Cleaning up...");
set_perm_recursive(0, 0, 0755, 0644, "/system/app");
run_program("/sbin/busybox", "umount", "/system");
ui_print("Installation complete!");
 

Mr. Droid

Senior Member
Mar 26, 2010
1,337
117
Toronto
You forget this line mount("ext4", "EMMC", "/dev/block/mmcblk0p35", "/system");

there are two of them

Sorry but you override your current rom

Ok line modified and will test again now

I had a backup so i was ok :)

But can we add that to the instructions that ther are 2 lines need to be modified !

Thanks :)
 

MaDc0w

Senior Member
Aug 24, 2009
234
572
Ok line modified and will test again now

I had a backup so i was ok :)

But can we add that to the instructions that ther are 2 lines need to be modified !

Thanks :)



It does say in the OP. :p

"Look for these lines"

There may be ROMs or other flasher scripts that have more or less.

We are mounting the cache partition (mmcblk0p36) as system.

Every script must be changed accordingly or it may end up damaging the Sense ROM installation..
 

snowblind2142

Senior Member
Jan 20, 2010
1,317
314
Manchester
You have to modify updater script yourself when you want to flash any mods.
But why you want to flash supersu? All AOSP roms are pre-rooted.

For Me Xposed wont install unless I update to SuperSU to 1.55
This presents the other problem, I used to just install the Xposed installer and let it run.
Im just having a nosey round for a Xposed flashable xip I can change.

Learning as I go....:good:

Struggling to find a flashable zip, have found a way to manually unpack it..lol
Will leave it for now =P
 
Last edited:

Upstreammiami

Senior Member
Jun 8, 2010
4,344
1,088
34
Davie
Can we use our own gapps?

Sent from my HTC One using Tapatalk 4

---------- Post added at 12:57 PM ---------- Previous post was at 12:47 PM ----------

ok this is awesome just one question what do we do when both roms have updates ... i think for the sense version just be on sense and update.... and for aosp download the update and redo the steps to the zip file correct ???
 

Top Liked Posts

  • There are no posts matching your filters.
  • 60

    N3Mqzk7.png



    proudly presents


    Multiboot for HTC One


    Code:
    System.out.println("
    
    	Your warranty is now void
    
    	I am not responsible for bricked devices, dead SD cards
    	thermonuclear war, or you getting fired because the alarm app failed. Please
    	do some research if you have any concerns about features included in this MOD
    	before flashing it! YOU are choosing to make these modifications, and if
    	you point the finger at me for messing up your device, I will laugh at you.
    
    ");

    Sources
    Team: https://github.com/RomSwitchers/RomSwitcher
    Recovery: https://github.com/RomSwitchers/android_bootable_recovery/tree/cm-10.2-m7ul
    Kernel: https://github.com/n3ocort3x/android_device_htc_m7ul
    Ramdisk: https://github.com/RomSwitchers/RomSwitcher-m7ul
    App: https://github.com/RomSwitchers/RomSwitcher

    Features
    Boot multiple ROMs on your device
    (up to 5 ROMs, Only ROM1 can be Sense)
    Easy install multiple ROMs through CWM based recovery
    App Sharing between ROM1 and ROM2
    Data Sharing between ROM1 and ROM2 (experimental, ROM1 must be AOSP)
    Setup a password which will protect your ROMs
    OTA updates
    teaMseven's awesome kernel



    To do list
    Run ROMs through OTG
    Manual boot


    How to install
    Check if busybox and superuser are installed
    Make sure your internal SD card has at least 1GB free space (one AOSP ROM + Gapps requires about 650MB)
    Download RomSwitcher App: Direct Download
    Follow the instructions on the App
    From the App - More - and Install RomSwitcher Recovery
    Reboot to Recovery
    In romswitcher section install a ROM of your choice

    Contributors
    Grarak MaDc0w
    20


    Do you want support Grarak?
    You can buy him a beer via PayPal
    Press Thanks
    Press "Tip us?" above the OP
    Rate this Thread with 5 Stars
    Report bugs
    16


    Known Issues and Bugs

    Credits

    AndreiLux (helping and perseus kernel)
    Intervigil, codeworkx, Faryaab (device tree)
    Gokhanmoral (using some scripts of his Siyah Kernel)
    JijonHyuni (init scripts)
    DerTeufel1980 (recovery scripts)
    Chenglu (touch recovery source)
    CyanogenMod (CWM)
    Google (AOSP)
    Samsung (5410 kernel source)

    Disturbed™ (testing and support)
    [email protected] (RomSwitcher Banners)

    n3ocort3x and tbalden for kernel

    remind me if I forget to give credits to anybody..

    Changelog

    16 Nov
    Update kernel to teaMseven's v53

    11 Nov
    Update kernel to teaMseven's v52

    30 Oct
    Update kernel to teaMseven's v51
    Added CIR fixes

    20 Oct
    New App, Recovery and ramdisk
    Support multiboot of 5 ROMs
    Update kernel to teaMseven's
    Major changes and fixes

    03 Oct
    Synced with latest CM
    minor changes

    29 Sep
    Synced with latest CM
    data and cache now on data/media

    16 Sep
    appsharing changes

    13 Sep
    Synced with latest CM
    appsharing alpha

    04 Sep
    Synced with latest CM
    Fixed camera

    02 Sep
    Initial Release

    7
    I swear the file disappeared!

    Should work now.



    On another note, after the holidays we'll work some more on 4.4.
    First tests work rather well, Also working on TWRP as recovery instead of CWM.
    5
    OK, Everything seems stable enough on my setup.

    OP, App, Recovery(new), ramdisk ect updated.

    I would suggest wiping RomSwitchers data and uninstalling it (ROM2 also), redownload and install it clean from ROM1.
    Install recovery from RomSwitcher and install your ROM2 new.
    Since we are not using /cache anymore you can wipe that clean. Your ROM2 should be able to still use the /data and /cache but will create a system.img in /.firstrom/media/.secondrom/ now instead.
Our Apps
Get our official app!
The best way to access XDA on your phone
Nav Gestures
Add swipe gestures to any Android
One Handed Mode
Eases uses one hand with your phone