cfrockit
Senior Member
- Dec 26, 2010
- 627
- 191
Custom Sylvania ROM development
One of the challenges of creating a custom ROM for the Sylvania tablet is getting the source code.
Short of that being provided anytime soon, it has been suggested we can work backwards using the BETA Froyo *.ius update files.
However, the update files are custom multi-part files containing several parts of the firmware and Android OS - U0 (u-boot-nand.bin), Ramdisk.img, Linux Kernel, User Data, and system.img.
Stragulus of xda, who is doing [ROM] Flytouch2 Froyo development which is a similar infoTM based device, provided some assistance in explaining how these files can be pulled apart into separate pieces. He also joined the discussion to provide direction on how to modify parts of the images to create a custom modification.
Not knowing enough about what he explained but interested enough to investigate further, a very manual method has been identified to extract the various parts of the OS.
The parts extracted from a ius file can now be examined and modified and then manually burned to the device using the InfoTM Update Wrap (IUW) Version 1.0 utility USB mode: Expert burn method.
How to manually extract the various parts from the ius file.
Requirements: Hex Editor, IUW Version 1.0 utility, ability to use these tools
Using the IUW Version 1.0 utility, Choose a wrapped image: for example 11.2.0.6.2.0_beta3.ius
Each ius file is a multi-part file containing several parts of the Android OS - U0 (u-boot-nand.bin), RD - Ramdisk.img, LK - Linux Kernel, ADD_USER - User Data, and ADD_AS - system.img.
Observe the Image List: information contained in Wrap Information: which corresponds to these parts.
Per Stragulus suggestion, using this information (size in KB * 1024 bytes) will lead us to identify the beginning and end of each section. Once these breaks have been identified each section can be copied to an individual file.
Open the ius file in a HEX Editor -
The beginning of the file is header information for the InfoTM Update Wrap (IUW) utility followed by 00 padding. Leading us to Offset: 0x200
U0 - u-boot-nand.bin
Offset: 00000200 is the beginning of U0 - u-boot-nand.bin
Using the Wrap Information for U0, it size is 246KB * 1024 = 251904 in Decimal.
Converting to HEX 0x3D800 then adding to beginning offset 0x200 gives us the end location - Offset: 0003D9FF.
RAMDISK
The end of u-boot-nand.bin leaves us at the beginning of Ramdisk.img. As suggested also by Stragulus we could have searched for gzip headers (0x270519).
Now select from 0x03DA00 using Length of 173KB * 1024 = DEC 177152 = 0x02B400 ending at 0x068DFF is Ramdisk.img.
For a HOWTO: Unpack, Edit, and Re-Pack Boot Images - Android Wiki see the section on Unpacking, Editing, and Re-Packing the images
KERNEL
The next section also begins with header (0x270519). LK or Linux Kernel begins at 0x068E00 and it's length is 2376KB * 1024 = DEC 2433024 = 0x252000. Adding to the beginning offset this section ends at 0x2BADFF.
USER
Starting at the end of the last section, 0x2BAE00, using the length of 4.5KB from the Wrap Information the length is 0x001200, therefore the end is at offset 0x2BBFFF.
SYSTEM
The end of the last section placed us right back at the last header (0x270519). From here to the end of the file is the system.img.
In summary:
Each section can now be selected and paste into a new file, creating individual sections of the update file used in the IUW Version 1.0 utility USB mode: Expert burn method.
DO NOT ATTEMPT TO BURN without understanding the potential risks. It is unknown if cutting/pasting the individual parts leaves them intact.
Work In Progress - Investigation and modification of these parts can now begin. Enjoy and have fun!
Updated 04/23/2011 - Additional information provided by Stragulus
As requested, a tutorial on how to extract images from the *.ius files. Post #2
Packaging files for 2-stage flash method (from flytouch 2) Post #3
One of the challenges of creating a custom ROM for the Sylvania tablet is getting the source code.
Short of that being provided anytime soon, it has been suggested we can work backwards using the BETA Froyo *.ius update files.
However, the update files are custom multi-part files containing several parts of the firmware and Android OS - U0 (u-boot-nand.bin), Ramdisk.img, Linux Kernel, User Data, and system.img.
Stragulus of xda, who is doing [ROM] Flytouch2 Froyo development which is a similar infoTM based device, provided some assistance in explaining how these files can be pulled apart into separate pieces. He also joined the discussion to provide direction on how to modify parts of the images to create a custom modification.
Not knowing enough about what he explained but interested enough to investigate further, a very manual method has been identified to extract the various parts of the OS.
The parts extracted from a ius file can now be examined and modified and then manually burned to the device using the InfoTM Update Wrap (IUW) Version 1.0 utility USB mode: Expert burn method.
How to manually extract the various parts from the ius file.
Requirements: Hex Editor, IUW Version 1.0 utility, ability to use these tools
Using the IUW Version 1.0 utility, Choose a wrapped image: for example 11.2.0.6.2.0_beta3.ius
Each ius file is a multi-part file containing several parts of the Android OS - U0 (u-boot-nand.bin), RD - Ramdisk.img, LK - Linux Kernel, ADD_USER - User Data, and ADD_AS - system.img.
Observe the Image List: information contained in Wrap Information: which corresponds to these parts.
Code:
Company: error
Board: error
FileNum: 11.2.0.6.2.0
Size: 64 MB
Image List:
U0 (246 KB)
RD (173 KB)
LK (2376 KB)
ADD_USER (4.5 KB)
ADD_AS (62934.5 KB)
Open the ius file in a HEX Editor -
The beginning of the file is header information for the InfoTM Update Wrap (IUW) utility followed by 00 padding. Leading us to Offset: 0x200
U0 - u-boot-nand.bin
Offset: 00000200 is the beginning of U0 - u-boot-nand.bin
Using the Wrap Information for U0, it size is 246KB * 1024 = 251904 in Decimal.
Converting to HEX 0x3D800 then adding to beginning offset 0x200 gives us the end location - Offset: 0003D9FF.
RAMDISK
The end of u-boot-nand.bin leaves us at the beginning of Ramdisk.img. As suggested also by Stragulus we could have searched for gzip headers (0x270519).
Now select from 0x03DA00 using Length of 173KB * 1024 = DEC 177152 = 0x02B400 ending at 0x068DFF is Ramdisk.img.
For a HOWTO: Unpack, Edit, and Re-Pack Boot Images - Android Wiki see the section on Unpacking, Editing, and Re-Packing the images
KERNEL
The next section also begins with header (0x270519). LK or Linux Kernel begins at 0x068E00 and it's length is 2376KB * 1024 = DEC 2433024 = 0x252000. Adding to the beginning offset this section ends at 0x2BADFF.
USER
Starting at the end of the last section, 0x2BAE00, using the length of 4.5KB from the Wrap Information the length is 0x001200, therefore the end is at offset 0x2BBFFF.
SYSTEM
The end of the last section placed us right back at the last header (0x270519). From here to the end of the file is the system.img.
In summary:
Code:
[FONT=Courier New]
File: 11.2.0.6.2.0_beta3.ius
Description: Address Length End
u-boot-nand 00000200 0003D800 0003D9FF
Ramdisk 0003DA00 0002B400 00068DFF
LK 00068E00 00252000 002BADFF
USER_DATA 002BAE00 00001200 002BBFFF
SYSTEM 002BC000 03D75A00 040319FF[/FONT]
DO NOT ATTEMPT TO BURN without understanding the potential risks. It is unknown if cutting/pasting the individual parts leaves them intact.
Work In Progress - Investigation and modification of these parts can now begin. Enjoy and have fun!
Updated 04/23/2011 - Additional information provided by Stragulus
As requested, a tutorial on how to extract images from the *.ius files. Post #2
Packaging files for 2-stage flash method (from flytouch 2) Post #3
Last edited: