A small partition image with gzipped cpio archive that is mounted read-only by the kernel at boot time. It only contains /init and a few config files. It is used to start init which will mount the rest of the system images properly and run the init procedure. A Ramdisk is a standard Linux feature.
system.img
A partition image that will be mounted as /system and thus contains all system binaries
userdata.img
A partition image that can be mounted as /data and thus contains all application-specific and user-specific data.
Here is the steps:
1.Change directory to whatever/path
$ cd whatever/path2.Copy the original ramdisk.img
$ cp /path/to/ramdisk.img .3.Create a temporary folder, say ramdisk-ext
$ mkdir ramdisk-ext4.Change directory to ramdisk-ext
$ cd ramdisk-ext5.Extract the ramdisk.cpio in the ramdisk-ext folder
$ gunzip -dcv ../ramdisk.img | cpio -idm6.Check out the directories in ramdisk.img
$ ls
data dev init.goldfish.rc proc sys default.prop init init.rc sbin system7.Do some modifications
$ touch foo8.Recreate the ramdisk.cpio
$ mkdir bar
$ find . | cpio -H newc -o | gzip -9 >../ramdisk.img9.Start the emulator
$ emulator -system system.img -data userdata.img -ramdisk ramdisk.img10.Check out the directories in the emulator
$ adb shell ls -l
drwxrwxrwt root root 2010-11-26 16:54 sqlite_stmt_journals drwxrwx--- system cache 2010-11-26 16:54 cache d--------- system system 2010-11-26 16:54 sdcard lrwxrwxrwx root root 2010-11-26 16:54 etc -> /system/etc drwxr-xr-x root root 2010-11-15 07:33 system drwxr-xr-x system system 2010-11-26 16:53 bar drwxr-x--- system system 2010-11-26 16:52 sbin -rwxr-x--- system system 1677 1970-01-01 00:00 init.goldfish.rc dr-xr-xr-x root root 1970-01-01 00:00 proc -rw-r--r-- system system 0 2010-11-26 16:52 foo -rwxr-x--- system system 106696 1970-01-01 00:00 init -rwxr-x--- system system 10700 1970-01-01 00:00 init.rc drwxr-xr-x root root 1970-01-01 00:00 sys -rw-r--r-- system system 118 1970-01-01 00:00 default.prop drwxrwx--x system system 2010-11-16 09:04 data drwx------ root root 2009-08-07 03:35 root drwxr-xr-x root root 2010-11-26 16:54 dev
gunzip options:
-c, --stdout write on standard output, keep original files unchanged -d, --decompress decompress -v, --verbose verbose mode -1, --fast compress faster -9, --best compress better
cpio options:
-i, --extract Extract files from an archive (run in copy-in mode) -d, --make-directories Create leading directories where needed -m, --preserve-modification-time Retain previous file modification times when creating files -H, --format=FORMAT Use given archive FORMAT -c Use the old portable (ASCII) archive format -o, --create Create the archive (run in copy-out mode) -v, --verbose Verbosely list the files processed -B Set the I/O block size to 5120 bytes -u, --unconditional Replace all files unconditionally Examples: cpio -covB > [file|device]<== Backup cpio -icduv < [file|device]<== Restore "-H newc" use the new (SVR4) portable format. If you wish the old portable (ASCII) archive format, use "-H odc" instead.
reference:
* Android ramdisk.img system.img userdata.img
* android ramdisk的壓縮與解壓縮
沒有留言:
張貼留言