[Tools] rootfs init script for ROM developers - HD2 Android Q&A, Help & Troubleshooting and Genera

Currently, the ROMs have a fix size of data image which can be changed by the users, so the ROM developers need to upload multiple copy of the same ROM with different size of data image. I modify the rootfs init script to read the kernel cmdline and create the data image (if no data image exists) based on the user input. If this value is presented, a default value of 512MB is used.
How to use:
in the startup.text file
Code:
set cmdline "rel_path=Android data_size=1024"
The "data_size=1024" tells the init script to create a data image file of 1024MB, if the data.img does not exit.

huanyu said:
Currently, the ROMs have a fix size of data image which can be changed by the users, so the ROM developers need to upload multiple copy of the same ROM with different size of data image. I modify the rootfs init script to read the kernel cmdline and create the data image (if no data image exists) based on the user input. If this value is presented, a default value of 512MB is used.
How to use:
in the startup.text file
Code:
set cmdline "rel_path=Android data_size=1024"
The "data_size=1024" tells the init script to create a data image file of 1024MB, if the data.img does not exit.
Click to expand...
Click to collapse
so we just copy the init file to /android rename old data.img and change that line in startup .txt thats it? sorry i know it says for developers just wondering if i could change my 512mb data store to 2gb? would be nice if i could

longobongo said:
so we just copy the init file to /android rename old data.img and change that line in startup .txt thats it? sorry i know it says for developers just wondering if i could change my 512mb data store to 2gb? would be nice if i could
Click to expand...
Click to collapse
This init script sets in the rootfs not the android directory in the sd. You can copy it to the root of your system. Then del data.img and change startup.text, this might work. I can not promise you as i only tested it on my own rom never tested on any other roms.

Related

[BUILD][18.11.2010] Desire Spot (new initrd, no rootfs, incremental updates)

Desire Spot (clean) 2.0 based on HTC Desire 2.29
new initrd.gz, no rootfs, incremental updates​
Features:
- cedesmith initrd ( see post 3 )
- no rootfs
- incremental updates
- based on desire 2.29
- spot clean, system.img is a exact dump of unyaffs (with permissions) to ext2, not 1 bit modified
- auto set apn ( update )
- everything should work
- great for understanding android on h2
Not working:
- 720p video recording
- rmnet
Notes:
- i don't want yet another build, i made this mainly for my own use and to show the power of my initrd and exemplify incremental updates options it offers
- i hope that chefs will like and use my initrd.gz and a update to X build will work on all builds ( or all builds based on same rom: ex: desire, cm6 )
- i think we relay need a unified update system for all builds especially with development soon forking between nand and sdcard builds
- this is for purists, the ones that have stock windows rom and reluctant to change
- tested on stock 3.14 rom
Included updates:
- update.kernel.linux-on-wince-htc.15.11.2010
- install.init.15.11.2010
- install.hd2_libs.15.11.2010
- install.ril_wrapper.15.11.2010
- update.camera.15.11.2010
- install.busybox.cm6.14.11.2010
- install.su.15.11.2010
Credits and big thanks:
- Cotulla, NetRipper, danij3l, Markius, Rajko, LeTama, gauner1986, Cass, hastarin
- anyone who worked on hd2 android port and i forgot to mention
Disclaimer:
- all this comes without any warranty not even that it does something useful
- IF YOU USE IT YOU DO IT ON YOUR OWN RISK
Download and install:
- desire_cs.7z 2.0
- update.initrd.gz.20.11.2010 ( fix reboots for cards formatted in windows )
- update.autoapn (only if you have a data plan)
- extract to desire_cs on card ( case sensitive )
Updates
Download updates you want/need and extract on desire_cs directory on sdcard
Mandatory updates:
- update.initrd.gz.20.11.2010 fix reboot at startup
Optional updates:
- update.kernel.hastarin_8.5_eb.23.11.2010 (thanks vartp )
- update.kernel.hastarin_8.5.23.11.2010 (thanks vartp )
- fingerprint.19.11.2010 restore default desire fingerprint if you have problem with marketplace
- evo_keyboard.19.11.2010 (thanks vartp, see post )
- kernel hastarin_8.4_eb.18.11.2010 (extended battery)
- kernel hastarin_8.4_18.11.2010
- autoapn auto set apn
Read readme in archive, keep readme folder to record what you have installed and what version.
Attached updates in this post except autoapn are included in build
Dev info:
- install.init.15.11.2010 is the only mandatory update to install, your build will not boot without it
initrd.gz
Description:
- I build my initrd.gz mainly to allow updated and to be more like android phones boot process.
- It contains the directory structure of boot.img from desire 2.29 + /bin directory
- /bin contains a small busybox (with necessary commands to booth the phone ) + dosfsck + e2fsck all compiled with android toolchain and uClibc.
- It supports different partition on sdcard for system and data but probably nobody will use that.
- It only supports ext2 (for now) but i think nobody used anything else for hd2
- it is backward compatible (common cases)
Boot process:
- mounts sd card to /mnt/sdcard_boot not to interfere with android mount points
- checks and mounts /system and /data
- copy init.rc, init.htcleo.rc, default.prop, bootcomplete.htcleo.rc, shutdown.htcleo.rc ( blanks ) to /system if they don't exist
-- this is done to allow persist as / is ramfs
- execute uninstal*.sh then install*.sh in update directory
- copy AndroidApps and root as previous versions did
- execute update*.sh in update directory
- execute /system/init*.sh to perform build specific init tasks ( this can be installed by previous operations )
- symlink ( and creates dir ) /cache to /data/.cache if /cache not configured by build /system/init*.sh
- deletes /bin directory to free ram used by ramfs for busybox, dosfsck and e2fsck
- executes init.android - original android init program
- someware in process moves /sbin/adbd to /system/xbin/adbd and creates sysmlink in /sbin to free ram
Notes:
- if you create a install/update script please include readme file
- if you create a install/update script use a proper editor (notepad++) and convert file to unix format, line endings in dos format \r\n will brake sh
------ reserved -------
thanks for your great work
Sounds interesting. I look forward to reading more about it.
Sent from my HTC HD2
Thanks,
We always appreciate fresh blood.
I don't know how much this, if any, is based on the work of zegobit (who eventually got copied by shui8), but I'm very interested in this.
Coming from an android-on-Dream background, I've always thought of the rootfs as unecessary, and seeing how zegobit's initrd handled updates, I always thought that his way of doing things was the best (the rootfs used on most builds now came from the XDAndroid project which is made to support as many devices as necessary, something of a waste if you're building only for Leo).
You say your ext2 is just a re-packed, unyaffs'd image of the Desire rom, if so, are your leo-specific files stored in the initrd?
How will you handle updates?
And, this is for my learning, how is it you handle mounting and booting from SD. I'm trying to come up with an initrd that can be used to make an AOSP vendor that will produce a ramfs and an ext2 image that can be booted on Leo with little or no modification.
Any pointers you could give me.
In the mean time, I'm trying, and this might be, my main build.
Wow, very well documented. Kudos. Favortie build starting now.
jubeh said:
I don't know how much this, if any, is based on the work of zegobit (who eventually got copied by shui8), but I'm very interested in this.
Click to expand...
Click to collapse
and i thought i was completely original
unfortunately i did not see zegobit's work before, things might been easier.
on the other hand the most tricky part was compiling busybox 1.17.3, dosfsck and e2fsck with google toolchain ( well with codesourcery too but it produces 50% bigger exe )
jubeh said:
Coming from an android-on-Dream background, I've always thought of the rootfs as unecessary, and seeing how zegobit's initrd handled updates, I always thought that his way of doing things was the best (the rootfs used on most builds now came from the XDAndroid project which is made to support as many devices as necessary, something of a waste if you're building only for Leo).
Click to expand...
Click to collapse
this should work on any device also as long it works with cortex-a8 compiler optimizations and rename the init.htcleo.rc bootcomplete.htcleo.rc and shutdown.htcleo.rc as this are device dependent.
extracting initrd is simple: gzip -d -c initrd.gz | cpio
remaking: find . | cpio -o -H newc | gzip > ../initrd.gz
remember to do it on linux to preserve permissions
but ppl plz don't go rampage and make your own just because you can
i think they went rootfs because the utilities needed to boot are big ( 4mb old initrd and ~16MB rootfs ) and initrd uses ram for storage vs rootfs witch is on sd
i decided to make initrd after i got the tools to ~500Kb and read that memory is freed after file delete ( that is why i delete /bin directory when no longer needed ).
jubeh said:
You say your ext2 is just a re-packed, unyaffs'd image of the Desire rom, if so, are your leo-specific files stored in the initrd?
How will you handle updates?
And, this is for my learning, how is it you handle mounting and booting from SD. I'm trying to come up with an initrd that can be used to make an AOSP vendor that will produce a ramfs and an ext2 image that can be booted on Leo with little or no modification.
Any pointers you could give me.
In the mean time, I'm trying, and this might be, my main build.
Click to expand...
Click to collapse
blank init files are in initrd that is why install.init is only required update/ package
blank files also allows for this to work with CM6 builds
also all my install/update script edit files with sed not just drop file on /system
edit: install.init contains desire boot.img init files unedited (renamed .bravo.=>.htcleo. tho), install sh script does the editing. this way is crystal clear what is modified.
oh not to forget... : do not sed -i 's///' /init.rc and co, sed creates files and breaks symlink, your changes will revert after reboot. use sed -i 's///' /system/init.rc
I got robot voice on T-MOUS 3.14 rom. All else works wonderfully.
--edit---
ah, nevermind. A reboot fixed the problem. Perfect.
cedesmith said:
extracting initrd is simple: gzip -d -c initrd.gz | cpio
remaking: find . | cpio -o -H newc | gzip > ../initrd.gz
remember to do it on linux to preserve permissions
but ppl plz don't go rampage and make your own just because you can
Click to expand...
Click to collapse
My linux is still poor, I haven't really studied the boot process much. I knew how to extract/repack initrd.
Oh, and whatever changes I make, it's all for learning and my personal use. No interest in making a release. If I do do something and use your scripts, I'll credit appropriately, though the only release I'd be interested in is instructions and a vendor profile for AOSP so that people can make their own AOSP builds (you know, with gingerbread coming and all)
I tried to run the build (after execuring crlcad)but it stays on htc black screen for 5 seconds and then reboot the phone...i've just copied your archive in Android folder...
FD10 said:
I tried to run the build (after execuring crlcad)but it stays on htc black screen for 5 seconds and then reboot the phone...i've just copied your archive in Android folder...
Click to expand...
Click to collapse
me too, keep rebooting, the android folder is desire_cs btw.
dandiest said:
me too, keep rebooting, the android folder is desire_cs btw.
Click to expand...
Click to collapse
i second that emotion!! me 2 or maybe i just dont fully understand the info on post 1????
JR
cool i love mdj
but always willing to try out new stuff
thank you Sir!
sorry i forgot to mention extract archives to desire_cs directory (case sensitive) on SD card not Android.
if you still get reboot try format sd card from wince then extract again.
it happened to me when i switched to 8gb card from 2gb but was fine after card reformat.
for me i suspect dosfsck may caused a kernel crash but could not test as it not happened again after format
Thanks a lot!!!
Keep it up!!!
So what's the difference between this and any other sense rom out there?
Sent from my HTC Desire using XDA App
cedesmith said:
if you still get reboot try format sd card from wince then extract again.
Click to expand...
Click to collapse
sorry bud i dont understand that sentence what is wince and how do i go about using it to format my sd card, is formatting under my OS (win7) not good enough? because i still get a reboot.
Regards JR

[Q] Making those NAND System.img files

Howdy all,
Just wondering, how are the system.img files made? I have read that if it's a YAFFS image file, that the maximum filesize cannot exceed 128MB. However, I've seen on some NAND HD2 Android builds, the system.img filesize is >128MB.
My question is, what method are you guys using for making the NAND system.img files to flash within MAGLDR? (ie. is it like a ZIP archive with a .img extension on it)
I'm currently working on a remix of a ROM that I use (a hint is in my Sig), and I know that the update.zip method that was used on "true-Android" devices to change ROMs doesn't apply to our MAGLDR method now.
Cheers and I'm sure you'll see another ROM for the HD2 in the coming weeks!
IcedCube.
IcedCube said:
Howdy all,
Just wondering, how are the system.img files made? I have read that if it's a YAFFS image file, that the maximum filesize cannot exceed 128MB. However, I've seen on some NAND HD2 Android builds, the system.img filesize is >128MB.
My question is, what method are you guys using for making the NAND system.img files to flash within MAGLDR? (ie. is it like a ZIP archive with a .img extension on it)
I'm currently working on a remix of a ROM that I use (a hint is in my Sig), and I know that the update.zip method that was used on "true-Android" devices to change ROMs doesn't apply to our MAGLDR method now.
Cheers and I'm sure you'll see another ROM for the HD2 in the coming weeks!
IcedCube.
Click to expand...
Click to collapse
The system.img is a yaffs2image. Google 'compiled windows unyaffs' use that program to take a peak inside the .img. When you're completely ready to make your own .img your gonna need a linux distro or cygwin w/mkyaff2image compiled. However I recomend compiling the mkfs.yaffs2 command if you are using linux. Alternatively you can place the /system/ directory you are trying to make an image on your SD and run that command in the terminal emulator in Android. It should look like this #mkyaffs2image /sdcard/system/ System.img
Hope that helps.
KillaHurtz said:
The system.img is a yaffs2image. Google 'compiled windows unyaffs' use that program to take a peak inside the .img.
Click to expand...
Click to collapse
Does this give you write abilities so that files can be changed out pre-flash?
dharvey4651 said:
Does this give you write abilities so that files can be changed out pre-flash?
Click to expand...
Click to collapse
I think you have to dump them to a folder, then you can change what you want. Then do the yaffs2 cmd and it will package it back up to .img for flashing...
Chris
noellenchris said:
I think you have to dump them to a folder, then you can change what you want. Then do the yaffs2 cmd and it will package it back up to .img for flashing...
Chris
Click to expand...
Click to collapse
I think that a tutorial is in order. Someone who knows how to extract and replace files in a system.img needs to write a short tutorial on how to do it. - A simple step by step on how to decompile a system.img and re-compile it.
I for one would be extremely grateful because I finally worked out a perfect MMS patch and I'd like to be able to easily modify the builds pre-flash.
dharvey4651 said:
I think that a tutorial is in order. Someone who knows how to extract and replace files in a system.img needs to write a short tutorial on how to do it.
I for one would be extremely grateful because I finally worked out a perfect MMS patch and I'd like to be able to easily modify the builds pre-flash.
Click to expand...
Click to collapse
I have been trying to do that all night. I can unpack them but haven't got around to repacking them. For now all I do is install the build and push the patched file that I have and do a AD hardrest in MAGLDR. MMS 300-1024k and all TMO US app works.
dharvey4651 said:
I think that a tutorial is in order. Someone who knows how to extract and replace files in a system.img needs to write a short tutorial on how to do it. - A simple step by step on how to decompile a system.img and re-compile it.
I for one would be extremely grateful because I finally worked out a perfect MMS patch and I'd like to be able to easily modify the builds pre-flash.
Click to expand...
Click to collapse
yeah, it would be very nice if smb can write some tutorial on modifying system.img files
i have been trying to figure this out too!
IcedCube said:
This is IcedCube, the Developer of GingerHD2, a Android 2.3 ROM for your HD2.
Click to expand...
Click to collapse
Thought I should point out that you could really confuse things by using that name...
http://forum.xda-developers.com/showthread.php?t=871387
That's not actually a Gingerbread build - it's just themed to look like one, but still got the same name
hnamanh said:
I have been trying to do that all night. I can unpack them but haven't got around to repacking them. For now all I do is install the build and push the patched file that I have and do a AD hardrest in MAGLDR. MMS 300-1024k and all TMO US app works.
Click to expand...
Click to collapse
Another option is to connect to ADB or Android Commander before going through the initial setup(when it asks you to choose your language) and change the files then - use the PC to reboot the phone, not the phone's built-in reboot. This should take you right back to the setup screen where this time, should show United States localization.
Still a bit too much work. I'd like to be able to patch the build, flash it, and be good to go.
found this but too educated for me
http://android-dls.com/wiki/index.php?title=HOWTO:_Unpack,_Edit,_and_Re-Pack_Boot_Images
sorry i think this one is normal data img.not sure.
well i did say it was too educated for me
Turorial
KillaHurtz said:
The system.img is a yaffs2image. Google 'compiled windows unyaffs' use that program to take a peak inside the .img. When you're completely ready to make your own .img your gonna need a linux distro or cygwin w/mkyaff2image compiled. However I recomend compiling the mkfs.yaffs2 command if you are using linux. Alternatively you can place the /system/ directory you are trying to make an image on your SD and run that command in the terminal emulator in Android. It should look like this #mkyaffs2image /sdcard/system/ System.img
Hope that helps.
Click to expand...
Click to collapse
Windows
-----------------------------------------------------------------------------
Ok, let's start again. If you are using windows, google the said phrase above and you will find the precompiled utility 'unyaffs'.
Place the System.img you want to extract in a new directory with unyaffs.exe & drag the .img onto unyaffs. A command window will open and start extracting the files in the image to that same folder. You can now explore & edit/pull whatever you need to get things going. Once you have it the way you want copt it to your SD/root/ & make a folder for it with an obvious name like "Project" or "Test". Now to get it back into a bootable .img open Terminal Emulator in Android & enter the following
#mkyaffs2image /sdcard/NAMEofFOLDERuCHOSE/ System.img
**alternatively you can do this in windows itself if u have the utility compiled under cygwin or simular.
Linux
-----------------------------------------------------------------------------
Ok, you will need the unyaffs & mkfs.yaffs2 utilities compiled and working 1st off.
mkyaffs2image works to make the image however it fails upon flash with DFT Android Flasher. So I recomend mkfs.yaffs2 & have included it, you will need to place it in /usr/sbin/. If you have trouble copying it open a terminal and run "gksudo nautilus" then copy to the above mentioned directory.
**Now that those utilities are working let's get to work.
open a terminal and run 'unyaffs /home/yourusername/Desktop/targetdirectory/targetimage.img
copy/edit/pull the files you want. When your ready to build the image you are happy with open a terminal and run 'mkfs.yaffs2 /home/yourusername/Desktop/targetdirectory/ System.img'
Now your ready to flash !
System.img & Boot.img Contents
============================================================
System.img contains the entire root/system/ directory in Android
System/
app
bin
etc
fonts
framework
lib
lost+found
media
usr
xbin
build.prop
dmesg.txt
Boot.img contains
Boot/
initrd.gz
zImage
lost+found
============================================================
Hope that helps guys, It's my first tut on XDA
**EDIT: I included an archive for windows users that has unyaffs2.exe & cygwin1.dll
The Linux archive contains mkfs.yaffs2.x86, once moved to /usr/sbin/ rename to mkfs.yaffs2
The process works exactly the same for Boot.img
you need linux and run command by terminal
put them in /bin
http://www23.zippyshare.com/v/13814384/file.html
then you can yaffs or unyaffs
example
unyaffs /home/rafpigna/folder_with_img_you_wann_unpack/system.img
or
mkyaffs2image /home/rafpigna/folder_with_stuff_you_wanna_pack/ system.img
strange thing...when I open with unyaffs and then close with mkfs.yaffs2 or mkyaffs2image I get init: untracked pid 250 exited (where 250 varies) in a loop :S
some light for me?
michyprima said:
strange thing...when I open with unyaffs and then close with mkfs.yaffs2 or mkyaffs2image I get init: untracked pid 250 exited (where 250 varies) in a loop :S
some light for me?
Click to expand...
Click to collapse
What platform are you using? Have u tried copying your target directory to your sdcard and running the command in android's terminal?
Reguards
KillaHurtz said:
What platform are you using? Have u tried copying your target directory to your sdcard and running the command in android's terminal?
Reguards
Click to expand...
Click to collapse
linux x64.
btw no I didn't, because I want to make a rom (I'm not new to android development but that makes me think that I'm probably stupid )
Everything I do doesn't work.
Already tried something like:
- opened a premade working rom, exchanged just app and framework: no way
- exchanged everything but not bin/xbin/lib: no way
- exchanged just what was different between a stock and a premade leo rom: still no way
mmmh...
yaffs2
There is actually a way to modify files in a yaffs2 image but I've not done it my self yet. I'm 100% sure it's possible cuz everything is possible.... under Linux of course.
You need:
Linux, compiling skills, mounting skills, etc.
Basically for any other filesystems you can mount them as loop devices but not yaffs2. For yaffs2 you actually need a virtual mtd block device. once you have the mtd device you can mount the yaffs image on it.
For details google for: mounting yaffs image
and focus on virtual mtd block device.
michyprima said:
linux x64.
btw no I didn't, because I want to make a rom (I'm not new to android development but that makes me think that I'm probably stupid )
Everything I do doesn't work.
Already tried something like:
- opened a premade working rom, exchanged just app and framework: no way
- exchanged everything but not bin/xbin/lib: no way
- exchanged just what was different between a stock and a premade leo rom: still no way
mmmh...
Click to expand...
Click to collapse
http://www.miui-dev.com/forums/showthread.php?481-Howto-Make-your-own-Android-Build-for-the-HD2
This has a list of files to be pulled. Hope this helps. BTW michy I need help with a kernel, know anyone?
I'm Having a problem using on Linix, when i use the unyaffs trough the terminal it extracts the rom but not the squashed contents, which in the main apps and frame work are at on thoughs roms. I do get a file that says squashed but empty. I tried on cyanogens 6.1 rom and everything extracted fine.but that rom does not have a squashed folder, am i doing something wrong?
1. If i unyaffs System.img and manually remove some programs/aplications then create System.img with yaffs, does it programs will appear in apps and does my rom will be caused a more memory for other programs for installation?
2. Is it possible to unyaffs Boot.img then replace zimage with newest kernel like MDJ or hastarin then yaffs to new Boot.img, After that i suppose then this Android OS will be on new kernel???
3. And... If i remove zimage and initrd.gz from Boot.img, create new Boot.img without these two files and these two files copy to SD card and define that two files in flash.cfg for find on SD. Does it works?
Sorry for bad English.

[Q] Edit clockworkmod flash.cfg file?

Hello all, I'm totally newb to flashing ROM so please take it easy if the question is redundant. I have flashed and got this Gingerbread ROM from MDJ (http://forum.xda-developers.com/showthread.php?t=877777) running perfectly fine. In his instruction, he uses the 250MB partition. So after installation of a lot of apps, my system storage is listed as:
Total: 250MB, Free: 123MB. (I got these numbers from Quick System Info)
I guess the ROM only used 127MB? I'm thinking changing the flash.cfg file like this,
From "system ya 250M" to "system ya 130M" so that would give me a few more MB in the userdata partition.
Is that gonna break something I don't know about?
erythrophilia said:
Hello all, I'm totally newb to flashing ROM so please take it easy if the question is redundant. I have flashed and got this Gingerbread ROM from MDJ (http://forum.xda-developers.com/showthread.php?t=877777) running perfectly fine. In his instruction, he uses the 250MB partition. So after installation of a lot of apps, my system storage is listed as:
Total: 250MB, Free: 123MB. (I got these numbers from Quick System Info)
I guess the ROM only used 127MB? I'm thinking changing the flash.cfg file like this,
From "system ya 250M" to "system ya 130M" so that would give me a few more MB in the userdata partition.
Is that gonna break something I don't know about?
Click to expand...
Click to collapse
First of all that will wipe your existing installation / data clean. Hope you understand that. Secondly, it should work fine but doesn't leave you much space at all on your system partition. I would add a little more- maybe 135M or 140M.
I see. I already have a CWM backup so the data won't be a problem. So that means the size specified in flash.cfg isn't directly linked to other things? I mean like if I change it, and the ROM boots up, it looks for the right size, and then if the original size isn't there, it will refuse to boot.
But anyway, I'll experiment with it later today. Thanks.
erythrophilia said:
From "system ya 250M" to "system ya 130M" so that would give me a few more MB in the userdata partition.
Is that gonna break something I don't know about?
Click to expand...
Click to collapse
I have been flashing Nand roms but until now i dont understand how to edit flash cfg. there is no choice in the clockwork recovery that has such option. I know it may sound silly.Thank you
jad71 said:
I have been flashing Nand roms but until now i dont understand how to edit flash cfg. there is no choice in the clockwork recovery that has such option. I know it may sound silly.Thank you
Click to expand...
Click to collapse
You have to edit the flash.cfg in notepad before you flash it on your phone
Cant find flash.cfg
acho07 said:
You have to edit the flash.cfg in notepad before you flash it on your phone
Click to expand...
Click to collapse
i also face similar issues, can u explain where to find the flash.cfg file.
azi43far said:
i also face similar issues, can u explain where to find the flash.cfg file.
Click to expand...
Click to collapse
When you download clockwork recovery on your computer, in the extracted folder there should be a file "flash.cfg" open that in notepad and change the values to whatever you require then flash it using the daf.exe via usb flasher in magldr.
Just adding this information if someone stumbles onto this article again :
Description of flash.cfg format
===============================
1. each line define one partition
2. maximum number of partitions is 16
3. order of partitions are same like lines in the file
4. line format: <partition name> <flags/type> <size> <data filename>
partition name - up to 15 chars, shown in MTD later
size - can be related to filesize: "filesize", "filesize+10M", "filesize+10b",
or have fixed size: "10M", "100b"
[M - means Megabytes, b - menas blocks (each NAND block is 128kbytes)]
can be "allsize" for auto size partition.
flags/type - can be different values:
types:
"ya" - YAFFS2 partition. MAGLDR can show root directory context or read kernel/initrd from it
"raw" - RAW data.
flags:
"ro" - disable add extra 5% to partition size and count bad blocks into size
"boot" - this partition contains zImage and initrd.gz for NAND boot (it must have YAFFS2 type)
"asize" - auto size. this partition will use all available space after other partitions. only one partition can have this type.
"nospr" - binary data have not spare data. (2048+0 format), otherwise 2048+64 format used.
"nors" - use exactly specified size for partition. no resize is done.
"hr" - this partition must be erased if user select "AD HardReset" in MAGLDR menu.
different flags and types separated via "|" symbol, like "boot|ya|ro"
bamit99 said:
Just adding this information if someone stumbles onto this article again :
Description of flash.cfg format
===============================
1. each line define one partition
2. maximum number of partitions is 16
3. order of partitions are same like lines in the file
4. line format: <partition name> <flags/type> <size> <data filename>
partition name - up to 15 chars, shown in MTD later
size - can be related to filesize: "filesize", "filesize+10M", "filesize+10b",
or have fixed size: "10M", "100b"
[M - means Megabytes, b - menas blocks (each NAND block is 128kbytes)]
can be "allsize" for auto size partition.
flags/type - can be different values:
types:
"ya" - YAFFS2 partition. MAGLDR can show root directory context or read kernel/initrd from it
"raw" - RAW data.
flags:
"ro" - disable add extra 5% to partition size and count bad blocks into size
"boot" - this partition contains zImage and initrd.gz for NAND boot (it must have YAFFS2 type)
"asize" - auto size. this partition will use all available space after other partitions. only one partition can have this type.
"nospr" - binary data have not spare data. (2048+0 format), otherwise 2048+64 format used.
"nors" - use exactly specified size for partition. no resize is done.
"hr" - this partition must be erased if user select "AD HardReset" in MAGLDR menu.
different flags and types separated via "|" symbol, like "boot|ya|ro"
Click to expand...
Click to collapse
This is what i get when I open flash.cfg. Where do I insert the values!

[Q] How to change the initrd.gz boot image?

Hi guys,
Can anyone explain me how to change the boot image contained in initrd.gz?
Thank you vary much...
erestor6 said:
Hi guys,
Can anyone explain me how to change the boot image contained in initrd.gz?
Thank you vary much...
Click to expand...
Click to collapse
+1 for this, I'm trying to do the exact same thing! Check out this post to create the image in the correct format:
http://forum.xda-developers.com/showthread.php?t=537515
I created a logo.rle image from a 480x800 image (both attached) but don't know how to overwrite the one inside my initrd.gz file. I tried using 7zip but it seems that it is write-protected. If anyone knows how to do this, it would be much appreciated. I've changed all of the other boot screens but just want to change the green HTC logo if I can.
Thanks in advance
gargon01 said:
+1 for this, I'm trying to do the exact same thing! Check out this post to create the image in the correct format:
http://forum.xda-developers.com/showthread.php?t=537515
I created a logo.rle image from a 480x800 image (both attached) but don't know how to overwrite the one inside my initrd.gz file. I tried using 7zip but it seems that it is write-protected. If anyone knows how to do this, it would be much appreciated. I've changed all of the other boot screens but just want to change the green HTC logo if I can.
Thanks in advance
Click to expand...
Click to collapse
thank you very much..but I was arrived at that poit.
In second of me the normal procedure is wrong, there wil be some steps that will be immediate and that we don't know.
help please...
Yeah - now it's working on my HD2!
This method is applicable for firmware, which include the file initrd.gz in zip archive. Many firmwares are distributed as img files, and I have not tried to extract initrd.gz from there, though perhaps it is possible.
The file logo.rle is not the usual rle and programs for creating or convert rle can not create it, also You can not view logo.rle by any usual rle-viewer. I took logo.rle from another firmware, because I could not do it (it can be reached by 7zip from initrd.gz; or copied from root directory after boot by root explorer, if firmware is already installed).
For this process Linux on a PC required - terminal emulator on phone doesn't work correctly! I used Chaox Live CD because I use Windows on my PC.
I put the file initrd.gz (from my firmware) in a folder and the new logo.rle file near this folder. In a Linux terminal I entered to that folder (by command cd) and ran the commands:
gunzip initrd.gz
cpio -i < initrd
cp -f ../logo.rle
rm initrd
find . | cpio -o -H newc | gzip > ../initrd.gz
Than I change the original initrd.gz in the firmware to the one I created.
ps: Not necessarily replace the entire firmware to replace the file initrd.gz. You can replace only a boot partition. To do this, take the original files boot/zImage & META-INF/com/google/android/updater-script from the firmware and add Your own boot/initrd.gz & META-INF/com/google/android/updater-script. Now You can zip it and place the archive to the root of the sdcard. Than enter to MAGLDR-ADrecovery-install zip from sdcard
Archive must contain this 4 files with pathnames:
boot/initrd.gz
boot/zImage
META-INF/com/google/android/update-binary
META-INF/com/google/android/updater-script
file updater-script must containe this commands:
mount("MTD", "boot", "/boot");
package_extract_dir("boot", "/boot");
unmount("/boot");
In my case I use this firmware and logo.rle file from this firmware.
Hope it's will be helpfull!
I'm sorry - english is not my language.
Awesome work, vovchok!
However after reading your sequence of 'nix commands multiple times I have determined that the little white guy doesn't look bad at all.
My momma's boy ain't touching that.
I found this Thread . After reading, I landed here. Now this is where I just got stuck.
I'm using Hyperdroid and there is no initrd.gz. There's just a "boot.img" with ~3mb.
I still would like to change my second boot screen to fit in the boot sequence.
(I already mastered to create my own 1st bootscreen, flashed it, and changed my boot animation, but as said, I got stuck here finding a guide how to change the second boot screen.)
Any ideas?
smeee_again said:
I found this Thread . After reading, I landed here. Now this is where I just got stuck.
I'm using Hyperdroid and there is no initrd.gz. There's just a "boot.img" with ~3mb.
I still would like to change my second boot screen to fit in the boot sequence.
(I already mastered to create my own 1st bootscreen, flashed it, and changed my boot animation, but as said, I got stuck here finding a guide how to change the second boot screen.)
Any ideas?
Click to expand...
Click to collapse
Yeah - it's a lot more complicated to extract the initrd.gz file from a boot.img than it is from a ROM with a boot partition. I spent many hours trying to do it, and failed.
Currently just building a ROM with an edited initrd.gz file inside it. I know that the logo.rle file in the initrd.gz file is the correct image that I want (the stock white HTC screen) but I just don't know if I'm building the ROM with the correct options (using the Android Kitchen).
I'll report back with results, because I tried to do this a couple of months ago and failed, since the ROM required me to flash a separate kernel zip after the main ROM, which replaced initrd.gz, and I couldn't edit the initrd.gz file using the Android Kitchen because it was in a boot.img.
EDIT: Okay, just spent about 2 hours trying to change the damn image, having replaced initrd.gz with what was definitely the right one, and I boot it up and see the black HTC logo.
Alright, I've actually successfully modified the logo.rle file from inside a boot.img, rebuilt the ROM with it, and reflashed it - the image is now in place, and the ROM works great.
So, the steps:
Use dsixda's Android Kitchen to unpack the ROM into a working folder.
Locate the boot.img and copy it to a separate folder.
Follow this tutorial to unpack the boot.img file, then locate the logo.rle inside there (there's no initrd.gz).
Use the tools found here to convert the image that you want to use to an RLE file, and then overwrite the existing RLE file in your working directory where you unpacked the boot.img.
Continuing the tutorial found in the link from step 3, repack your boot.img with the edited logo.rle now inside it.
Head back to your working folder in the Android Kitchen, where the ROM that you want to modify has been unpacked. Replace the boot.img there with the one that you just modified.
Choose option 99 in the kitchen to build a ROM from the working folder, and follow the steps.
Now flash your ROM in CWM! I flashed straight over an existing installation instead of wiping etc., although it did still get rid of all my settings
Hopefully this is helpful to someone. I might post it in a new thread - since I spent so long trying to find this, and finally figured out how to do it for myself.
This helped a lot. Thanks.
ryan1990 said:
This helped a lot. Thanks.
Click to expand...
Click to collapse
No worries. If anyone ever gets stuck or doesn't know what I did for some bit, let me know and I'll see if I can help, because it sucked when I was trying to figure this out for ages and nobody else seemed to know how to do it either.
vovchok said:
Yeah - now it's working on my HD2!
gunzip initrd.gz
cpio -i < initrd
cp -f ../logo.rle
rm initrd
find . | cpio -o -H newc | gzip > ../initrd.gz
Hope it's will be helpfull!
I'm sorry - english is not my language.
Click to expand...
Click to collapse
search for long time, now work fine.
THX bro.
vovchok said:
Yeah - now it's working on my HD2!
This method is applicable for firmware, which include the file initrd.gz in zip archive. Many firmwares are distributed as img files, and I have not tried to extract initrd.gz from there, though perhaps it is possible.
The file logo.rle is not the usual rle and programs for creating or convert rle can not create it, also You can not view logo.rle by any usual rle-viewer. I took logo.rle from another firmware, because I could not do it (it can be reached by 7zip from initrd.gz; or copied from root directory after boot by root explorer, if firmware is already installed).
For this process Linux on a PC required - terminal emulator on phone doesn't work correctly! I used Chaox Live CD because I use Windows on my PC.
I put the file initrd.gz (from my firmware) in a folder and the new logo.rle file near this folder. In a Linux terminal I entered to that folder (by command cd) and ran the commands:
gunzip initrd.gz
cpio -i < initrd
cp -f ../logo.rle
rm initrd
find . | cpio -o -H newc | gzip > ../initrd.gz
Than I change the original initrd.gz in the firmware to the one I created.
ps: Not necessarily replace the entire firmware to replace the file initrd.gz. You can replace only a boot partition. To do this, take the original files boot/zImage & META-INF/com/google/android/updater-script from the firmware and add Your own boot/initrd.gz & META-INF/com/google/android/updater-script. Now You can zip it and place the archive to the root of the sdcard. Than enter to MAGLDR-ADrecovery-install zip from sdcard
Archive must contain this 4 files with pathnames:
boot/initrd.gz
boot/zImage
META-INF/com/google/android/update-binary
META-INF/com/google/android/updater-script
file updater-script must containe this commands:
mount("MTD", "boot", "/boot");
package_extract_dir("boot", "/boot");
unmount("/boot");
In my case I use this firmware and logo.rle file from this firmware.
Hope it's will be helpfull!
I'm sorry - english is not my language.
Click to expand...
Click to collapse
Thz for your help^^
The rom i am using hvn't boot.img.
but i can find initrd.gz and i hv change the logo.rle.
the probllem is how to edit the updater-script only update the initrd.gz?
and is it possible to random boot a few of .rle files ?
Please, make initrd.gz for CM9ight
Oops, not the right thread.

[Q] Edited system files revert on boot, even though they are saved

So I don't know if this is a ROM issue or a Kernel Issue. I'm running Paranoid 2.5-3 ROM and Faux123 12b8 Kernel.
I changed some system files (a bunch), like a lot of the init.rc, init.grouper.rc and stuff like that, just to see what I could do with them. One file specifically handled how to deal with USB drive (OTG), by default is specifies to mount as /storage/usbdisk. I made changes to have the drive mount as /mnt/sdcard-ext. Just an example of the stuff I was playing with.
So on reboot, all changes to the files reverted to how they were before I edited them. NOTE: In the Faux123 Kernel, there is a flag you set for OTG + Charge, people complained that it worked, but the setting went back to the default upon reboot.
So is this common? How do you save files so they "stick"? Are system files "written" (re-written) at boot or something?
ehi man,tried via init.d to load them at boot?
sert00 said:
ehi man,tried via init.d to load them at boot?
Click to expand...
Click to collapse
I'm sorry, I don't even know what that means. ehi man? I know there are other routes to change settings at boot, but why won't my edits stick when I save them in system files. Same goes for the Faux123 Kernel's flag for OTG + Charge, the change doesn't stick. You can set it on init.d, but when you save edit in the file, why would it revert back?
Also, how do we stop android from automounting OTG USB drives. When it automounts, it is read only NTFS. I have to manually unmount, then I use Paragon to mount as read/write ntfs. Would like to be able to use Paragon without having to unmount the drive first.
SkyBehind said:
why won't my edits stick when I save them in system files.
Click to expand...
Click to collapse
Short answer: Because you're editing files in a RAM disk.
Long answer: The filesystem at "/" (the root folder) is created in memory (RAM disk) from an image contained in the kernel image.
So when you edit files there, they are changed in RAM for the moment, but they are not actually physically saved anywhere.
When you then reboot, "/" is created from the kernel's initrd image (again) and hence you get the original versions back.
If you want to change those files, you need to rebuild and flash a kernel image with an initrd that contains your edits.

Categories

Resources