Update ROM manually with OTA.zip, what to do with .p files - HTC One X

Hi all,
I've extracted rom from 2.17.401.2 ruu with dsixda kitchen and downloaded ota.zip 3.09.401.100. I want to update my rom with files from ota.zip. So i guess i have to do this? :
* copy and replace all files from ota.zip/system to working/system
* adding/replacing file contents from ota.zip/patch/system to working/system excisting files. (I can't find anything about what to do with .p files,)
* copy and replace boot.img from ota/zip/firmware to working/
* let kitchen create a updater script and update binary.
So i'm looking for any hints or solutions for these .p files and confirmation for these steps ( and/or adding missing parts)
Kind regards l3inky

bump

l3inky said:
Hi all,
I've extracted rom from 2.17.401.2 ruu with dsixda kitchen and downloaded ota.zip 3.09.401.100. I want to update my rom with files from ota.zip. So i guess i have to do this? :
* copy and replace all files from ota.zip/system to working/system
* adding/replacing file contents from ota.zip/patch/system to working/system excisting files. (I can't find anything about what to do with .p files,)
* copy and replace boot.img from ota/zip/firmware to working/
* let kitchen create a updater script and update binary.
So i'm looking for any hints or solutions for these .p files and confirmation for these steps ( and/or adding missing parts)
Kind regards l3inky
Click to expand...
Click to collapse
.p file means path file
.p file + old file = new file

I want to try this method to update from a OTA.zip too, please anyone confirm or correct this method. My situation: Lenovo p1ma40 with superSu, busybox, and Stock recovery (i keep stock recovery for update ota but turn out it still cant update).

Related

[How to] Rom cooking

Original post:
Hello,
I am new to android but not to linux. I used to tweak my winmo phone rom.
I have backed up my device with nandroid. I just need some explanations:
- why isn't the radio extracted?
- how can I "extract" does .img files to modify and then rebuild them?
I found some informations of what the .img files contain here: ROM Partitions it should be the same for Hero
I have found some informations on how to push updates to the rom by looking at modaco updates. It seems quite simple to delete/copy files on the hero rom using an update-sript file. I am however curious about the RSA cert and if some files need to be signed.
Any information welcomed.
Regards
Click to expand...
Click to collapse
How to
Extract NAND image files
To extract .img files, I have found unyaffs from http://code.google.com/p/unyaffs/ I have compiled it under ubuntu 64 (attached). Unyaffs works on system.img but on no other .img file
To extract boot.img use attached extract-kernel.pl and extract-ramdisk.pl
# extract-kernel.pl boot.img
# extract-ramdisk.pl boot.img
Should work for recovery.img but haven't tried as custom recovery images on the forum are great.
Rebuild system.img
Seems you just need "to loopback mount an image on your linux box and format it with YAFFS".
But it is useless as because Hero's SPL does not allow flashing system.img directly. You should use an update.zip package for that. (read below)
Rebuild boot.img
After extracting your boot.img using attached extract-*.pl and tweaking it, in same folder run:
# mkbootfs boot.img-ramdisk | gzip > ramdisk-boot
# mkbootimg --kernel boot.img-kernel --ramdisk ramdisk-boot --cmdline "no_console_suspend=1 console=null" -o newBoot.img --base 0x19200000
Creating an update.zip package
Creating an update.zip package is quite easy in fact. For example, to add a (valid) test.apk package to your rom:
- create an empty folder <workdir>
- create folder structure for test.apk (<workdir>/system/app) and copy the test.apk
- create folder structure for update-script (<workdir>/META-INF/com/google/android)
- edit <workdir>/META-INF/com/google/android/update-script
- put in it:
Code:
show_progress 0.1 0
copy_dir PACKAGE:system SYSTEM:
set_perm_recursive 0 0 0755 0644 SYSTEM:app
show_progress 0.1 10
- compress the <workdir> content to zip (not the <workdir> folder itself)
Now you are going to sign the zip file. Download attached testsign.zip and copy it in your <SDK>/tools folder. Extract it here. It should create a sign subfolder with a testsign.jar file in it.
Then, from <workdir> folder, do:
java -classpath <SDK>/tools/sign/testsign.jar" testsign file.zip file-signed.zip
Ok, now your zip file is ready to be deployed using cyanogen recovery image.
To find more command to use in update-script, look at other's.
Modify .apk package
Seems it is easy to uncompress an .apk package (zip) an to modify files in it and then compress it. But after all: you must sign it like update.zip packages.
ODEX files
- What are those Odex files? Answer.
- How to get rid of them?
Odex files depend on framework they are made for. To deodex an odex file use that how to
Then you may create a classes.dex file by executing the smali program on the "out" folder. You then rename it to classes.dex and add it to the .apk.
- How to create them?
Use dexopt-wrapper on device.
Porting an other device's rom
Well, that part is easy
- extract the system.img
- extract boot.img
- replace boot.img-kernel with the one from your stock Hero rom one.
- rebuild boot.img
- build update.zip package (look someone's hero custom rom to see how to do it)
- sign and flash
It should run place and make calls but probably won't have Wifi, BT, trackball support. If you make those work: tell me, but I think we should wait to be able to compile a 2.6.29 kernel to have those.
Tools
Androsign script (linux)
I wrote that androsign script to quick sign zip files. Just put it in your <SDK>/tools folder, then chmod +x. If you have put the tools folder in your PATH, you can call it directly like this:
androsign /dev/folder1/folder2/update.zip (or any zip/apk file)
It will output an update-signed.zip (or app-signed.apk etc) in the same folder than original file was in.
Notes
Note1: thanks
Thanks to every guy that helped me found all that.
Note1: sharing
I searched for hours, so I am more than happy to share it to save someone's time. I am just disappointed than some people here do not have that spirit: I could have use those hours for development instead of research...
Note3: corrections
So, if you found anything incorrect, would like to supply more informations or want to correct my bad english: just PM me.
To find
- how to dump radio from device
- how to build a custom hero kernel (waiting for HTC sources)
To come
How to prepare your own kitchen and useful scripts (linux)
gecka said:
I am new to android but not to linux.
Click to expand...
Click to collapse
Same here. I do lots of tweeking on my linux machine, so i know quite a lot of linux. If there would be anyone to answer those questions by gecka, I might start tweeking the rom (maybe someday cook one up)
Best regards
Hello,
First post edited, but still some ignorances... Please share if you know anything.
Best regards
unpack and pack boot.img and recovery.img
First you need utilities such as mkbootfs and mkbootimg. maybe you can find them online (i can upload them later compiled for linux x86-64) but i suggest you download android source (http://source.android.com) and do a generic make. In this way you have these and other utilities(tools to pack system.img too, but if you haven't an engineering bootloader you can't flash it directly) in /out/host/... (it's better if you add this in your PATH)
To unpack and pack boot and recovery, read here:
http://forum.xda-developers.com/showthread.php?t=443994
or here:
http://android-dls.com/wiki/index.php?title=HOWTO:_Unpack,_Edit,_and_Re-Pack_Boot_Images
...or...
(I have attached extract-kernel and extract-ramdisk scripts from JF build environment) :
to unpack (boot.img or recovery.img, i'm writing the commands with boot.img):
Code:
extract-kernel boot.img
extract-ramdisk boot.img
at this point you have
boot.img-kernel
boot.img-ramdisk
to repack (boot.img or recovery.img):
For hero you need to specify the base address because it's different (0x19200000). For more information: http://forum.xda-developers.com/showthread.php?t=541522.
Code:
mkbootfs boot.img-ramdisk | gzip > ramdisk-boot
mkbootimg --kernel boot.img-kernel --ramdisk ramdisk-boot --cmdline "no_console_suspend=1 console=null" -o newBoot.img --base 0x19200000
Useful resources for android modding are the dream forums (most of the concepts/hacks works for hero too):
http://forum.xda-developers.com/forumdisplay.php?f=448
(informative thread here: http://forum.xda-developers.com/showthread.php?t=519523)
note: mkbootimg with --base support is in donut and master (or find the patch on gerrit and apply it to cupcake)
First of all, the reason you cant unyaffs anything other than system.img is because they aren't YAFFS images. boot/recovery is kernel+initrd like in any normal linux bootimage scenario (see more below).
Tofind
- how to dump radio from device
Click to expand...
Click to collapse
Haven't gotten into that myself yet, but I know modaco posted an update.zip with radio image included on this very forum. Look for it.
- how to extract NAND images other than system.img
Click to expand...
Click to collapse
http://forum.xda-developers.com/showthread.php?t=443994
- rebuild NAND images such as system.img
Click to expand...
Click to collapse
This isn't hard, just loopback mount an image on your linux box and format it with YAFFS.
Building a custom kernel and recovery binary
HTC hasn't yet released the changes they have made to the hero/dream/magic kernels, 32A board, so you can't just compile a kernel from the AOSP. I haven't tried it yet but this patch might work on hero too:
http://forum.xda-developers.com/showthread.php?t=548061
EDIT: HTC Sources for dream and magic at http://developer.htc.com
For building a custom recovery, it's better if you use cyanogen's recovery code, found in his git : github.com/cyanogen, because it already has menus for nandroid and other tools, but you can use the recovery code from AOSP too (cyanogen's one is a patched version with a lot more features, http://forum.xda-developers.com/showthread.php?t=523558). To make a custom recovery you need to change the recovery binary (because the press event of the hero trackball has a different keycode, 191), the kernel and the init scripts. Actually i don't remember what else I've changed to make cm's recovery working with hero (the recovery that we are actually using here), I'm at work now, but i'll check later and post more details, or you can just unpack the recovery and see the changes .
First post updated.
Nandroid only backs up the partitions in the main storage nand, but radio and spl are flashed to the radio's own nand flash. Whether it's possible to dump it or not I don't know, but honestly, I don't see why you'd want to. Radio images are available through RUU's and I don't think editing would be an easy task
jubeh said:
Nandroid only backs up the partitions in the main storage nand, but radio and spl are flashed to the radio's own nand flash. Whether it's possible to dump it or not I don't know, but honestly, I don't see why you'd want to. Radio images are available through RUU's and I don't think editing would be an easy task
Click to expand...
Click to collapse
Sometimes, new radio images appear on new phones. That is why I am looking on a way to extract it.
very useful thread.
Very nice tutorial, thank you!
could you please specify a bit more on how to clone from android's git and then build the mkbootimg and mkbootfs (just make, right)? I tried and I keep getting a "fatal:server dumped connection" error
Are we able to modify an official ROM (also for hero). Which shows up in RUU as INFOsignature checking... failed. Am I able to change the kernel and make it work?
jubeh said:
could you please specify a bit more on how to clone from android's git and then build the mkbootimg and mkbootfs (just make, right)? I tried and I keep getting a "fatal:server dumped connection" error
Click to expand...
Click to collapse
What command do you use?
In fact i won't be able to explain you better than that page: http://source.android.com/download
Following that how to, you'll be able to sync an android branch You can learn more about git, branches and more here (Repo and Git resources)
The sync is long (2.9Go). Then, to build mkbootimg and mkbootfs, you should do a generic build of android going to source folder and issuing the 'make' command.
All that will be part of my upcoming "How to prepare your own kitchen and useful scripts".
awsy44 said:
Are we able to modify an official ROM (also for hero). Which shows up in RUU as INFOsignature checking... failed. Am I able to change the kernel and make it work?
Click to expand...
Click to collapse
Well, to grep the system from a windows RUU exe file you should launch it and then look in your user temporary folder for a rom.zip file in a {uid} subfolder. It contains the system and boot img files.
You then need to make an update.zip package from them. Have a look to someone's hero custom rom and to it's update-script to see how it is achieved. My 'How to' gives you all you need to understand update.zip packages and to extract system.img.
If you are porting a Hero rom, no need to change the kernel.
Regards
Well, to grep the system from a windows RUU exe file you should launch it and then look in your user temporary folder for a rom.zip file in a {uid} subfolder. It contains the system and boot img files.
You then need to make an update.zip package from them. Have a look to someone's hero custom rom and to it's update-script to see how it is achieved. My 'How to' gives you all you need to understand update.zip packages and to extract system.img.
If you are porting a Hero rom, no need to change the kernel.
Regards
Click to expand...
Click to collapse
Thanks so much for this amazing information, however how do i stop getting hit with the infosignature failed error? is that the kernel or the hboot? it says 12 signature verify error.
Oh, I do have the source and I am running my own donut build on my dream with some of my spice, but the problem I was having was cloning that exact project (mkbootimg) from android.git.kernel.org using git, but when I read what you said, I remembered that when you make the build, it also compiles several tools and i overlooked checking the out folder for it, kind of dumb on my part since I had already pulled the fastboot tool from that build and added it to my own bin, i guess mkbootimg and mkbootfs should be there too, right?
i tried running androsign and got this error
Code:
[email protected]:~/android/dev/sdk/tools$ ./androsign META-INF.zip
Exception in thread "main" java.lang.NoClassDefFoundError: testsign
Failed!
[email protected]:~/android/dev/sdk/tools$
if i use a ROM of one device on an other different device, I think I must build a kernel on my own, is that correct?
but what config should I use? a config from my current running ROM? then I think I must make it suitable for new ROM, what options should I care about?
for example, if I want to run a AOSP 2.01 ROM ( system.img) on a Magic 32A device with SPL 1.76, and now I am running a SenseUI ROM which kernel is 2.6.27, I think I should build a 2.6.29 kernel from the git tree, and ensure it will work with camera/bt/wifi/trackball of my device properly first .
how can I make this step successful?
other hand, the dynamic lib files(.so) with the system.img can be incorrect. so, I may need to build them too for pairing with the kernel I built in previous step. I think applications will work properly because they only care about if the interfaces of kernel and lib is correct. for that, also there some config job (like build.prop, etc) to do, is there a list of all of these jobs? and what values can I refer to? the original ROM (Magic 32A SPL 1.76 working ROM here) ?
am I right? what should i do and what are in those steps? are there some doucments I can read from?
Thanks for the good summary. Just one question, where did testsign.jar come from? I'd like to get the source. Thanks!
JackZero said:
Thanks for the good summary. Just one question, where did testsign.jar come from? I'd like to get the source. Thanks!
Click to expand...
Click to collapse
Read this !
http://www.androiddevelopment.org/tag/apk/
;-)

[10 JAN][SCRIPT]IMG2CWM Converter 1.2.2

birkoffsjunk's HD2 IMG2CWM Converter​
A simple windows batch script to convert DAF builds to Clockwork Recovery ZIPs.
Originally designed for MDJ's Gingerbread NAND and posted here. Results may vary!
Instructions​
Download DAF based NAND ROM
Download & Extract this script
Place Boot.img & System.img into the 'in' folder
Double click 'RunMe.cmd' (not as admin)
Manually make any changes you wish (when prompted)
Once done, update.zip will be in the same location as 'RunMe.cmd'
META-INF Info​How to: Create Clockwork Recovery flash files
How to Create Android Update Zip Package
An updated updater-script (META-INF\com\google\android\updater-script) is required for various other Builds.
Downloads​v1 >>> here <<<
v1.1 attached (7z changed to 9.20 (ghostkid2010) & renamed out folder to temp)
v1.2 attached (Added error checking & support for system.img only)
v1.2.1 attached (Specified xcopy path & removed old 7z.exe)
v1.2.2 >>> here <<< (arif-ali's linux bash script)
Addons​arif-ali's NexusHD2-Gingerbread_V2.0 updater-script
TODO​
Add error checking
Add support for system.img only
META-INF Information
Most importantly keep it simple
License​BSD License for the script not the tools
7zip is GNU LGPL
unyaffs is GNU GPL v2
same post from MDJ
Your script works great extracting the .img file. But it's not able to create zip file. Let me edit your script with the missing file/info.
Download this file and put in folder tools;
http://downloads.sourceforge.net/sevenzip/7za920.zip
change this line;
"%LOC%\tools\7z.exe" a "%LOC%\update.zip" "%LOC%\out\*"
to;
"%LOC%\tools\7za.exe" a "%LOC%\update.zip" "%LOC%\out\*"
and it should work. it will create a zip file.
Enjoy
how it works?
How does it use? What things do I have to put in the folder "IN"?
sathara said:
how it works?
Click to expand...
Click to collapse
let you extract system.img and boot.img from android build, once you extracted all the fill, it will put all the file into a zip file so you can load via CWM
VuNhatVan said:
How does it use? What things do I have to put in the folder "IN"?
Click to expand...
Click to collapse
boot.img & system.img
It has a function to edit apk. But how do you use that function and where do you add your own apk?
10507 said:
It has a function to edit apk. But how do you use that function and where do you add your own apk?
Click to expand...
Click to collapse
it does not have a function to edit apk (correct me if i'm wrong). once you extracted all the files, go into app and add your apk there.
ghostkid2010 said:
let you extract system.img and boot.img from android build, once you extracted all the fill, it will put all the file into a zip file so you can load via CWM
Click to expand...
Click to collapse
In the Build MDJ_FroYo_Revolution_v._2.2_NAND, there is only system.img, no boot.img. How could I have boot.img?
what a usefull tool, thank you!!
VuNhatVan said:
In the Build MDJ_FroYo_Revolution_v._2.2_NAND, there is only system.img, no boot.img. How could I have boot.img?
Click to expand...
Click to collapse
If there's no boot.img, it should still work. all the boot file is already in the system.img
Let me download that build and I can tell you for sure on how to do it.. I smell that a new version of this script will be out..
Yeah it's very much a work in progress, please feel free to attach updated versions... I'll add them to the first post with accreditation
ghostkid2010 said:
If there's no boot.img, it should still work. all the boot file is already in the system.img
Let me download that build and I can tell you for sure on how to do it.. I smell that a new version of this script will be out..
Click to expand...
Click to collapse
Is it work if there is only system.img?
drizztzou said:
Is it work if there is only system.img?
Click to expand...
Click to collapse
with a little bit of editing yes
ghostkid2010 said:
same post from MDJ
Your script works great extracting the .img file. But it's not able to create zip file. Let me edit your script with the missing file/info.
Download this file and put in folder tools;
http://downloads.sourceforge.net/sevenzip/7za920.zip
change this line;
"%LOC%\tools\7z.exe" a "%LOC%\update.zip" "%LOC%\out\*"
to;
"%LOC%\tools\7za.exe" a "%LOC%\update.zip" "%LOC%\out\*"
and it should work. it will create a zip file.
Enjoy
Click to expand...
Click to collapse
can u more detail about "change this line" location ? u mean u have done it already or i have to do it myself ? which file should i edit ?
ikkon said:
what a usefull tool, thank you!!
Click to expand...
Click to collapse
YEAH! Your not kidding man...i was stoked while playing with it...Id also like to know from here...Is there a similar script for SD->NAND bc my favbe ROM has always been CORECells builds of EVO/HD based...Gave me the best batttery of all SD except for the now current NAND builds. So i figure maybe itll be even better on NAND! TAHNKS again so much for your pos t BIRKOFF! ANYone know of the SD->NAND question?
psuser said:
can u more detail about "change this line" location ? u mean u have done it already or i have to do it myself ? which file should i edit ?
Click to expand...
Click to collapse
YOU have to add an "a" after the z in 7z WITHIN the RUNME script...you have to right click it and open with NOTEPAD on PC and add the "a"
psuser said:
can u more detail about "change this line" location ? u mean u have done it already or i have to do it myself ? which file should i edit ?
Click to expand...
Click to collapse
download the new version on page 1, its fixed
Really cool idea!! I gave it a shot, it just reboots after the MAGLDR screen showing the HTC logo over and over until you boot back into recovery. It flashed fine but just wouldn't boot.
VuNhatVan said:
In the Build MDJ_FroYo_Revolution_v._2.2_NAND, there is only system.img, no boot.img. How could I have boot.img?
Click to expand...
Click to collapse
Use the following "RunMetest.bat"
http://hotfile.com/dl/95408413/0c085bd/RunMetest.rar.html
I tested with different build, system.img only, both boot.img and system.img, it was able to create a zip with all the file.
I'm not uploading the whole folder since this was started by birkoffsjunk, I'm just helping
Test it out

[Q] how to create firmware.zip out of OTA

Hello fellow earthling!
Acc. to my carrier, the JB OTA is gonna hit me soon. (Finally!) So I've been thinking about going back to stock in order to download and save the OTA file. (Which is going to be saved in /cache, right?)
=> My question:
From this update-file, how do I create a firmware.zip-file, like the one aviable on the CID thread?
Greetings from Switzerland,
BigFatTony
The OTA zip file contains the firmware.zip file so you just need to extract it.
people claim it gets downloaded in the Download(s) folder on your SD, or on the root of the SD (and is deleted if you apply it)
the OTA file should look something like this : OTA_ENDEAVOR_U....blablablbalblablablablab.zip
to extract the firmware just copy the ota file and open it on your pc and you will find firmware.zip if its included.
//SOLVED//
The OTA zip file contains the firmware.zip file so you just need to extract it.
Click to expand...
Click to collapse
Thank you very much! It's so simple, it's boring.
Thanks to you, too, Vcek. I'm sure I'll find it.
Have a nice evening.

[NEED HELP] How to edit the GSI or .img Files for Fixing Bugs

Okay,
I've taken Erfan's GSI file to make it bugless for our Device..
When I went to edit and modify that img file (A GSI File),It behaved pretty well..
Then, When I've Repacked the image file and Went to flash the file(Ofcoused,Flashed Successfully) , It behaved an odd way!,Well It booted to the Bootloader after showing the Logo...(In just 3 seconds)
I would like to ask you guys, Where did this go wrong
I would be thankful to you
Yours Obediently,
Shravan Vadeghar
Man ... Do patch with files ... if you make zip , you can flash zip with files to repleace incorrect files to correct files ...
That was my patch for build.prop . You must modify the meta-inf to working correct , and repleace/delete build.prop in my zip This zip is only sample , and is only for twrp .
I was talking about the .img file
I unpacked with AutoTool and repacked. And my device goes to bootloader too. I guess some repack tools have problems. Or maybe we are doing something wrong with file_contexts.
Edit: I think problem is with file permissions. Make all folders chmod 755 and make files and apk and such chmod 644. Best of luck.

Can't seem to patch stock rom using magisk v23, do I have the right file? What am I doing wrong?

I'm new to rooting and I'm trying to root a Pixel 3a XL I've just inherited. Following steps from a tutorial, I've unlocked the bootloader and installed Magisk v23.0 on the phone, and I copied on the internal storage all the files from the zip file I downloaded from Google that are supposed to be the stock ROM for my build #. There are 2 .img files in there: bootloader-bonito-b4s4-0.3-7062600.img and radio-bonito-g670-00105-210113-b-7078968.img (there are a few scripts and another zip file in there too). The first one seems to be the boot file (Ramdisk is YES in Magisk), but when I try patching it (Magisk Install > Select and Patch a File > I choose the file via my file manager), I get the following error messages: 'Unsupported/Unknown image format' 'Installation failed'. The same thing happens if I try the other image file.
I obviously don't want to trial and error too much patching a rom that I'm going to flash my phone with. Any idea what I'm doing wrong there? Thank you!
EDIT: I had also done a checksum of the archive I downloaded from Google and it all lined up, so that shouldn't be the issue.
you need to patch the kernel. inside the zip is a second zip. in there is a file boot.img. that is the kernel. extract and copy it to your phone, then you can patch it, copy it back to your fastboot capable machine, and flash
ei: boot.img within a .zip within a .zip
hp420 said:
you need to patch the kernel. inside the zip is a second zip. in there is a file boot.img. that is the kernel. extract and copy it to your phone, then you can patch it, copy it back to your fastboot capable machine, and flash
ei: boot.img within a .zip within a .zip
Click to expand...
Click to collapse
It worked, thank you so much!

Categories

Resources