5,593,876 Members 47,512 Now Online
XDA Developers Android and Mobile Development Forum

[30 OCT 2012][DEV] NativeSD Rom Boot Script for HD2

Tip us?
 
securecrt
Old
(Last edited by securecrt; 30th October 2012 at 01:58 PM.)
#1  
Recognized Contributor - OP
Thanks Meter 2755
Posts: 759
Join Date: Aug 2010
Location: Shanghai

 
DONATE TO ME
Default [30 OCT 2012][DEV] NativeSD Rom Boot Script for HD2

This is an idea to make the HD2 faster and fancy, I worked with Xylograph to make it more usable and easy to implement by common users.

Index

  • Post 1 Introduction
  • Post 2 ROMs, Scripts, Installer template for Devs by Xylograph
  • Post 3 Q&A

Introduction
We have SD ROMs for very long time, but I think most of the people should agree with me that the SD ROMs are slower than NAND ROMs. because the SD ROMs use system.ext4 and data.ext4 files to store all the ROM contant on the FAT partition, the IO access is the bottleneck.
My Class10 SD card has 10MB/s R/W speed, but the NAND flash R/W speed is only about 4MB/s. so if we can directly install the ROMs to SDCARD and boot from SDCARD we will get lots of benifits:
  1. Faster Read/Write speed than NAND ROMs
  2. Bigger data partition for user space (depends on how big the ext4 partition on SDCARD)
  3. Install servel ROMs at the same time. and each ROM share the same space
  4. Muilt-boot support, easy to switch between the ROMs been installed.
The NativeSD Rom is a new kind of ROM it needs an ext4 partition on your SDCARD.

This thread will tell you how to install a ROM to SDCARD and give some script templates for ROM Devs to make the ROM installer which can support install the ROM to NAND flash or SD/EXT4.

Install the ROM to SD/EXT4 will not effact the ROM(WM or Android) on NAND flash, NativeSD should support run from MAGLDR CLK or WM6.5(need test).

Important Notes:
Backup all the SDCARD content to PC before you create the ext4 partition on SDCARD.


Change Log:


05-09-2012 @2nd Post [05-09-2012] NativeSD Dual Installer v2 [nand/sdext][wip]
10-09-2012 Add NativeSD CM7 script template
13-09-2012 nativeSDMultiBoot Version4 Credits to datagr
20-09-2012 nativeSDMultiBoot Version5 Credits to datagr
26-09-2012 nativeSDMultiBoot Version6 Credits to datagr
30-10-2012 nativeSDMultiBoot Version9 Credits to datagr
30-10-2012 New initrd mod for NativeSD Credits to marco.palumbi
The Following 169 Users Say Thank You to securecrt For This Useful Post: [ Click to Expand ]
 
Xylograph
Old
(Last edited by Xylograph; 13th September 2012 at 02:35 PM.) Reason: Added Dual Installer v2 Example
#2  
Xylograph's Avatar
Senior Member
Thanks Meter 7713
Posts: 1,824
Join Date: Sep 2009

 
DONATE TO ME
Thumbs up [05-09-2012] NativeSD Dual Installer v2 [nand/sdext][wip]





NativeSD Dual Installer v2


Keep in mind that this is a work in progress featuring a possibility to run a full nand rom on a SD-EXT partition..

Please check my current AOKP & PA jellybean ROMS or CM9ight ICS ROM for some 'NativeSD functionality' in action




Features:
  • Compatible with every bootloader and stock OS
  • Recovery package for users without Android on nand

Pre-Installation Requirements and recommendations:
  • HTC HD2 Phone
  • Sdcard with enough free space (performance may differ based on the quality of your card)
  • 4EXT Recovery (Highly recommended)
  • Primary Fat32 partition and Primary EXT4 partition

Downloads : (Please do not mirror stuff)
  • Download 4EXT Recovery from here.
    Pick the SD version if you would like to boot 4EXT Recovery from SD (unpack to your sdcard)
    Pick the NAND version if you would like to flash the 4EXT Recovery on your NAND (flashable via recovery)
    Users with non-working hardware keys can try the various touch recoveries I've ported , though I highly recommend 4EXT recovery..
  • Dual_Installer_v2_example.zip (only for advanced users, unpack the contents to your computer)

Contents :

4EXTRecoverySD for users with no or a different recovery on nand:

Code:
- Contains 4EXT Recovery ported for SD users.
- Unpack to the root of your sdcard
- Set your SD Boot to the Recovery folder or use clcad/haret to boot
4EXTRecoveryNAND for users who would like this recovery on nand:

Code:
- Contains 4EXT Recovery for android NAND users
- Flash it using DAF.exe (Magldr) cLK users can flash it using the HD2 toolkit
Dual Installer example Package (advanced users) :

Code:
- Contains an example (not flashable!) of how I use this for my roms.
- You can check all the stuff, folder structure and scripts.
- I've tried to make the updater-script and aroma-config 'easy to read'
- Placeholders with text on what to put where when porting stuff to NativeSD.
Installation Steps & Instructions:

Sdcard for NativeSD:

Code:
1. First make sure you have at least 1 Fat32 partition and 1 EXT4 partition on your sdcard
2. If you don't have these partitions ?? backup your sdcard , because everything will be wiped from your sdcard when you create partitions and format them !
3a Use the provided 4EXT recovery (NAND or SD version) to create the partitions and format them.
3b If you rather use a computer for creating and formatting partitions keep in mind that both partitions must be primary partitions (not logical)
4. The recommended size of your EXT4 partition is depending on how many roms and apps you are going to install.. 512M is the minimal size..
5. Restore/move the sdcard contents back to the Fat32 partition
6. (WP7 users) make sure the EXT4 partition is located @ /dev/block/mmcblk0p2
   To check this mount your sd-ext partition in 4EXT recovery and use adb shell or QtADB shell and type df 
7. Your sdcard is now ready for NativeSD usage..
NativeSD Installation for Magldr NAND Android & WP7 users :

Code:
1. WP7 and SD users set your SD BOOT directory to the 'Recovery' folder by choosing '10.services' , '1. Bootsettings' , 3. AD SD Dir in the Magldr menu.
2. Boot into (NAND or SD) 4EXT recovery.
3. Flash the ROM.zip package and follow instructions
4. Set your SD BOOT directory to the 'NativeSD' folder after flashing the ROM (see step 1)
5. Boot into the ROM and have fun..
NativeSD Installation for cLK NAND Android users : (thanks clio94)

Code:
1. Copy the flash_bootv2.zip to your sdcard.
2. Boot into cLK and make a sboot partition.Be aware that only clk from kokotas allows to make a sboot partition directly from device
3. Boot into recovery (4EXT recovery = recommended) and install rom by choosing sd-ext method
4. After installation finishes,dont reboot, but install flash_sbootv2.zip and then reboot to cLK
5. In cLK choose to boot from sboot and wait for the ROM to boot.
6. If you are stuck on the boot animation,try to wipe your ext partition and install the ROM again.
NativeSD Installation for Windows Mobile and other OS users :

Code:
1. Boot into recovery by executing the usual clcad and haret stuff inside the Recovery folder.
2. Flash the ROM.zip package and follow instructions
3. Reboot and boot the ROM by executing the usual clcad and haret stuff inside the NativeSD folder.
RMNET or PPP ??? summary :
Code:
- as of dual installer v2 you can choose your data connection during ROM installation
- For Magldr users I recommend using the RMNET connection
- For all other users I recommend using the PPP connection (default)
- PPP connection should work for all users !
Switch between different NativeSD ROMS ?
Code:
- If you want to use a previously installed/other NativeSD ROM ?
- Copy the contents of that roms folder found inside the NativeSD folder to the root of the NativeSD folder (overwriting the kernel+ramdisk)
- Boot to sd and that ROM will boot !
- Repeat the above steps when you want to switch again
- In the future we want to make the above steps easier and possible with either a 'gscript' or an 'android app'
Previous Roms (Examples) featuring NativeSD and Dual Installer :

Code:
- PA_v1.992se_dual_installer_v2.zip  -  mirror (Flash via recovery) - md5: ce2138748c6b2cbc62848272acf92600
- AOKP_N2408se_dual_installer.zip (Magldr only!)  -  mirror (Flash via recovery) - md5: 6a116ad3eebb0f92729af6954f0a9217
*** all flashing is at your own risk ! Always make backups in recovery and/or titanium backup ! ***

*** This is a NativeSD thread ! Please, Keep this thread NativeSD related and report issues with roms in the rom thread !!! ***

