How can one go about modifying an OTA update? I see there is an updater-script file in-particular that checks the ckecksums of system files before loading the OTA... can this file be modified and what would be the procedure? Thanks in advance.
I'd like to modify the checksum values listed in this file to have it accept certain modified system files... What is used to calculate the checksum values?
Should be in Q&A. Reported.
Moved to Q and A
I found that sha-1 is used to create the checksums values in the updater-script file. In the assert check_patch lines the first value is the new file and the last value is original file. In the assert apply_patch lines same is true except middle value is size of new file in bytes.
Beyond this it looks as if the CERT.RSA, CERT.SF, and MANIFEST.MF files in the META-INF folder of your update.zip may be the next obstacle... I know this thanks to jhankinson thread on the topic.
I don't know if jhankinsons solution to simply deleting these and resigning would work on the Bionic? (I'm total noob in this regard.)
Perhaps we can edit the checksum values in these files. I found that in the MANIFEST.MF file checksums are simply SHA-1-BASE64.
Anyone know what is used for the values in the CERT.SF file? (it says it's sha1-digest but i'm using fsum-frontend with no luck getting a match)
And would I need to do anything with the CERT.RSA file? (Again total noob to how these are signed)
Related
Hey, looking for a little bit of input here...
(Made the ROM from this tutorial)
Code:
http://forum.xda-developers.com/showthread.php?t=566235
Everytime I try to flash it, it throws an error.
Code:
E:Can't symlink /system/bin/bugreport
E:Failure at line 7: symlink dumpstate SYSTEM:bin/bugreport
Installation Aborted
Any help would be appreciated.
Of course if you already have Cygwin installed with the GCC packages, you can just compile it yourself. Then also
if you comment out the line 67 to "// symlink(oh->alias, full_path_name);"
then it will not create the copies of the symbolic link file, and you will not have to worry about deleting duplicate
symbolic link files later.
Click to expand...
Click to collapse
Did you do that?
There were a few other steps in the guide that nullified that if you chose not to. (from what I got out of it anyway?)
Code:
4.
Now we just need to clean up some items. Since the system.img is a linux file system, it has symbolic
links built into it, but when we extracted it, it just created duplicate files, if you used the prebuilt unyaffs.exe.
So we can just delete the duplicates and have a script recreate the symlink on install.
So we need to delete some extra files from the system\bin directory.
Run the attached DeleteExtras.bat file from the same directory where system.img is in.
If you notice, all the files it deletes are 28 byte files, and if you open them in notepad only contain:
"!<symlink>toolbox..."
And we will remake the symbolic link when it is installed.
You then, later, input the update-script file that is provided into the META-INF/com/google/android to re-establish the symbolic links.
Edit: Replaced the update-script file to see if that was causing the error. Resigning and flashing now.
Edit 2: Nope, still throwing the error at me.
Edit 3: Compiled unyaffs so that it wouldn't create symbolic links. Ran through the steps again, and, again, it threw the same error :/
hey guys.. i been looking around everywhere to try and get a good explanation of the files inside the rom.zip... like what the files are in the META-INF? and what are all the files inside the system folder? how do i know what to change and what not to change.. lol sorry but if anyone could possibly give me a more in depth explanation i would appreciate it greatly!!!
i dont have answer but i would also like to know this... since im just trying to learn how be a dev...
lol seems no one can help us... but this did help a little... http://forum.androidcentral.com/hacking/6037-general-rom-faq.html
Hi
The files in META-INF are just that, meta files they contain information about the files that are part of the rom.. specifically CERT.* and MANIFEST.MF contain the SHA1 hash of each file in the rom when you flash the rom your recovery environment hashes each file and checks it against the manifest. These files are created during the signing process.
META-INF/com/google/android/updater-script tells the recovery environment what to actually do. such as format /system then extract system to /system on the phone, set permissions for each file and the correct kernel to your boot.img then reflash it
the files in /system are the actual operating system and are in a UNIX-ish layout
executable's in bin & xbin, system apks in app, configuration files in etc, libraries in lib, ringtones and bootanim in media
rattking said:
Hi
The files in META-INF are just that, meta files they contain information about the files that are part of the rom.. specifically CERT.* and MANIFEST.MF contain the SHA1 hash of each file in the rom when you flash the rom your recovery environment hashes each file and checks it against the manifest. These files are created during the signing process.
META-INF/com/google/android/updater-script tells the recovery environment what to actually do. such as format /system then extract system to /system on the phone, set permissions for each file and the correct kernel to your boot.img then reflash it
the files in /system are the actual operating system and are in a UNIX-ish layout
executable's in bin & xbin, system apks in app, configuration files in etc, libraries in lib, ringtones and bootanim in media
Click to expand...
Click to collapse
wow rattking thank you very much!! that was the best description anyone has ever given me!!! lol that was very helpful!! is there a place where you learn this from? or did you just figure it out as you went..?
I have found a similar post but I couldn't find any solution. So, I made a zip that contains my favorite mods for flashing after a factory reset. Some of them need odex files to be deleted. I try to do that with the update-binary file but when I open it with notepad+ I see unrecognisable characters. Could anyone help me? I tried to edit the updater script file but when I flash it the files are not deleted.
For delete single file you should add to updater-script this:
Code:
delete("/system/bin/xxx.odex");
For s iii mini you can use update.zip in attachment. Only edit updater-script for your need.
Delete this!
Hi,
I hope this is the write location for my post.
I have a HTC ONE rooted, android 4.3
I have a problem with my GPS: it doesn't lock any satellite. Reading on forum, I found that the problem may be the setting of gps.conf file in /system/etc.
In fact, checking it, I found that the NTP_SERVER set was for north.america, while I'm in Europe.
I would like to modify or replace it, but I'm experiencing some problem. Using Root Browser it seems to be able to modify it, but after rebooting the device it is exactly the same before the editing. I tried using other editors as ES File Explorer, but when I try to modify the file, it says "read only file system".
It makes me thing that also the other editor is not able to modify the file, since after reboot it is actually un-edited.
What do you think? how can I actually write in file system and actually modify gps.conf?
Thank you in advance
Let me add another detail: I tried to create a new empty file in the same folder with Root Browser. It seems to be able to create it, but after rebooting the device it desappears..so I guess I actually can't modify/write in the file system..
aerosmike said:
Hi,
I hope this is the write location for my post.
I have a HTC ONE rooted, android 4.3
I have a problem with my GPS: it doesn't lock any satellite. Reading on forum, I found that the problem may be the setting of gps.conf file in /system/etc.
In fact, checking it, I found that the NTP_SERVER set was for north.america, while I'm in Europe.
I would like to modify or replace it, but I'm experiencing some problem. Using Root Browser it seems to be able to modify it, but after rebooting the device it is exactly the same before the editing. I tried using other editors as ES File Explorer, but when I try to modify the file, it says "read only file system".
It makes me thing that also the other editor is not able to modify the file, since after reboot it is actually un-edited.
What do you think? how can I actually write in file system and actually modify gps.conf?
Thank you in advance
Let me add another detail: I tried to create a new empty file in the same folder with Root Browser. It seems to be able to create it, but after rebooting the device it desappears..so I guess I actually can't modify/write in the file system..
Click to expand...
Click to collapse
You need an unsecured kernel (/system writable) to write to /system partition of the htc one, not only root.. Otherwise, all changes will be reverted at reboot like you are experiencing.
Kernels for htc one here
And note that modifying/deleting files in /system will probably prevent you to install future ota unless you revert the change you have made. There is a md5 checksum of many files in /system before the ota installs. If the md5 cheksum doesn't match then the ota will not install. This might not apply to the .conf file you want to edit but just in case, make a backup of that file before. So if the next ota fail, you'll know why.
alray said:
You need an unsecured kernel (/system writable) to write to /system partition of the htc one, not only root.. Otherwise, all changes will be reverted at reboot like you are experiencing.
Kernels for htc one here
And note that modifying/deleting files in /system will probably prevent you to install future ota unless you revert the change you have made. There is a md5 checksum of many files in /system before the ota installs. If the md5 cheksum doesn't match then the ota will not install. This might not apply to the .conf file you want to edit but just in case, make a backup of that file before. So if the next ota fail, you'll know why.
Click to expand...
Click to collapse
Thank you very much
APK-Patcher Lite
Flashable Zip Template for Modifying System APKs On-Device
Based on APK-Patcher by @osm0sis​
Information
This is a modified version of APK-Patcher that will delete / inject files into System APK files instead of using a baksmali / apktool method.
The method used here is a similar method used in my ROMs to patch files, where instead of having to have like for example 4 SystemUI files, I only needed to keep the actual files that were changed.
This method could also be used quite easily to apply OTA updates or addons on already pre-modified APK files.
LINK TO GITHUB (STANDARD): https://github.com/djb77/APK-Patcher-Lite
LINK TO GITHUB (MAGISK): https://github.com/djb77/APK-Patcher-Lite_Magisk
Usage
Copy your pre-compiled resource files (including .dex files) to the patch folder, removing the .apk part of the filename (ie: SystemUI)
Create a file in scripts with the same name (ie: SystemUI.sh) if you want to delete any existing files from the APK
Make edits to envvar.sh, and also to extracmd.sh if needed
Properties / Variables (envvar.sh)
banner="";
apklist="";
apkbak=/data/media/0/APK-Backup;
backup=1;
cleanup=1;
banner is the name of your patch zip, usually suggestive of what it does, to be displayed at the beginning of the zip flash. You should include your name/handle here like "by osm0sis @ xda-developers" for credit purposes.
apklist is a string containing the list of APKs to be patched included in the patch zip, separated by spaces between the quotes. Each APK is automatically found recursively in /system, then copied to the working directory to be decompiled and acted on, then copied back to /system.
apkbak is the location to place backups of the untouched APKs in apklist if backup=1 is set.
backup=1 will store backups of the untouched APKs in the location specified in apkbak.
cleanup=0 will keep the zip from removing it's working directory in /tmp/apkpatcher - this can be useful if trying to debug in adb shell whether the patches worked correctly. cleanup=1 is necessary on multi-APK patching zips, so it's recommended each APK to be patched be tested on their own with cleanup=0 before combining into a single zip.
envvar.sh
Modify the envvar.sh to add your banner, apklist, backup and cleanup options
Multiple files can be patched, put a space between the filenames (ie: apklist="file1.apk file2.apk"
extracmd.sh
Modify the extracmd.sh to add any additional commands to be performed at the end of the patching process that aren't patch-related (/data file changes,
scripts/$apkname.sh
fileremove="";
$apkname is the name of the folder that you put your resources files in. Copy scripts_sample.sh and rename it to your APK (ie: SystemUI.sh)
Multiple files can be deleted, put a space between the paths (ie: fileremove="/res/drawable/file1.png /res/drawable/file1.png"
For me returned error bellow
Code:
local entry crc does not match