[HOWTO] Dual-Boot P31xx

Search This thread

Nicene Nerd

Senior Member
Mar 7, 2012
274
184
Graceville
www.thenicenenerd.com
Dual-booting has always intrigued me. I dual-boot between Windows and Linux on one of my computers, dual-boot between stock firmware and RockBox on my Sansa Fuze v2, and I decided to find out how to dual-boot my Galaxy Tab 2 7.0". It took a couple days of work, but I have found one way to do so using the external SD card.
In the future, if I can work it out, I will provide a method for dual-booting using only internal storage. Update: I have successfully tested an internal dualboot setup. I will post details later.
Warning: While I am not aware of any specific way this could brick your device, stuff happens, so don't blame me. I've tested this and found no problems, but you may not be the same.
To use this method, you need a microSD card at least 8GB in size. If you use 8GB, though, you will have pretty limited space for storage, so a card 16GB or greater is advised.
Preparing SD Card
  1. Repartition your microSD card using whatever program suits you. You need to shrink the first storage partition to make room for the new system partitions. The new partitions should take at least 5GB, so be sure to leave at least 5.25GB. You can always resize later if you need to.
  2. After shrinking your storage partition, create four ext4 partitions in this order: system (min 800MB, recommended 1.25GB), cache (min 500MB, recommended 700MB), data (min 3GB, recommended 5GB), and EFS (min 21MB, recommended 32MB).
  3. Verify your partitions on your tablet by inserting the SD card, booting into CWM, and running "parted /dev/mmcblk1" (no quotes) over ADB shell.
Flashing External ROM
  1. Now you just need a ROM to flash. Most ROMs are not packaged to run from external SD card. You MUST either use a provided ROM or edit one yourself. I provide here a repackaged version of the 8/28 CM10 nightly which can flash to and run from your SD card. If you want to edit a ROM yourself, see the bottom of this post.
  2. Boot into CWM and backup. You will need your backed up boot image if anything goes wrong.
  3. Now flash your ROM. It will install to the external SD card on the appropriate partitions if you did everything right. Reboot: you should be in your new ROM.
  4. You'll probably want a Google Apps package. See below for packages for external dualboot.
Using Your Dual-Boot Setup
  • Your internal and external ROMs do not share internal storage, due to the odd nature of the SD card fuse tool.Your external ROM has an "internal SD card" of its own. You may find a way to mount the internal /data/media to the external ROM's /sdcard. My new ROM conversion script will add attempt to mount the internal ROM's storage to /storage/intSdCard
  • The ROMs I provide here include a script in /system/bin called "bootinternal." Run this from a terminal emulator or adb to switch from the external ROM back to the internal one. I have attached a script called "bootexternal" to this post. Use it on your internal ROM to switch to the external one (remember to set the executable permission).
  • In order for the boot switching scripts to work, you must do some preparation. On your external ROM, place the internal ROM's boot.img in /sdcard/Boot/internal.img. For your internal ROM, place your external ROM's boot.img in /sdcard/Boot/external.img.
  • If you ever need/watch to switch ROMs manually, run the following commands in a terminal emulator or over ADB, replacing "boot.img" with the boot image of the ROM you are switching to:
    Code:
    cat boot.img > /dev/block/mmcblk0p5
    reboot
    Alternatively, you could switch boot images using Mobile Odin.
  • Update: I would skip using my prepackaged ROMs now, because I have uploaded a converter script that will actually do a better job. These will configure the "bootinternal" and "bootexternal" scripts automatically.
  • If you ever need to wipe your data, cache, or dalvik cache, see the next post for CWM zips.
