Android Tablets Forum banner

$50 to the first person to figure this out...

1 reading
122K views 155 replies 50 participants last post by  SWATcyp  
#1 · (Edited by Moderator)
I am going insane because I really would like to be able to MODIFY EXISTING AINOL/PLOYER FIRMWARE IMAGES.... It would make my life (and the lives of my customers) SO MUCH EASIER.

So $50 (via Paypal) to the first person who can get on here and do the following with an existing OFFICIAL Ainol 2.3 firmware image. An additional $15 if you take the time to work on an ICS image as well as from what research I have done I think their are a few extra steps involved.

1. Using an existing OFFICIAL A10 firmware image, EXTRACT the image

2. Modify the extracted files

3. Repack the extracted image and successfully flash it using Livesuite

4. Write a detailed walk-through of how to do this along with download links to all the necessary tools.

5. I am able to follow the walkthrough you write-up using the tools you provide and REPEAT the above.

I already have Oracle VirtualBox running with Ubuntu 10.04 LTS installed so I don't expect you to go into how to set that up. Aside from that, I am running Windows 7 32-bit and I already have a fair bit of experience but when it comes to this I have done a ton of research and my head is still spinning.

Thanks for your help in advance. I am happy to pay whoever can fulfill all of the above. I am at my wits end trying to figure it out on my own.

Kind Regards,

Roman
 
#3 ·
Here you go, I've dropped together a little tool what can extract and repack any A10 image (sadly repacking is very dependent on the layout - it can only work on one at a time. I'll add a proper ICS layout and automatic selection of it as soon as possible, but for now, it's ONLY GingerBread repacking!).

Features:
- Extract and repack any GB A10 firmware, even after modding (recreates hash verification files)
- Proper extraction of any firmware
- Edited image config for just this very one goal
- Proper repacking of any GingerBread firmware (what has no plus files, like userdata and cache included)

As I said, in the near future I'll make an ICS layout and automatic selection of the ICS layout when it's detected, but for now, it's only GB. ICS needs some re-working of the layout config file, and I'm not 100% sure that the new config I made works. Will post some more information later.

Usage:
- Installation:
Extract the zip file somewhere. Copy any image next to the two bat files and go on the next point.
- Extract firmware:
Using Windows Command Line, cd into the directory with the bat files and issue the following command:
Code:
extract_img.bat [img_name]
This will extract the image and set up the working folders.
- Edit the extracted firmware:
The files you might want to edit are the RFSFAT16 ones. BOOTFS is a simple FAT16 image, use MagicISO (or any other ISO managing app) to open and edit it. SYSTEMFS, ROOTFS, and RECOVERYFS are all ext4 images, you can't directly edit them on Windows (atleast by my information). But you can mount them on any Linux machine. SYSTEMFS holds the /system file structure, ROOTFS is the initram (init.rc, default.prop, initlogo, etc), and RECOVERYFS is the recovery.
- Repack the firmware
Still using WCL, use the following:
Code:
repack_img.bat [output_img_name]
This will take some time, but will create proper hash verification files for the four checked image: SYSTEMFS, BOOTFS, ROOTFS and RECOVERYFS. After that it will use my config file and eDragonEx to repack the image.

IT IS VERY IMPORTANT TO DO NOT CHANGE ANY NAMINGS IN THE DIRECTORIES, MOSTLY WORK! IF YOU DO, BUILDING WILL BREAK.
eDragonEx is the property of AllWinner Technologies Inc., and this package should not be distributed or used in any commercial way. If you do upload it somewhere other place than this, I ask you to copy this exact tutorial and licensing information with it, and also link back to this post. It would be nice to see my name there too ;D
 

Attachments

#4 · (Edited by Moderator)
God I love Capitalism lol
Image


And here is your socialism as everyone is welcome to use this! I will start testing immediately. If this works, this is a HUGE THANK YOU and please PM me as to what paypal address to send payment to!

Thanks,
Roman

EDIT: Security Essentials Detected a trojan in the unimg.exe file?
Image


EDIT: How do you actually "mount" them in linux? That is what I couldn't figure out. What command do you use to actually do the mounting?
 
#6 · (Edited by Moderator)
Exactly as FezzFest said. Also you can easily mount them on-device, and edit the images, and it's actually easier there (well, through ADB for sure - as the device has the target UIDs and GUIDs, plus all the commands can be directly tested out). Then when you're finished,
Code:
umount <mount-point>
and retrieve the final image.

In case of ICS it will be slightly different though. There will be no BOOTFS and ROOTFS and RECOVERYFS, instead there will be BOOTLOADER (same FAT16 partition, but instead of kernel bImage, a u-boot binary is placed there), ENVIRONMENT (u-boot's boot parameters, DO NOT MODIFY), BOOT (standard Android bootimg format), and RECOVERY (standard Android bootimg format).

With ICS, it is possible to use DSIXDA's kitchen to extract the image files, and create a proper, CWM-flashable ROM. All you need to do is to rename the SYSTEM RFSFAT16 image to system.img and the BOOT RFSFAT to boot.img, then handle them as a usual ext4/bootimg pair. If you want me I'll upload one (stock Aurora ICS, or whatever you prefer, given that I have most A10 firmware images), but you'll need CWM for that to flash.

To install CWM (well, with ICS), simply download the latest image from fun_'s thread at XDA, and replace the RECOVERY image inside the work folder, then repack. After flashing that firmware, you'll have CWM by default.

EDIT:

Finished ICS version, with proper layout, etc. It generates validation files too.
The layout is based on the Aurora ICS firmware, so any difference to that will result in a script parsing error.

This release shares the same licensing of the GB version.
 

Attachments

#7 · (Edited by Moderator)
Awesome, let me try to mount this on my Linux vbox (I am not quite sure how to do it via ADB on the actual device...
Image
...perhaps a bit more explanation? I have some linux experience (mostly using Ubuntu Server to Run Snort and Squid) but just consider me a noob
Image
) and make the image modifications and then repack the image.

Cheers,

Roman

It I test, it works, your paid
Image


EDIT: So when I try to mount I run this command: "sudo mount -t ext4 /home/roman/Desktop/work/RSFAT16_LSYSTEMFS_000000 /home/roman/Desktop/elf

and I get this error:

mount: /home/roman/Desktop/work/RSFAT16_LSYSTEMFS_000000 is not a block device (maybe try '-o loop'?)

GOT IT
Image


I added -o loop to the end... duh...
 
#8 ·
Awesome, let me try to mount this on my Linux vbox (I am not quite sure how to do it via ADB on the actual device...
Image
...perhaps a bit more explanation? I have some linux experience (mostly using Ubuntu Server to Run Snort and Squid) but just consider me a noob
Image
) and make the image modifications and then repack the image.

Cheers,

Roman

It I test, it works, your paid
Image
Oh, ADB beginner
Image
No worries!
I hope you got the Android SDK installed, if not, follow this:
http://forum.xda-developers.com/showthread.php?t=1152148

You don't need to do Step 3 or any further.
BUT, instead, go to System Settings (right click Computer in Start Menu and select Properties), go to Advanced System Settings on the left, then Environment Variables. Add your sdk\tools and sdk\platform-tools paths to the PATH variable (bottom box, edit the Path line, and add the whole path, like, C:\android-sdk-windows\tools;C:\android-sdk-windows\platform-tools; to the end, remember, separate the entries, separation character is ";"). After that, enable USB debugging on your tab, and in a command line, type "adb shell". You'll get into a familiar unix shell, where you can do anything. That shell is your device's shell, you can remotely do anything with it. Pushing files is easy too: "adb push [local path to file] [where you want that file to be on device]". Pulling a file from the device is the same: "adb pull [remote file on device]" -> this will pull to your local directory of the Command Line. "adb remount" basically remounts /system rw, so you can do changes there too. That's all for now
Image
 
#10 ·
Yup.
This way you can edit your scripts a bit (to write into something like /system2, and mount the image there), and use them, then you have a whole image edited.
Beware though, thanks to Ainol going more AOSP, it is not possible to edit initramfs (files in /, like init.rc), as it's a gzipped cpio container, and not mounted directly on boot.
 
#11 ·
I was wanting to modify the /data/app and /data/data folders... Where would I do that?
 
#13 ·
Okay, so I tried to repack it into an image file and here is how it went down:

E:\Users\Roman\Desktop\ImageSuite>repack_img.bat Novo7Elf_Android_2.3_FirmwareT
NT.img
Deleted file - E:\Users\Roman\Desktop\ImageSuite\work\RFSFAT16_VBOOTFS_00000000

Deleted file - E:\Users\Roman\Desktop\ImageSuite\work\RFSFAT16_VRECOVERYFS_0000

Deleted file - E:\Users\Roman\Desktop\ImageSuite\work\RFSFAT16_VROOTFS_00000000

Deleted file - E:\Users\Roman\Desktop\ImageSuite\work\RFSFAT16_VSYSTEMFS_000000

E:\Users\Roman\Desktop\ImageSuite\dragon\AWPluginvector.dllE:\Users\Roman\Desk
top\ImageSuiteBuildImg 0

E:\Users\Roman\Desktop\ImageSuite>

It did output an image file but Livesuite would not flash it
Image
 
#21 ·
I'm basing all my work on the tools provided by Ainol (they can create valid, flashable images, murphy666 used that to make his images). But for some weird reason, with the almost exact same setup, mine generates a non-working image, what LiveSuite drops back, as "Invalid Image" (Momo released the latest LiveSuitPack, 1.0.9, what has proper english interface, plus a lot more debugging, it tells me exactly what's the problem, "invalid image"). I'm thinking there might be some signature stuff involved. This is more than possible, as the PhoenixUSBPro tool takes a key file too. Stock images can be flashed with that key, non-stock ones can not be.
 
#24 ·
Thanks for continuing to dig on this
Image
.
 
#27 ·
Thanks to FezzFest's discoveries, I finished up a working ICS and GB combined ImageSuite, what can make flashable ICS and GB firmwares.
Big thanks goes to FezzFest (as mentioned) as he made the discovery that unimg.exe can actually reverse the process, thus create a proper image.

Usage:
- Use extract_img.bat [imagefile] to extract the image
- Modify what you want (RFSFAT16 images mostly)
- Use the repacker bats: repack_[version].bat [outimage]
 

Attachments

#28 ·
Awesome, round 2
Image
, I am going to make a go of it and see what happens!

-Roman
 
#31 ·
Hi, could you please tell me what could I change to an stock ICS ROM for the Novo 7 Avdanced, to make touchscreen work in an OEM novo 7 Advanced? What are the changeable parameters to configure the touchscreen drivers? Every ROM I try works but the touch system is inverted. I'm receiving a GB original ROM for my device, could I look for the driver info in this ROM and then apply it to the Ainol Official ICS ROM???

Thank you for your big effort.
 
#32 ·
My guess is you would have to have both Image files. You would pull the appropriate drivers from the one and put them in the other. You would have to unpack both and repack both using this tool. The nice thing is that at least you wouldn't have to compile everything from scratch and can now (thanks to all the hard work that has been done on here by Ainolmodder and others) instead modify existing known-good firmware.

Cheers,

Roman
 
#33 · (Edited by Moderator)
OKAY - PAID! I did the full $65 even though I haven't tested with an ICS image. I hope you will be around though in case I need more help with it lol.

Also, this whole "bounty" system worked delightfully well and as I encounter more issues and problems I foresee paying out more money to forum users like yourself who are willing to help. All for money motivation lol
Image


Cheers and thanks a ton!
Image


Roman
 
#36 ·
Ran into an issue with a Ployer Momo 9 image. I am working on the /system file after having extracted the image. I mounted the file in Linux. So far so good. Then I run into this problem. If I delete out apps... it doesn't free up space. I can delete 70 MB worth of apps and the free space does not change. This is a problem when there is only 53 MB available to begin with
Image
. Any thoughts?

Mount -t ext4 /somefolder/file someotherfolder/folder/ -o loop

that is the command i am using to mount...

Thanks,

Roman
 
#40 ·
This is outstanding! Can't wait to see some mashups on here of different ROMS. Guess this means someone could release a better version of ICS for the Momo9 before Ployer releases one toward the end of the month... Now it's just a matter of touchscreen drivers on most devices. Haven't tried it yet, but I will eventually.
 
#44 ·
I am not able to mount an ICS image for some reason?
 
#45 ·
figured it out on my own
Image
. Finally found some description and a download of the simg2img tool!
Image