Attend XDA's Second Annual Developer Conference, XDA:DevCon 2014!
5,769,124 Members 39,701 Now Online
XDA Developers Android and Mobile Development Forum

Dual Boot Galaxy Note 10.1 [01 May 2013]

Tip us?
 
sendust7
Old
(Last edited by sendust7; 1st May 2013 at 04:14 AM.) Reason: Clarify. Grammar check. Formatting.
#1  
Senior Member - OP
Thanks Meter 772
Posts: 342
Join Date: Oct 2011
Location: California

 
DONATE TO ME
Default Dual Boot Galaxy Note 10.1 [01 May 2013]

I just couldn’t resist… I dual-booted my wife’s new G-Note 8013 with…
  • Stock ROM: N8013UEUCMA3
  • ClockWorkMod Recovery 6.0.3.1
  • Ubuntu GParted (I did everything else from an Android-SDK-powered Windows machine)
  • Collective Edition v6 By BaDaB!ng505
To my knowledge, this is the first published attempt at dual booting ROMs on the G-Note 10.1. And I am sure there are easier ways. But I just got this thing a week or so ago and I’m still discovering how forgiving it is




Description:

Boot to CWM and Nandroid backup ROM1 (internal memory).

Boot to Ubuntu and run GParted to shrink my SD card's FAT32 partition and to create three new ext3 partitions for ROM2’s /system, /cache and /data filesystems.



In hindsight, I could have made the partitions smaller, but I wanted to make sure that ROM2 would fit.

On G-Note’s ROM1, I go to Settings > Developer options, slide switch to ON and check “USB debugging”. Then I enter “adb shell mount” from an Android-SDK-powered computer to view ROM1’s mounted filesystems (can also do this from G-Note via terminal emulator).

Quote:
C:\Program Files\Android\android-sdk\platform-tools>adb shell mount
rootfs / rootfs ro,relatime 0 0
tmpfs /dev tmpfs rw,nosuid,relatime,mode=755 0 0
devpts /dev/pts devpts rw,relatime,mode=600 0 0
proc /proc proc rw,relatime 0 0
sysfs /sys sysfs rw,relatime 0 0
none /acct cgroup rw,relatime,cpuacct 0 0
tmpfs /mnt/asec tmpfs rw,relatime,mode=755,gid=1000 0 0
tmpfs /mnt/obb tmpfs rw,relatime,mode=755,gid=1000 0 0
none /dev/cpuctl cgroup rw,relatime,cpu 0 0
/dev/block/mmcblk0p3 /efs ext4 rw,nosuid,nodev,noatime,barrier=1,journal_async_co mmit,data=ordered 0 0
/dev/block/mmcblk0p9 /system ext4 ro,noatime,barrier=1,data=ordered 0 0
/dev/block/mmcblk0p8 /cache ext4 rw,nosuid,nodev,noatime,errors=panic,barrier=1,jou rnal_async_commit,data=ordered 0 0
/dev/block/mmcblk0p10 /preload ext4 ro,nosuid,nodev,noatime,barrier=1,data=ordered 0 0
/dev/block/mmcblk0p12 /data ext4 rw,nosuid,nodev,noatime,barrier=1,journal_async_co mmit,data=ordered,noauto_da_alloc,discard 0 0
/sys/kernel/debug /sys/kernel/debug debugfs rw,relatime 0 0
/dev/fuse /storage/sdcard0 fuse rw,nosuid,nodev,noexec,relatime,user_id=1023,group _id=1023,default_permissions,allow_other 0 0
/dev/block/vold/179:17 /storage/extSdCard vfat rw,dirsync,nosuid,nodev,noexec,noatime,nodiratime, uid=1000,gid=1023,fmask=0002,dmask=0002,all
ow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
Note carefully the device names (/dev/block/mmcblk0p{n}) for /system, /cache and /data.

Also, when I boot to CWM and enter “edify”, it shows me CWM’S filesystem table. Note the device on which /boot resides.

Quote:
C:\Program Files\Android\android-sdk\platform-tools>adb shell
~ # edify
recovery filesystem table
=========================
0 /tmp ramdisk (null) (null) 0
1 /efs ext4 /dev/block/mmcblk0p3 (null) 0
2 /boot emmc /dev/block/mmcblk0p5 (null) 0
3 /recovery emmc /dev/block/mmcblk0p6 (null) 0
4 /cache ext4 /dev/block/mmcblk0p8 (null) 0
5 /system ext4 /dev/block/mmcblk0p9 (null) 0
6 /data ext4 /dev/block/mmcblk0p12 (null) -16384
7 /preload ext4 /dev/block/mmcblk0p10 (null) 0
8 /modem emmc /dev/block/mmcblk0p7 (null) 0
9 /sdcard datamedia /dev/null (null) 0
10 /external_sd vfat /dev/block/mmcblk1p1 (null) 0
Now I select ROM2 to be: Collective Edition v6 By BaDaB!ng505.zip

I unzip ROM2 with 7-Zip and open: \META-INF\com\google\android\updater-script.

Then I modify two lines to redirect the /system format and mount from /dev/block/mmcblk0p9 to /dev/block/mmcblk1p2:

Quote:
if file_getprop("/tmp/aroma-data/option.prop","selected") == "1" then
ui_print("Collective Edition for Samsung Galaxy Note 10.1...");
run_program("/sbin/mount", "/cache");
unmount("/system");
delete("/data/local");
package_extract_dir("data", "/data");
set_perm(2000, 2000, 0771, "/data/local");
format("ext4", "EMMC", "/dev/block/mmcblk1p2", "0");
mount("ext4", "EMMC", "/dev/block/mmcblk1p2", "/system");
package_extract_dir("theme/vrtheme", "/sdcard/vrtheme");
set_perm(0, 0, 0755, "/sdcard/vrtheme/installtheme.sh");
set_perm(0, 0, 0755, "/sdcard/vrtheme/zip");
set_perm(0, 0, 0755, "/sdcard/vrtheme/cleanup.sh");
set_perm(0, 0, 0755, "/sdcard/vrtheme/zipalign");
delete_recursive("/cache");
delete_recursive("/data/dalvik-cache");
show_progress(0.6,1380);
I also comment out the boot flash logic in updater-script (see below) to protect against soft-brick. That is because I have not yet modified ROM2’s boot image to recognize the three new SD ext3 partitions for /system, /cache and /data. Thus when I flash ROM2, my G-Note will still boot to ROM1 -- though now the SD card partition: /dev/block/mmcblk1p2 is populated with the Collective ROM system files.

Quote:
################################################## ########################################
# Collective Editon Aroma Script #
# Boot Option #
################################################## ########################################

##### VAriant N8000 ###
#if file_getprop("/tmp/aroma-data/variant.prop","selected.0") == "1" then
#ui_print("Flashing Boot img for GN-8000 ...");
#assert(package_extract_file("bing/core/8000/boot.img", "/tmp/boot.img"),
#write_raw_image("/tmp/boot.img", "/dev/block/mmcblk0p5"),
#delete("/tmp/boot.img"));
#ui_print("Flashing modem ...");
#package_extract_file("bing/core/8000/flash_image", "/tmp/flash_image");
#set_perm(0, 0, 0777, "/tmp/flash_image");
#assert(package_extract_file("bing/core/8000/modem.bin", "/tmp/modem.bin"),
#run_program("/tmp/flash_image", "/dev/block/mmcblk0p7", "/tmp/modem.bin"),
#delete("/tmp/modem.bin"));
#delete("/tmp/flash_image");
#endif;

##### VAriant N8010 ###
#if file_getprop("/tmp/aroma-data/variant.prop","selected.0") == "2" then
#ui_print("Flashing boot img for GN-8010 ...");
#assert(package_extract_file("bing/core/8010/boot.img", "/tmp/boot.img"),
#write_raw_image("/tmp/boot.img", "/dev/block/mmcblk0p5"),
#delete("/tmp/boot.img"));
#endif;