Downloads
Roms for External SD Card:
CyanogenMod 10 Nightly (8/28/2012)
AOKP P3113 Stable
Note that these are probably unnecessary now, because I provide a script to convert ROMs automatically on Linux.
Google Apps Packages for External SD Card:
Gapps for Jelly Bean - Use for CM10, AOKP, etc
Gapps for Ice Cream Sandwich - Use for stock, RomsWell, etc
If I ever have time, I plan to upload SD card images which you can use to partition your external SD card automatically.
---
Repacking a ROM for Dual-boot from SD Card
Note: You no longer need to do this manually. I have uploaded a script which automates the conversion process. See the next post for download.
  1. First, you need to extract and unpack the boot image. There are tools and scripts available for this, so find one.
  2. Once the boot image is unpacked, you need to edit init.espresso.rc on the ramdisk. Find where the partitions are mounted and change the code to look like this (yours may look slightly different depending on the ROM, but just be sure to replace the default partition mounts with those of your SD card partitions):
    Code:
        #mount ext4 /dev/block/platform/omap/omap_hsmmc.1/by-name/FACTORYFS /system wait rw   
        mount ext4 /dev/block/mmcblk1p2 /system wait rw
        #mount ext4 /dev/block/platform/omap/omap_hsmmc.1/by-name/FACTORYFS /system ro remount
        mount ext4 /dev/block/mmcblk1p2 /system ro remount
        #mount ext4 /dev/block/platform/omap/omap_hsmmc.1/by-name/DATAFS /data wait noatime nosuid nodev crypt discard,noauto_da_alloc
        mount ext4 /dev/block/platform/omap/omap_hsmmc.1/by-name/DATAFS /data2 wait noatime nosuid nodev crypt discard,noauto_da_alloc
        mount ext4 /dev/block/mmcblk1p4 /data wait noatime nosuid nodev crypt discard,noauto_da_alloc
        #mount ext4 /dev/block/platform/omap/omap_hsmmc.1/by-name/CACHE /cache wait noatime nosuid nodev nomblk_io_submit,errors=panic
        mount ext4 /dev/block/mmcblk1p3 /cache wait noatime nosuid nodev nomblk_io_submit,errors=panic
        #mount ext4 /dev/block/platform/omap/omap_hsmmc.1/by-name/EFS /efs wait rw
        mount ext4 /dev/block/mmcblk1p5 /efs wait rw
  3. Repack the boot image and stick it back into the ROM. Then edit the updater-script, and change all references to the internal system partition (/dev/block/mmcblk0p9) to the external system partition (e.g. /dev/block/mmcblk1p2). If any other partitions are referenced, change them as well.
  4. Optional: insert the "bootinternal" script in /system/bin and the a script to mount the internal storage in /system/etc/init.d.
  5. Your ROM is ready to go. Flash and be happy!

Thanks to Johnsel for helping me edit the boot image and pointing me to sendust7's work on the Atrix, who I also thank for his precedent.
 

Attachments

  • 02intsdcard.sh.txt
    122 bytes · Views: 599
  • bootexternal.sh.txt
    81 bytes · Views: 503
  • bootinternal.sh.txt
    81 bytes · Views: 389
Last edited:

Nicene Nerd

Senior Member
Mar 7, 2012
274
184
Graceville
www.thenicenenerd.com
CWM Zips for Wiping External Partitions

If you ever need to wipe /data, /cache, or dalvik on your external dual-boot partitions, you can use these CWM zips to do so.

Update: Here is a script to automate the conversion of a ROM from standard to external dualboot.
 

Attachments

  • wipe-cache-dualboot.zip
    152.3 KB · Views: 715
  • wipe-dalvik-dualboot.zip
    152.4 KB · Views: 664
  • wipe-data-dualboot.zip
    153.4 KB · Views: 672
  • dualboot-rom-convert.zip
    18.8 KB · Views: 599
Last edited:

Nicene Nerd

Senior Member
Mar 7, 2012
274
184
Graceville
www.thenicenenerd.com
Agreed! Is it possible to dual boot stock and AOKP?
Absolutely. If you're running stock, just follow the instructions to partition your SD card, then flash the provided AOKP package and (I assume you would) the gapps package. You should boot right into to your external AOKP installation. Then just copy your stock boot image to /sdcard/Boot/internal.img and run "bootinternal" from a Terminal Emulator or adb shell to return to stock.
 
  • Like
Reactions: harshadura