Thanks & Credits to : securecrt, Phoenix, clio94, LNE team and everybody I forgot !
The Following 130 Users Say Thank You to Xylograph For This Useful Post: [ Click to Expand ]
 
securecrt
Old
(Last edited by securecrt; 24th September 2012 at 05:07 PM.)
#3  
Recognized Contributor - OP
Thanks Meter 2755
Posts: 759
Join Date: Aug 2010
Location: Shanghai

 
DONATE TO ME
Q&A
  • How is the NativeSD ROM work?
To boot the Android from SD card, the old SD ROMs mount the system.ext4 and data.ext4 before the init(rename to init.android) thread is start. I changed the initrd.gz to make it mount the ext4 partition before the android init.android start. here is the main code for the init script
Code:
echo "mount system and data partition on sdcard"
# change the rom_name TO PA MIUI CM7 will support 
# to boot other system on SD/EXT4
# the system layout :
#  /NativeSD/NexusHD2/
#                    /system
#                    /data
#           /PA/
#              /system
#              /data
#           /MIUI/
#                /system
#                /data
#           /app
#  the app dir is shared for all ROMs
#

# set the name of the rom to boot
rom_name="PA"

# mount the 1st (NativeSD) SD-EXT partition
mkdir -p /NativeSD
mount -t ext4  -o rw,noatime,nodiratime,barrier=0 /dev/block/mmcblk0p2 /NativeSD

# mount the system data app dir
mount --bind /NativeSD/$rom_name/system /system
mount --bind /NativeSD/$rom_name/data   /data
# create app data/app dir
mkdir -p /NativeSD/app
mkdir -p /data/app
mount --bind /NativeSD/app /data/app
So for the ROM Devs should create new initrd.gz which is different with the NAND version, use different rom_name distinguish with others the whole templete is in 2nd post by Xylograph
  • How is the multi-boot works on NativeSD ROM?
Set the SD boot dir /sdcard/NativeSD in Magldr or CLK,the dir structure is
/sdcard/NativeSD/NexusHD2/zImage
/sdcard/NativeSD/NexusHD2/initrd.gz
/sdcard/NativeSD/PA/zImage
/sdcard/NativeSD/PA/initrd.gz
/sdcard/NativeSD/zImage
/sdcard/NativeSD/initrd.gz
The Magldr& CLK always read the /sdcard/NativeSD/zImage /sdcard/NativeSD/initrd.gz files to boot, so if you want to switch from PA to NexusHD2 just only need to copy the zImage & initrd.gz to the up layer dir, use the NativeSD ROM switch app made by datagr
  • How to convert the NAND ROM to NativeSD ROM?
HOWTO port NAND ROM to NATIVESD STEP-BY-STEP Credits to c1cl0n
This is for Devs and advanced users only. For example if we got the NAND version of the NexusHD2 extract the zip file and replace 2 files and add 1 file will finish the convert.

/kernel/boot/initrd.gz
the initrd.gz is similar with the SD ROMs but need to change the init script to mount the ext4 partition

/META-INF/com/google/android/updater-script
the updater-script is used for CWM to execute the install process; execute install.sh before copy the system content to the ext4, here is the sample code
Code:
package_extract_file("install.sh", "/tmp/install.sh");

set_perm(0,0, 0777, "/tmp/install.sh");

run_program("/tmp/install.sh");
show_progress(0.8, 80);

if file_getprop("/tmp/nfo.prop","NativeSD") == "true" 

then 

package_extract_dir("kernel/boot", "/boot");
package_extract_dir("kernel/boot", "/boot_dir");
package_extract_dir("system", "/system");
......

else
ui_print("can't find ext4 partition on your SDcard");
ui_print("install failed");
endif;
/install.sh
Code:
#!/sbin/sh

# Set the ROM name 
ROM_NAME=NexusHD2
export ROM_NAME

mmcblk0p2=`ls /dev/block/mmcblk0p2`

# Mount the ext4 partition
if [ $mmcblk0p2 == "/dev/block/mmcblk0p2" ]
then

	mkdir -p /ext4p
	mkdir -p /sdcard/NativeSD/$ROM_NAME
	mkdir -p /boot /boot_dir
	
	mount -t ext4 /dev/block/mmcblk0p2 /ext4p
	mkdir -p /ext4p/$ROM_NAME/system /ext4p/$ROM_NAME/data

	mount --bind /ext4p/$ROM_NAME/system /system
	mount --bind /ext4p/$ROM_NAME/data /data
	
	mount --bind /sdcard/NativeSD/$ROM_NAME /boot
	mount --bind /sdcard/NativeSD	/boot_dir
#delete the old system
	rm -rf /system/*

#clean the dalvik-cache	
	rm  -rf /data/dalvik-cache/*

#all the dir has ready write some info for updater-script
	echo "NativeSD=true" >> /tmp/nfo.prop
else

#no ext4 partition found	
	echo "NativeSD=false" >> /tmp/nfo.prop
fi


  • How to make ext4 partition on my SDCARD?
http://forum.xda-developers.com/show...8#post31414628
The Following 67 Users Say Thank You to securecrt For This Useful Post: [ Click to Expand ]
 
Xylograph
Old
#4  
Xylograph's Avatar
Senior Member
Thanks Meter 7713
Posts: 1,824
Join Date: Sep 2009

 
DONATE TO ME
Quote:
Originally Posted by Spaqin View Post
You just posted it, but I have a couple of questions - what is it really? How SD builds will be faster because of that? What can we expect? How will it work? Any details?
Securecrt will explain everything.. give the man some time to create the first post..

Expect the same/similar or even better performance compared to android on NAND with a descent SD card.

I will post an example ROM which I am working on so people can check it out @ 2nd post when I am done with it..
The Following 33 Users Say Thank You to Xylograph For This Useful Post: [ Click to Expand ]
 
securecrt
Old
#5  
Recognized Contributor - OP
Thanks Meter 2755
Posts: 759
Join Date: Aug 2010
Location: Shanghai

 
DONATE TO ME
Quote:
Originally Posted by Spaqin View Post
You just posted it, but I have a couple of questions - what is it really? How SD builds will be faster because of that? What can we expect? How will it work? Any details?
Just be patient. I am updating the post.
The Following 15 Users Say Thank You to securecrt For This Useful Post: [ Click to Expand ]
 
abdelazeez
Old
#6  
Member
Thanks Meter 3
Posts: 47
Join Date: Jul 2012
Wow man! I can hardly wait!
 
wis1152
Old
#7  
wis1152's Avatar
Recognized Contributor
Thanks Meter 2591
Posts: 2,545
Join Date: Jun 2011
Location: luton uk

 
DONATE TO ME
Quote:
Originally Posted by securecrt View Post
[coming soon] ...

This is an idea to make the HD2 more faster, I worked with Xylograph to make it more usable and easy to implement by common users.






Quote:
Originally Posted by Xylograph View Post
Securecrt will explain everything.. give the man some time to create the first post..

Expect the same/similar or even better performance compared to android on NAND with a descent SD card.

I will post an example ROM which I am working on so people can check it out @ 2nd post when I am done with it..
Looking forward to trying this

Sent from my GT-I9100 using Tapatalk 2
The Following User Says Thank You to wis1152 For This Useful Post: [ Click to Expand ]
 
Xylograph
Old
#8  
Xylograph's Avatar
Senior Member
Thanks Meter 7713
Posts: 1,824
Join Date: Sep 2009

 
DONATE TO ME
Well everybody (especially sd rom users) waiting to test this stuff can already start by making sure they have an SD-EXT (EXT4 if possible) partition on their sd-card..

Make a big one for future use
The Following 7 Users Say Thank You to Xylograph For This Useful Post: [ Click to Expand ]
 
dimdimdim
Old
#9  
Senior Member
Thanks Meter 97
Posts: 1,109
Join Date: Oct 2006
Quote:
Originally Posted by Xylograph View Post
Well everybody (especially sd rom users) waiting to test this stuff can already start by making sure they have an SD-EXT (EXT4 if possible) partition on their sd-card..

Make a big one for future use
ready - steady ...
 
Xylograph
Old
#10  
Xylograph's Avatar
Senior Member
Thanks Meter 7713
Posts: 1,824
Join Date: Sep 2009

 
DONATE TO ME
Quote:
Originally Posted by dimdimdim View Post
ready - steady ...
GO GO GO !!!

The Following 13 Users Say Thank You to Xylograph For This Useful Post: [ Click to Expand ]
Tags
native sd, nativesd
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes