Place Holder - What's in the folders - In Progress
I'm just compiling what I learn as I go so please correct me if any of this information is wrong. I've mostly been playing around with the stock firmware.
Files in an update Package
1. factory_update_param.aml - Commands for updating your package.
3. u-boot.bin - U- Boot (Universal Bootloader) is mostly used to load and boot a kernel image, but it also allows to change the kernel image and the root filesystem stored in flash. It also initializes the CPU and onboard hardware.
4. uImage - Contains Kernel and Ramdisk. Same as a boot.img.
5. uImage_recovery - Recovery that loads before firmware starts
---
Files for AML Image Burn Tool
This is all totally theoretically and based off of a post in the AML Flash Tool thread and my exploration on the files.
1. config_progress.xml - This contains the commands for the AML Image Burn Tool software.
2. u-boot-orig.bin - I think this then loads a basic bootloader allowing the USB tool to interact with the device and change the kernel image and root filesystems stored in the NAND. My guess is that it also configures the CPU and onboard hardware at this point.
3. uImage_usb_burning - This is the uImage and appears to be the recovery but contains some extra commands in the "etc" folder and a complete build.prop in "default.prop." It also contains images for the auto-flash android icon in the "res" folder.
4. usb_spl.bin - "Second Program Loader." This is a second stage bootloader protocol for ROM (Read Only Memory) access. It allows M3 or M6-Chip Configuration and installs a small, basic bootloader that allows u-boot-orig.bin to run.
5. update.zip - Your basic firmware package.
This is the code inside the config_progress.xml for the Fire2 with notations:
Files in a zipped ROM
First folder:
1. meta-inf - contains the script needed to install the rom.
2. system - contains the system files and folder of the custom rom
3. additional file - additional file that contains scripts needed to install additional features (eg: busybox, additional app in data/app, and install custom kernel) in the custom rom.
4. boot.img - bootloader and kernel
In system folder:
1. app - contains all the system apps
2. bin - contains the command and bin files for the rom
3. etc - additional settings and files for the rom
4. font - the fonts
5. framework - system's framework
6. lib - drivers and modules
7. media - alarms, notifications, ringtones, system sounds and boot animation
8 package_config - Unsure what this is.
9. resource - contains pictures for the battery image
10. tts - languages for text-to-speech
11. usr - files needed for keyboard, bluetooth, etc.
12. xbin - additional command and bin files (busybox, superuser and bash)
13. build.prop - modify some content like name of ROM, build date, dpi, etc.
---
Files in an unpacked boot.img/uImage
First folder:
1. initramfs - unpacked initramfs.cpio folder or RAMdisk. The RAMdisk is a small partition image that is mounted read-only by the kernel at boot time. It only contains init and config files. It is used to start init which will mount the rest of the system images properly and run the init procedure.
2. image - Kernel image.
3. image-ext - uncompressed "image" file.
4. initramfs.cpio - packaged initramfs.
In initramfs folder:
1. boot -
2. data -
3. dev -
4. proc -
5. sbin -
6. sys -
7. system -
8 default.prop -
9. init -
10. init.factorytest.rc -
11. init.goldfish.rc -
12. init.trace.rc -
13. init.usb.rc -
15. initlogo.rle.bak -
16. ueventd.amlogic.rc -
17. ueventd.goldfish.rc -
18. ueventd.rc -
---
System App Customization
Deodexed vs. Odexed ROM - Almost every stock app in android consist of two parts; *apk files and *dex/odex files. Deodexed ROM's make it easier to apply themes and customize your system apps. Odexed ROM's consume less memory (RAM) and initial booting is quicker.
Odexed -The *dex file needed to run the app is placed in the same folder with the *apk files (/system/app). They consume less memory (RAM) but take up more storage space in your "/data" partition.
Deodexed - The *dex is compiled back into the *apk file and extracted into /data/dalvik-cache when you boot. The apps can be themed and consume less space in your "/data" partition, also allowing you to put more apps in the "/system/app" folder. Deodexed apps use more RAM though.
You can add or remove any app in /system/app folder as long as you don't exceed the space in your system partition (220MB?). You can not remove any apps that are essential to your operating system. It is important to leave at least 20mb of free space in system partition.
The Android Kitchen can be used to automatically deodex your ROM.
I'm just compiling what I learn as I go so please correct me if any of this information is wrong. I've mostly been playing around with the stock firmware.
Files in an update Package
1. factory_update_param.aml - Commands for updating your package.
2. update.zip - The firmware you are flashing.
3. u-boot.bin - U- Boot (Universal Bootloader) is mostly used to load and boot a kernel image, but it also allows to change the kernel image and the root filesystem stored in flash. It also initializes the CPU and onboard hardware.
4. uImage - Contains Kernel and Ramdisk. Same as a boot.img.
5. uImage_recovery - Recovery that loads before firmware starts
---
Files for AML Image Burn Tool
This is all totally theoretically and based off of a post in the AML Flash Tool thread and my exploration on the files.
1. config_progress.xml - This contains the commands for the AML Image Burn Tool software.
2. u-boot-orig.bin - I think this then loads a basic bootloader allowing the USB tool to interact with the device and change the kernel image and root filesystems stored in the NAND. My guess is that it also configures the CPU and onboard hardware at this point.
3. uImage_usb_burning - This is the uImage and appears to be the recovery but contains some extra commands in the "etc" folder and a complete build.prop in "default.prop." It also contains images for the auto-flash android icon in the "res" folder.
4. usb_spl.bin - "Second Program Loader." This is a second stage bootloader protocol for ROM (Read Only Memory) access. It allows M3 or M6-Chip Configuration and installs a small, basic bootloader that allows u-boot-orig.bin to run.
5. update.zip - Your basic firmware package.
This is the code inside the config_progress.xml for the Fire2 with notations:
---
Files in a zipped ROM
First folder:
1. meta-inf - contains the script needed to install the rom.
2. system - contains the system files and folder of the custom rom
3. additional file - additional file that contains scripts needed to install additional features (eg: busybox, additional app in data/app, and install custom kernel) in the custom rom.
4. boot.img - bootloader and kernel
In system folder:
1. app - contains all the system apps
2. bin - contains the command and bin files for the rom
3. etc - additional settings and files for the rom
4. font - the fonts
5. framework - system's framework
6. lib - drivers and modules
7. media - alarms, notifications, ringtones, system sounds and boot animation
8 package_config - Unsure what this is.
9. resource - contains pictures for the battery image
10. tts - languages for text-to-speech
11. usr - files needed for keyboard, bluetooth, etc.
12. xbin - additional command and bin files (busybox, superuser and bash)
13. build.prop - modify some content like name of ROM, build date, dpi, etc.
---
Files in an unpacked boot.img/uImage
First folder:
1. initramfs - unpacked initramfs.cpio folder or RAMdisk. The RAMdisk is a small partition image that is mounted read-only by the kernel at boot time. It only contains init and config files. It is used to start init which will mount the rest of the system images properly and run the init procedure.
2. image - Kernel image.
3. image-ext - uncompressed "image" file.
4. initramfs.cpio - packaged initramfs.
In initramfs folder:
1. boot -
2. data -
3. dev -
4. proc -
5. sbin -
6. sys -
7. system -
8 default.prop -
9. init -
10. init.factorytest.rc -
11. init.goldfish.rc -
12. init.trace.rc -
13. init.usb.rc -
15. initlogo.rle.bak -
16. ueventd.amlogic.rc -
17. ueventd.goldfish.rc -
18. ueventd.rc -
---
System App Customization
Deodexed vs. Odexed ROM - Almost every stock app in android consist of two parts; *apk files and *dex/odex files. Deodexed ROM's make it easier to apply themes and customize your system apps. Odexed ROM's consume less memory (RAM) and initial booting is quicker.
Odexed -The *dex file needed to run the app is placed in the same folder with the *apk files (/system/app). They consume less memory (RAM) but take up more storage space in your "/data" partition.
Deodexed - The *dex is compiled back into the *apk file and extracted into /data/dalvik-cache when you boot. The apps can be themed and consume less space in your "/data" partition, also allowing you to put more apps in the "/system/app" folder. Deodexed apps use more RAM though.
You can add or remove any app in /system/app folder as long as you don't exceed the space in your system partition (220MB?). You can not remove any apps that are essential to your operating system. It is important to leave at least 20mb of free space in system partition.
The Android Kitchen can be used to automatically deodex your ROM.