silentvisitor

Senior Member
Mar 15, 2012
4,522
2,653
BRILLIANT !!!

A few suggestions:
Possible to have a GUI to switch ROM or even better to have it at boot (through kernel).
Script to Automate the process of converting any(P31xx) ROM to dual-boot. It will take away pressure off you.

Thanks !
 

Nicene Nerd

Senior Member
Mar 7, 2012
274
184
Graceville
www.thenicenenerd.com
BRILLIANT !!!

A few suggestions:
Possible to have a GUI to switch ROM or even better to have it at boot (through kernel).
Script to Automate the process of converting any(P31xx) ROM to dual-boot. It will take away pressure off you.

Thanks !
The GUI may or may not happen, since I, while familiar with partitions and scripting, don't know much about Java or Android development. I'll look into it, though. Having it run at boot through the kernel is beyond my skills. The closest I could do would be an init.d script.
As for a script to automate the conversion process, that seems doable. It only involves two files (init.espresso.rc in the boot image and the updater-script), so I could see that happening. I'll try to do something with that.
 

Aliendex

Senior Member
Aug 26, 2012
135
13
www.marco182.altervista.org
This is very interesting!
But I think it is better if we can install dual-boot like CM10 and some porting of Linux desktop version, chrome OS (love it) and other ;)

I follow this thread!
 

Nicene Nerd

Senior Member
Mar 7, 2012
274
184
Graceville
www.thenicenenerd.com
Update: I've added a script that automatically converts ROMs to external dualboot format. I advise using this script instead of my provided ROMs. Just open a terminal in the script's directory and run:
Code:
./convert.sh rom-to-convert.zip
It will automatically edit the boot image and updater script, as well as configure the dualboot scripts. Go back to the second post to download.
 
  • Like
Reactions: silentmelodies

partola1

Senior Member
Apr 17, 2010
82
11
Kiev
Dual-boot question

Sorry for offtop, but your work is very interesting for me. I have GT-P6800 (Tab 7.7) and will try your method on my device. What can i do for it? May be change numeration of partitions inside a script? And firmware counter will be ticked or not? And my current firmware in internal memory will be untoched? Thanks for your work again!
 

Nicene Nerd

Senior Member
Mar 7, 2012
274
184
Graceville
www.thenicenenerd.com
Sorry for offtop, but your work is very interesting for me. I have GT-P6800 (Tab 7.7) and will try your method on my device. What can i do for it? May be change numeration of partitions inside a script? And firmware counter will be ticked or not? And my current firmware in internal memory will be untoched? Thanks for your work again!
I would assume our tablets are very similar, so my method probably would work as is. To be sure, extract the updater-script from your rom and send it to me, along with the boot image, and I'll check it out. Your firmware counter will not be increased, and your current firmware should not be affected.
 
  • Like
Reactions: partola1

partola1

Senior Member
Apr 17, 2010
82
11
Kiev
I would assume our tablets are very similar, so my method probably would work as is. To be sure, extract the updater-script from your rom and send it to me, along with the boot image, and I'll check it out. Your firmware counter will not be increased, and your current firmware should not be affected.

Hi, this is my p680 kernel & updater-script:
http://hotfile.com/dl/170647189/80fec16/P6800.ZIP.html
Please, check it!

Also, i have some questions:

as you know, only 4 primary partition allowing on sdcard. I create 1 partition primary fat32 and 4 partitions logical ext4. Is this ok?
And how can i check partitions directly on tab? Terminal emulator not understand parted command, and from recovery TWRP 2.2.0.0 terminal asking me about from which directory execute commands. I try few directories, but parted/dev/mmcblk1 command show nothing to me.

Thank you for your adwise.
 

Nicene Nerd

Senior Member
Mar 7, 2012
274
184
Graceville
www.thenicenenerd.com
Hi, this is my p680 kernel & updater-script:
http://hotfile.com/dl/170647189/80fec16/P6800.ZIP.html
Please, check it!
I'm having problems unpacking your boot image. Run the command "mount" on your tab and give me the output. I looked in your updater-script, though, and that seems compatible.
as you know, only 4 primary partition allowing on sdcard. I create 1 partition primary fat32 and 4 partitions logical ext4. Is this ok?
I was able to put 5 primary partitions on my SD card. Are you using an MBR partition table or GUID partition table? You need to use GUID to have 5 primary partitions. Anyway, I don't know if it will make a difference for logical partitions. Once you can check the partitions from your tab, I'll be able to tell you if it will work.
And how can i check partitions directly on tab? Terminal emulator not understand parted command, and from recovery TWRP 2.2.0.0 terminal asking me about from which directory execute commands. I try few directories, but parted/dev/mmcblk1 command show nothing to me.
Use CWM instead of TWRP.
 

partola1

Senior Member
Apr 17, 2010
82
11
Kiev
I'm having problems unpacking your boot image. Run the command "mount" on your tab and give me the output. I looked in your updater-script, though, and that seems compatible.

Hi, this is result of mount command:
Code:
app_122@android:/ $ export PATH=/data/local/bin:$PATH
app_122@android:/ $ 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/mmcblk0p9 /system ext4 ro,noatime,barrier=1,data=ordered 0 0
/dev/block/mmcblk0p7 /cache ext4 rw,nosuid,nodev,noatime,barrier=1,data=ordered 0 0
/dev/block/mmcblk0p1 /efs ext4 rw,nosuid,nodev,noatime,barrier=1,data=ordered 0 0
/dev/block/mmcblk0p10 /data ext4 rw,nosuid,nodev,noatime,barrier=1,data=ordered,noauto_da_alloc 0 0
/dev/block/mmcblk0p4 /mnt/.lfs j4fs rw,relatime 0 0
/sys/kernel/debug /sys/kernel/debug debugfs rw,relatime 0 0
/dev/fuse /mnt/sdcard fuse rw,nosuid,nodev,relatime,user_id=1023,group_id=1023,default_permissions,allow_other 0 0
tmpfs /mnt/sdcard/extStorages tmpfs rw,dirsync,nosuid,nodev,noexec,noatime,nodiratime,size=0k,mode=755,gid=1000 0 0
/dev/block/vold/179:9 /mnt/sdcard/extStorages/SdCard vfat rw,dirsync,nosuid,nodev,noexec,noatime,nodiratime,uid=1000,gid=1023,fmask=0002,dmask=0002,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
app_122@android:/ $

Also, i get CWM instead TWRP. But CWM have not possibility entering commands at all.
If you had troubles with unpacking CM10 kernel, any way for update it to booting from sd?

Thank you.
 

cdesai

Inactive Recognized Developer
Jan 16, 2011
2,296
4,089
IN YOUR HEAD
Why duplicate the efs partition?

And what makes it need such a big cache partition?

Sent from my GT-P1000
 

Nicene Nerd

Senior Member
Mar 7, 2012
274
184
Graceville
www.thenicenenerd.com
Hi, this is result of mount command:
Code:
app_122@android:/ $ export PATH=/data/local/bin:$PATH
app_122@android:/ $ 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/mmcblk0p9 /system ext4 ro,noatime,barrier=1,data=ordered 0 0
/dev/block/mmcblk0p7 /cache ext4 rw,nosuid,nodev,noatime,barrier=1,data=ordered 0 0
/dev/block/mmcblk0p1 /efs ext4 rw,nosuid,nodev,noatime,barrier=1,data=ordered 0 0
/dev/block/mmcblk0p10 /data ext4 rw,nosuid,nodev,noatime,barrier=1,data=ordered,noauto_da_alloc 0 0
/dev/block/mmcblk0p4 /mnt/.lfs j4fs rw,relatime 0 0
/sys/kernel/debug /sys/kernel/debug debugfs rw,relatime 0 0
/dev/fuse /mnt/sdcard fuse rw,nosuid,nodev,relatime,user_id=1023,group_id=1023,default_permissions,allow_other 0 0
tmpfs /mnt/sdcard/extStorages tmpfs rw,dirsync,nosuid,nodev,noexec,noatime,nodiratime,size=0k,mode=755,gid=1000 0 0
/dev/block/vold/179:9 /mnt/sdcard/extStorages/SdCard vfat rw,dirsync,nosuid,nodev,noexec,noatime,nodiratime,uid=1000,gid=1023,fmask=0002,dmask=0002,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
app_122@android:/ $
Your essential partitions are the same, but are referenced differently. I will need to make a slight alteration to the conversion script.
Also, i get CWM instead TWRP. But CWM have not possibility entering commands at all.
You do it through ADB.
If you had troubles with unpacking CM10 kernel, any way for update it to booting from sd?
I'm looking into the boot image, but let's try something out. In the terminal emulator, run "cat /dev/block/mmcblk0p5 > /sdcard/full-boot.img" (without quotes). Then upload that file.
Why duplicate the efs partition?
When I first ran across it, I wasn't sure what it was, so I added it for safety.
And what makes it need such a big cache partition?
I'm not sure. I decided to keep it close to the original cache partition size, which was 700+ MB. However, I've found in another setup that I can get by with half that. In my internal dual-boot setup, I have a 384MB cache partition.
 

Top Liked Posts

  • There are no posts matching your filters.
  • 37
    Dual-booting has always intrigued me. I dual-boot between Windows and Linux on one of my computers, dual-boot between stock firmware and RockBox on my Sansa Fuze v2, and I decided to find out how to dual-boot my Galaxy Tab 2 7.0". It took a couple days of work, but I have found one way to do so using the external SD card.
    In the future, if I can work it out, I will provide a method for dual-booting using only internal storage. Update: I have successfully tested an internal dualboot setup. I will post details later.
    Warning: While I am not aware of any specific way this could brick your device, stuff happens, so don't blame me. I've tested this and found no problems, but you may not be the same.
    To use this method, you need a microSD card at least 8GB in size. If you use 8GB, though, you will have pretty limited space for storage, so a card 16GB or greater is advised.
    Preparing SD Card
    1. Repartition your microSD card using whatever program suits you. You need to shrink the first storage partition to make room for the new system partitions. The new partitions should take at least 5GB, so be sure to leave at least 5.25GB. You can always resize later if you need to.
    2. After shrinking your storage partition, create four ext4 partitions in this order: system (min 800MB, recommended 1.25GB), cache (min 500MB, recommended 700MB), data (min 3GB, recommended 5GB), and EFS (min 21MB, recommended 32MB).
    3. Verify your partitions on your tablet by inserting the SD card, booting into CWM, and running "parted /dev/mmcblk1" (no quotes) over ADB shell.
    Flashing External ROM
    1. Now you just need a ROM to flash. Most ROMs are not packaged to run from external SD card. You MUST either use a provided ROM or edit one yourself. I provide here a repackaged version of the 8/28 CM10 nightly which can flash to and run from your SD card. If you want to edit a ROM yourself, see the bottom of this post.
    2. Boot into CWM and backup. You will need your backed up boot image if anything goes wrong.
    3. Now flash your ROM. It will install to the external SD card on the appropriate partitions if you did everything right. Reboot: you should be in your new ROM.
    4. You'll probably want a Google Apps package. See below for packages for external dualboot.
    Using Your Dual-Boot Setup
    • Your internal and external ROMs do not share internal storage, due to the odd nature of the SD card fuse tool.Your external ROM has an "internal SD card" of its own. You may find a way to mount the internal /data/media to the external ROM's /sdcard. My new ROM conversion script will add attempt to mount the internal ROM's storage to /storage/intSdCard
    • The ROMs I provide here include a script in /system/bin called "bootinternal." Run this from a terminal emulator or adb to switch from the external ROM back to the internal one. I have attached a script called "bootexternal" to this post. Use it on your internal ROM to switch to the external one (remember to set the executable permission).
    • In order for the boot switching scripts to work, you must do some preparation. On your external ROM, place the internal ROM's boot.img in /sdcard/Boot/internal.img. For your internal ROM, place your external ROM's boot.img in /sdcard/Boot/external.img.
    • If you ever need/watch to switch ROMs manually, run the following commands in a terminal emulator or over ADB, replacing "boot.img" with the boot image of the ROM you are switching to:
      Code:
      cat boot.img > /dev/block/mmcblk0p5
      reboot
      Alternatively, you could switch boot images using Mobile Odin.
    • Update: I would skip using my prepackaged ROMs now, because I have uploaded a converter script that will actually do a better job. These will configure the "bootinternal" and "bootexternal" scripts automatically.
    • If you ever need to wipe your data, cache, or dalvik cache, see the next post for CWM zips.
    Downloads
    Roms for External SD Card:
    CyanogenMod 10 Nightly (8/28/2012)
    AOKP P3113 Stable
    Note that these are probably unnecessary now, because I provide a script to convert ROMs automatically on Linux.
    Google Apps Packages for External SD Card:
    Gapps for Jelly Bean - Use for CM10, AOKP, etc
    Gapps for Ice Cream Sandwich - Use for stock, RomsWell, etc
    If I ever have time, I plan to upload SD card images which you can use to partition your external SD card automatically.
    ---
    Repacking a ROM for Dual-boot from SD Card
    Note: You no longer need to do this manually. I have uploaded a script which automates the conversion process. See the next post for download.
    1. First, you need to extract and unpack the boot image. There are tools and scripts available for this, so find one.
    2. Once the boot image is unpacked, you need to edit init.espresso.rc on the ramdisk. Find where the partitions are mounted and change the code to look like this (yours may look slightly different depending on the ROM, but just be sure to replace the default partition mounts with those of your SD card partitions):
      Code:
          #mount ext4 /dev/block/platform/omap/omap_hsmmc.1/by-name/FACTORYFS /system wait rw   
          mount ext4 /dev/block/mmcblk1p2 /system wait rw
          #mount ext4 /dev/block/platform/omap/omap_hsmmc.1/by-name/FACTORYFS /system ro remount
          mount ext4 /dev/block/mmcblk1p2 /system ro remount
          #mount ext4 /dev/block/platform/omap/omap_hsmmc.1/by-name/DATAFS /data wait noatime nosuid nodev crypt discard,noauto_da_alloc
          mount ext4 /dev/block/platform/omap/omap_hsmmc.1/by-name/DATAFS /data2 wait noatime nosuid nodev crypt discard,noauto_da_alloc
          mount ext4 /dev/block/mmcblk1p4 /data wait noatime nosuid nodev crypt discard,noauto_da_alloc
          #mount ext4 /dev/block/platform/omap/omap_hsmmc.1/by-name/CACHE /cache wait noatime nosuid nodev nomblk_io_submit,errors=panic
          mount ext4 /dev/block/mmcblk1p3 /cache wait noatime nosuid nodev nomblk_io_submit,errors=panic
          #mount ext4 /dev/block/platform/omap/omap_hsmmc.1/by-name/EFS /efs wait rw
          mount ext4 /dev/block/mmcblk1p5 /efs wait rw
    3. Repack the boot image and stick it back into the ROM. Then edit the updater-script, and change all references to the internal system partition (/dev/block/mmcblk0p9) to the external system partition (e.g. /dev/block/mmcblk1p2). If any other partitions are referenced, change them as well.
    4. Optional: insert the "bootinternal" script in /system/bin and the a script to mount the internal storage in /system/etc/init.d.
    5. Your ROM is ready to go. Flash and be happy!

    Thanks to Johnsel for helping me edit the boot image and pointing me to sendust7's work on the Atrix, who I also thank for his precedent.
    12
    CWM Zips for Wiping External Partitions

    If you ever need to wipe /data, /cache, or dalvik on your external dual-boot partitions, you can use these CWM zips to do so.

    Update: Here is a script to automate the conversion of a ROM from standard to external dualboot.
    2
    BRILLIANT !!!

    A few suggestions:
    Possible to have a GUI to switch ROM or even better to have it at boot (through kernel).
    Script to Automate the process of converting any(P31xx) ROM to dual-boot. It will take away pressure off you.

    Thanks !
    The GUI may or may not happen, since I, while familiar with partitions and scripting, don't know much about Java or Android development. I'll look into it, though. Having it run at boot through the kernel is beyond my skills. The closest I could do would be an init.d script.
    As for a script to automate the conversion process, that seems doable. It only involves two files (init.espresso.rc in the boot image and the updater-script), so I could see that happening. I'll try to do something with that.
    2
    i'll need an external memory right? if so, will an 8gb sd card suffice? I haven't read the whole thread about dual booting. but I found there that I should flash the kernel thru odin.

    can you help me out. since you have already done the procedure, can you simplify the steps for me( if you just have the time for it, but I can manage to read it this coming weekend )?

    I clicked "thanks". haha!

    Pre knowledge:

    *By dualbooting you can dualboot b/w sammy stock 4.x.x ( 4.0.3 ,4.0.4 ,4.1.1 ,4.1.2 ,4.2.2) and an AOSP rom (4.2.2,4.3)
    *you needs about 2 GB memory free (around 2 gb) in your INTERNAL SDCARD
    *You need a rooted tab 2 with blackhawk next repacked philz recovery


    Things needed :

    ● Rooted tab 2 with philz touch recovery
    ●Blackhawk next kernel 1.8.3 or 2.0 and samsung proprietary vendor blobs, if you dual boot b/w stock 4.2.2 and AOSP
    ●Blackhawk next kernel 1.7 , when you dualboot b/w stock 4.1.x and AOSP (NOT SURE 1.8.3 AND 2.0 SUPPORTS STOCK 4.1.X)
    ●Blackhawk next tool


    ways of dual booting :

    1■) stock as primary rom AOSP as secondary rom
    2■)AOSP as primary , stock as secondary
    3■) AOSP 1 as primary and AOSP 2 as secondary (for dual booting two cm based roms)
    4■) vice-versa of 3


    Procedure:

    1■) a) Reboot to recovery(philz recovery)
    b)Flash respective blackhawk kernel you needed (choose from the instructions given above)
    c)Flash blackhawk next tool
    d)choose option Create secondary system img for CM based roms
    e)After flasing exit from aroma menu (next tool)
    f) hit reboot recovery option by going to advanced -->reboot recovery
    g) After rebooting you can see a beautiful aroma based menu showing "BOOT PRIMARY RECOVERY" and "BOOT SECONDARY RECOVERY"
    h) press "BOOT SECONDARY RECOVERY
    I) Flash B.H next kernel , then flash cm based rom , then reflash B.H next kernel and reboot
    J) Voila !!!! Now your tab is dual bootable

    2■) a) Backup stock rom in recovery
    b) go to "wipe data---->clean to install new rom
    c) flash a CM rom
    d) Flash B.H next kernel
    e) make secondary system img for stock rom through B.H next tool
    f) reboot to secondary recovery
    g)restore backuped stock rom
    h) flash B.H next kernel
    I) reboot

    3■)a) wipe data and dalvik cache
    b) install a CM rom
    c) flash B.H kernel
    d)Flash blackhawk next tool
    e)choose option Create secondary system img for CM based roms
    f) reboot to secondary recovery
    g) Flash another CM based rom
    h)flash B.H kernel
    I) reboot

    4■) same as 3



    if you didn't understand anything posted above plz ask me or ask to next kernel thread :)..feeling happy to help:D
    1

    Blobs are kernel driver specific scripts made for a specific device...It allows using hardware accelerated video playback(ie;using h/w decoder), taking pictures through camera,and playing videos from YouTube.

    Newer blackhawk versions (from 1.8.x onwards ketut (developer of blackhawk) separated kernel and vendor blobs into two parts (normally it's put under a single file) .so you need ro flash vendor blobs on kernels after 1.8.x

    Sent from my GT-P3100 using XDA Premium 4 mobile app