##### VAriant N8013 ###
#if file_getprop("/tmp/aroma-data/variant.prop","selected.0") == "3" then
#ui_print("Flashing boot img for GN-8013 ...");
#assert(package_extract_file("bing/core/8013/boot.img", "/tmp/boot.img"),
#write_raw_image("/tmp/boot.img", "/dev/block/mmcblk0p5"),
#delete("/tmp/boot.img"));
#endif;
I unzip the directory contents to a new ROM zip file denoted “SD”: Collective Edition v6 By BaDaB!ng505-SD.zip

Next, I extract boot.img from bing/core/8013 and modify contents of the /ramdisk directory; specifically to replace:

Quote:
/dev/block/mmcblk0p9 with /dev/block/mmcblk1p2 (for /system)
/dev/block/mmcblk0p8 with /dev/block/mmcblk1p3 (for /cache)
/dev/block/mmcblk0p12 with /dev/block/mmcblk1p4 (for /data)
BEFORE
http://www.mediafire.com/view/?6to8al6lrl80dje

AFTER
http://www.mediafire.com/view/?elv981g58f0q2b6

Then I repack the (modified) boot image and flash it with the Unix dd command from ADB:

Quote:
dd if=boot-repack.img of=/dev/block/mmcblk0p5
Then reboot and voila, ROM2 boots off SD.


Here’s the adb shell mount dump with ROM2 running:
Quote:
C:\Program Files\Android\android-sdk\platform-tools>adb shell mount
rootfs / rootfs ro,relatime 0 0
tmpfs /dev tmpfs rw,nosuid,relatime,mode=755 0 0
devpts /dev/pts devpts rw,relatime,mode=600 0 0
proc /proc proc rw,relatime 0 0
sysfs /sys sysfs rw,relatime 0 0
none /acct cgroup rw,relatime,cpuacct 0 0
tmpfs /mnt/asec tmpfs rw,relatime,mode=755,gid=1000 0 0
tmpfs /mnt/obb tmpfs rw,relatime,mode=755,gid=1000 0 0
none /dev/cpuctl cgroup rw,relatime,cpu 0 0
/dev/block/mmcblk0p3 /efs ext4 rw,nosuid,nodev,noatime,barrier=1,journal_async_co mmit,data=ordered 0 0
/dev/block/mmcblk1p2 /system ext4 ro,noatime,barrier=1,data=ordered 0 0
/dev/block/mmcblk1p3 /cache ext4 rw,nosuid,nodev,noatime,errors=panic,barrier=1,jou rnal_async_commit,data=ordered 0 0
/dev/block/mmcblk0p10 /preload ext4 ro,nosuid,nodev,noatime,barrier=1,data=ordered 0 0
/dev/block/mmcblk1p4 /data ext4 rw,nosuid,nodev,noatime,errors=panic,barrier=1,jou rnal_async_commit,data=ordered,noauto_da_alloc,dis card 0 0

/sys/kernel/debug /sys/kernel/debug debugfs rw,relatime 0 0
/dev/fuse /storage/sdcard0 fuse rw,nosuid,nodev,noexec,relatime,user_id=1023,group _id=1023,default_permissions,allow_other 0 0
/dev/block/dm-0 /mnt/asec/com.speedsoftware.rootexplorer-1 ext4 ro,dirsync,nosuid,nodev,noatime,barrier=1 0 0
/dev/block/vold/179:17 /storage/extSdCard vfat rw,dirsync,nosuid,nodev,noexec,noatime,nodiratime, uid=1000,gid=1023,fmask=0002,dmask=0002,all
ow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
To reboot to ROM1, I pull the boot.img from my CWM Nandroid backup (one-shot) and run the dd command from ADB:

Quote:
dd if=boot.img of=/dev/block/mmcblk0p5
Of course this method is somewhat cumbersome, and G-Note doesn’t have fastboot . So I developed a “boot-switcher” toolset that can be launched on the fly from either ROM using Terminal Emulator:




A good script manager would be even better since it would allow us to customize and store shell commands. But I have not yet found a script manager that is compatible with G-Note. I imagine someone has already ported a dual-boot spinner app from the SGN7000 or similar device.

And of course you can run a virtual Linux box underneath your ROM: https://play.google.com/store/apps/d...nandroid&hl=en. It's an excellent app which has been around for a long time.

Blessings.

Credits:BaDaB!ng505 (Collective Edition v6 By BaDaB!ng505.zip)

Motorola Atrix 4g Dual Boot emmc / sdcard ~ SG Note 10.1 JB ~ SGS 4 JB422

Like my work? Click THANKS!
Think you like my work? Read my other threads --- you may change your mind
Not sure you like my work? Stay tuned
Don't like my work? Well... I tried
The Following 17 Users Say Thank You to sendust7 For This Useful Post: [ Click to Expand ]
 
BaDaB!ng505
Old
(Last edited by BaDaB!ng505; 1st May 2013 at 02:48 PM.)
#2  
BaDaB!ng505's Avatar
Senior Member
Thanks Meter 808
Posts: 664
Join Date: Mar 2011
Location: Las Vegas, Sin City

 
DONATE TO ME
definitely trying this out on the new CMD3 firmware...
Great job buddy
Donation is appreciated but a simple Thanks goes a long way

 
The Following User Says Thank You to BaDaB!ng505 For This Useful Post: [ Click to Expand ]
 
andrcool
Old
#3  
andrcool's Avatar
Senior Member
Thanks Meter 38
Posts: 189
Join Date: Nov 2011
Location: jaz
You are amazing had any one told you that , this is just what my note missing and now it's right here .
Be always thankful , people will thank you back.
The Following User Says Thank You to andrcool For This Useful Post: [ Click to Expand ]
 
OberstGrausam
Old
(Last edited by OberstGrausam; 1st May 2013 at 06:02 PM.)
#4  
Member
Thanks Meter 34
Posts: 80
Join Date: Feb 2013
I've just read that you are looking for a script manager that is compatible with our note. Well, this one is https://play.google.com/store/apps/d...tmanager&hl=de but not directly over the playstore. You need to download the .apk with another device, than grab it from data/app and than copy it to your note. (filename should be os.tools.scriptmanager-1.apk) After this, just install it as usual. It works fine for me. I ran the supercharger v6 script with it and had no issues.
The Following User Says Thank You to OberstGrausam For This Useful Post: [ Click to Expand ]
 
sendust7
Old
(Last edited by sendust7; 1st May 2013 at 06:43 PM.)
#5  
Senior Member - OP
Thanks Meter 772
Posts: 342
Join Date: Oct 2011
Location: California

 
DONATE TO ME
Quote:
Originally Posted by OberstGrausam View Post
I've just read that you are looking for a script manager that is compatible with our note. Well, this one is https://play.google.com/store/apps/d...tmanager&hl=de but not directly over the playstore. You need to download the .apk with another device, than grab it from data/app and than copy it to your note. (filename should be os.tools.scriptmanager-1.apk) After this, just install it as usual. It works fine for me. I ran the supercharger v6 script with it and had no issues.
Ahhh yes, thanks. I had considered doing that yesterday since I use "SManager" (os.tools.scriptmanager-1.apk) for dual booting another device. But I pulled back after seeing Play Store's pop-up to the effect "This app is not compatible with your device."

We may need to check-box: Settings>Security>Unknown sources (allow installation of apps from sources other than Play Store).

[EDIT]And, as root: chmod 0644 /data/app/os.tools.scriptmanager-1.apk.

Or push it to /system/app (where apk's stay resident --- even after data wipe), then chmod & install as usual

Motorola Atrix 4g Dual Boot emmc / sdcard ~ SG Note 10.1 JB ~ SGS 4 JB422

Like my work? Click THANKS!
Think you like my work? Read my other threads --- you may change your mind
Not sure you like my work? Stay tuned
Don't like my work? Well... I tried
 
sendust7
Old
(Last edited by sendust7; 2nd May 2013 at 10:44 PM.) Reason: Clarify.
#6  
Senior Member - OP
Thanks Meter 772
Posts: 342
Join Date: Oct 2011
Location: California

 
DONATE TO ME
Default Modified Collective ROM Boot Image for G-Note 8013

For those interested, here is the modified, repacked 8013 boot image to dual boot Collective V6 on SD: http://www.mediafire.com/view/?8lvkbtl5mf888f2

I think the easiest and safest thing to do is:
  1. CWM-Nandroid backup ROM1 (just in case --- and because you need boot.img to reboot to ROM1)
  2. Use Linux GParted (more user friendly) or CWM parted (less user friendly) to shrink SD card FAT32 and to create three new ext3 partitions as described in OP
  3. Decompress Collective V6 updater-script using 7-Zip
  4. Modify Collective's updater-script exactly as described in OP and re-zip with 7-Zip
  5. Flash modified zip. This will push Collective’s /system files to the new ext3 partition: /dev/block/mmcblk1p2 on SD (you can still boot to ROM1 at this point)
  6. Download repacked 8013 boot image linked above to your G-Note 8013
  7. adb shell (as root) from an Android SDK-powered machine
  8. dd if=boot-bing-core-8013-repack.img of=/dev/block/mmcblk0p5
  9. Reboot G-Note
  10. Be patient
  11. Enjoy Collective v6 running on SD
I can add steps here as needed

Disclaimer: Standard disclaimers apply.

Motorola Atrix 4g Dual Boot emmc / sdcard ~ SG Note 10.1 JB ~ SGS 4 JB422

Like my work? Click THANKS!
Think you like my work? Read my other threads --- you may change your mind
Not sure you like my work? Stay tuned
Don't like my work? Well... I tried
 
diga1001
Old
#7  
Member
Thanks Meter 4
Posts: 45
Join Date: May 2012
Sounds very cool! But which one do you mean by sdcard? Do you mean the "real" micro sd card or do you mean the internal sdcard which is built in by samsung?
 
sendust7
Old
#8  
Senior Member - OP
Thanks Meter 772
Posts: 342
Join Date: Oct 2011
Location: California

 
DONATE TO ME
Quote:
Originally Posted by diga1001 View Post
Sounds very cool! But which one do you mean by sdcard? Do you mean the "real"Pmicro sd card or do you mean the internal sdcard which is built in by samsung?
The new partitions are created on the external card.

Motorola Atrix 4g Dual Boot emmc / sdcard ~ SG Note 10.1 JB ~ SGS 4 JB422

Like my work? Click THANKS!
Think you like my work? Read my other threads --- you may change your mind
Not sure you like my work? Stay tuned
Don't like my work? Well... I tried
 
Itbelikedat
Old
#9  
Itbelikedat's Avatar
Member
Thanks Meter 8
Posts: 52
Join Date: Dec 2010
Location: Miami, Florida
Default ubuntu flashable .zip + aroma installer dual-boot method

Can this ubuntu image be turned into a fully functional .zip file that can be flashed using a custom recovery such as cwm or twrp that will allow a user to run it natively?

That in itself would be awesome!

If so, it might be possible to use the aroma installer dual boot method to make everything super simple.

Here's a link to a video showcasing the aroma installer dual boot method.

http://m.youtube.com/?reload=9&rdm=t...%3DDpfWFUHSkoY

This aroma installer is meant for the galaxy note phone but after a few modifications, it could work just fine for b our 10.1s

A few things that will need to be changed are

The amount of storage space allocated for the rom slot that will be used for ubuntu (aroma gives 3 gigs to each rom slot and ubuntu 12 full is around 5 gigs, if I'm not mistaken)

A different button or combination of buttons have to be set to initiate booting up the secondary rom since our 10.1s don't have physical home buttons like the galaxy note phone does. (this aroma lets you choose and switch which rom is the primary rom which is awesome!)

Had I been more savvy about all of this, I'd have joyfully taken on these tasks myself, but I'm not there yet.

Hopefully I have been helpful to some of you.

I can't wait until whole process is simplified because being able too right click using this tablet will make life a lot easier.
The Following User Says Thank You to Itbelikedat For This Useful Post: [ Click to Expand ]
 
miamo
Old
#10  
Junior Member
Thanks Meter 8
Posts: 14
Join Date: Apr 2010
Thanx for your instructions.
I have now a dual boot with cm11 on extSdCard and gnabo rom5. Only the script is not working for me. I might typed something wrong. It says that it cannot find the Boot directory. But this not much of a problem.
I know this is a old post, but maybe someone else is trying to do it. If there are questions, I might be able to help.

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes