[TOOL] - Topway TS10 firmware workbench - Android Head-Units

Hi fellows
I'm a kind of newbie in the Android world, but I created a set of shell scripts to work with Topway TS10 Firmware:
---------------------------------------------------------------------------------------------------------------
TS10-Firmware-Workbench​Scripts intended to mount the Topway TS10 Firmware, make modifications and reassemble the firmware They can retrieve the firmware from specified location and after modification, they can put the firmware into another specified location
Files:
1-) config.ini = A file to setup parameters, paths for the original firmware and patched firmware, temp directory to work with firmware files and mount point to edit the firmware
2-) import_original.sh = Retrieves the files .0 .1 .2 and .3 from the location specified in config.ini
3-) import_patched.sh = Retrieves the same files that 'import_original.sh' but from the patched location specified in the config.ini (normally a firmware that you've already patched before)
4-) unpack.sh = Unpack the imported firmware and create the mount moint (as specified in the config.ini file) to work with the firmware
5-) repack.sh = Unmount the modified firmware from the mount point, delete the mount point, split the firmware in files .0 .1 .2 and .3 and move it to the patched directory as specified in config.ini
6-) inject_tweaks.sh = Modify locale, dataroaming and remove (if necessary) the values in ro.fota.device to avoid message "UI unauthorized, please contact the supplier"
7-) inject_mods.sh = This will copy all the contents of the '_mods' folder inside firmware. I.E. I put a 'gps_debug.cfg' inside 'system/etc/' and it will be injected into firmware overwritting the existent
inject_su.sh = This will inject su binary into firmware as a daemon, this is dangerous as the firmware is permanently rooted and the apps don't ask for permissions (they already have the root access) USE AT YOUR OWN RISK
9-) clean_local.sh = This script will unmount the firmware and delete it, it will also delete temporary files. as its name says, it cleans the dir !
External (included) tools:
tools/twt (Topwaytool) forked from https://github.com/mkotyk/topwaytool
_mods folder containing a sample file 'gps_debug.cfg'
N'joy it !
---------------------------------------------------------------------------------------------------------------

News
This will allow you to have root privileges in original firmware, but read VERY CAREFULLY as this method int NOT SAFE at all
At least for me it do the trick as I expected

I'll have my Topway TS10 THEME1 HU in a week and, if I am brave enough, I'll give it a go.

mariodantas said:
News here
https://github.com/mariodantas/TS10-Firmware-Workbench
This will allow you to have root privileges in original firmware, but read VERY CAREFULLY as this method int NOT SAFE at all
At least for me it do the trick as I expected
Click to expand...
Click to collapse
Is this way to root ownice k7 radio that i wish?? TT wow.....

This will ROOT, but everything inside will have ROOT privileges, UNSAFE, but as I said, for me, it did the trick and I'm happy with this !

mariodantas said:
This will ROOT, but everything inside will have ROOT privileges, UNSAFE, but as I said, for me, it did the trick and I'm happy with this !
Click to expand...
Click to collapse
Hello mariodantas.
I'm trying to utilize the project you made to mount firmware and inject su.
I'm a little new to some of this, so any guidance would be grateful.
Question:
How do i know what the mount point should be while using unpack.sh in config.ini?
! Creating _mountpoint folder...
Step 4 of 4 - Mounting ready raw firmware into '_mountpoint/' folder
mount: exec /Library/Filesystems/auto.fs/Contents/Resources/mount_auto for /Users/me/Desktop/TS10-Firmware-Workbench-main/_mountpoint: No such file or directory
mount: /Users/me/Desktop/TS10-Firmware-Workbench-main/_mountpoint failed with 72
READY !!!, you can go into '_mountpoint/' folder.
But _mountpoint folder is empty.

Andason74 said:
Hello mariodantas.
I'm trying to utilize the project you made to mount firmware and inject su.
I'm a little new to some of this, so any guidance would be grateful.
Question:
How do i know what the mount point should be while using unpack.sh in config.ini?
! Creating _mountpoint folder...
Step 4 of 4 - Mounting ready raw firmware into '_mountpoint/' folder
mount: exec /Library/Filesystems/auto.fs/Contents/Resources/mount_auto for /Users/me/Desktop/TS10-Firmware-Workbench-main/_mountpoint: No such file or directory
mount: /Users/me/Desktop/TS10-Firmware-Workbench-main/_mountpoint failed with 72
READY !!!, you can go into '_mountpoint/' folder.
But _mountpoint folder is empty.
Click to expand...
Click to collapse
What is your platform ? OSX ?

mariodantas said:
What is your platform ? OSX ?
Click to expand...
Click to collapse
Yes, OSX. I was checking more last night and maybe the issue is how mac handles the "auto" for file type.

Yes it sould be the mount command for OSX, but i can't help with OSX sorry, maybe you can clone the repo and after find the solution issue a pull request ?

after rooting the firmware doesn't seem to pass the checksum, everything is not working please help me ts10 1.2 ols10. ownice

Hello, have to check what's wrong with my code against 1.2 ols10 firmware, will check tonight and come back ASAP !

Cannot open file patch /init.rc.patch do not such how to fix please

Ok will check tonight !

@binharmani please add this to your config.ini
#Super User Folder
SUPERUSERFOLDER="_ superuser"
Click to expand...
Click to collapse

thank bro tool is ok . amazing good job

Thanks fellow
you can modify the "build.prop" manually after using "unpack.sh" by entering into "_mountpoint", modifying what you need and then repack the file and reflash in your headunit

How to set 775 file build.prop on linux

binharmani said:
How to set 775 file build.prop on linux
Click to expand...
Click to collapse
chmod 0775 build.prop
you should use a command line instead of the interface !

Mario good morning, if possible for you check the metode for change image car on display of ownice K7 ? Image in centrale display is very bad ifnpossible change png image with other car .......?

hello!
i've managed to use your tool, but there is a mention:
i've used it in a ubuntu vm (latest) and the mountpoint directory is empty if i don't run everything as root
repacked ok after this
my question is if i have to add the other files originally found in my original firmware folder with the newly repacked firmware files.
original firmware content (TS10.1.2_20210505.171701_TW1-V2):
a53f244a-9cbf-11ea-bb71-8bb1f7c98e0b.*
a71a8002-9cbf-11ea-b64e-578022b8a84a
ab2e7e2e-9cbf-11ea-bb71-fbb02866c44e
repacked firmware content:
a53f244a-9cbf-11ea-bb71-8bb1f7c98e0b.*

Related

[Q] Making those NAND System.img files

Howdy all,
Just wondering, how are the system.img files made? I have read that if it's a YAFFS image file, that the maximum filesize cannot exceed 128MB. However, I've seen on some NAND HD2 Android builds, the system.img filesize is >128MB.
My question is, what method are you guys using for making the NAND system.img files to flash within MAGLDR? (ie. is it like a ZIP archive with a .img extension on it)
I'm currently working on a remix of a ROM that I use (a hint is in my Sig), and I know that the update.zip method that was used on "true-Android" devices to change ROMs doesn't apply to our MAGLDR method now.
Cheers and I'm sure you'll see another ROM for the HD2 in the coming weeks!
IcedCube.
IcedCube said:
Howdy all,
Just wondering, how are the system.img files made? I have read that if it's a YAFFS image file, that the maximum filesize cannot exceed 128MB. However, I've seen on some NAND HD2 Android builds, the system.img filesize is >128MB.
My question is, what method are you guys using for making the NAND system.img files to flash within MAGLDR? (ie. is it like a ZIP archive with a .img extension on it)
I'm currently working on a remix of a ROM that I use (a hint is in my Sig), and I know that the update.zip method that was used on "true-Android" devices to change ROMs doesn't apply to our MAGLDR method now.
Cheers and I'm sure you'll see another ROM for the HD2 in the coming weeks!
IcedCube.
Click to expand...
Click to collapse
The system.img is a yaffs2image. Google 'compiled windows unyaffs' use that program to take a peak inside the .img. When you're completely ready to make your own .img your gonna need a linux distro or cygwin w/mkyaff2image compiled. However I recomend compiling the mkfs.yaffs2 command if you are using linux. Alternatively you can place the /system/ directory you are trying to make an image on your SD and run that command in the terminal emulator in Android. It should look like this #mkyaffs2image /sdcard/system/ System.img
Hope that helps.
KillaHurtz said:
The system.img is a yaffs2image. Google 'compiled windows unyaffs' use that program to take a peak inside the .img.
Click to expand...
Click to collapse
Does this give you write abilities so that files can be changed out pre-flash?
dharvey4651 said:
Does this give you write abilities so that files can be changed out pre-flash?
Click to expand...
Click to collapse
I think you have to dump them to a folder, then you can change what you want. Then do the yaffs2 cmd and it will package it back up to .img for flashing...
Chris
noellenchris said:
I think you have to dump them to a folder, then you can change what you want. Then do the yaffs2 cmd and it will package it back up to .img for flashing...
Chris
Click to expand...
Click to collapse
I think that a tutorial is in order. Someone who knows how to extract and replace files in a system.img needs to write a short tutorial on how to do it. - A simple step by step on how to decompile a system.img and re-compile it.
I for one would be extremely grateful because I finally worked out a perfect MMS patch and I'd like to be able to easily modify the builds pre-flash.
dharvey4651 said:
I think that a tutorial is in order. Someone who knows how to extract and replace files in a system.img needs to write a short tutorial on how to do it.
I for one would be extremely grateful because I finally worked out a perfect MMS patch and I'd like to be able to easily modify the builds pre-flash.
Click to expand...
Click to collapse
I have been trying to do that all night. I can unpack them but haven't got around to repacking them. For now all I do is install the build and push the patched file that I have and do a AD hardrest in MAGLDR. MMS 300-1024k and all TMO US app works.
dharvey4651 said:
I think that a tutorial is in order. Someone who knows how to extract and replace files in a system.img needs to write a short tutorial on how to do it. - A simple step by step on how to decompile a system.img and re-compile it.
I for one would be extremely grateful because I finally worked out a perfect MMS patch and I'd like to be able to easily modify the builds pre-flash.
Click to expand...
Click to collapse
yeah, it would be very nice if smb can write some tutorial on modifying system.img files
i have been trying to figure this out too!
IcedCube said:
This is IcedCube, the Developer of GingerHD2, a Android 2.3 ROM for your HD2.
Click to expand...
Click to collapse
Thought I should point out that you could really confuse things by using that name...
http://forum.xda-developers.com/showthread.php?t=871387
That's not actually a Gingerbread build - it's just themed to look like one, but still got the same name
hnamanh said:
I have been trying to do that all night. I can unpack them but haven't got around to repacking them. For now all I do is install the build and push the patched file that I have and do a AD hardrest in MAGLDR. MMS 300-1024k and all TMO US app works.
Click to expand...
Click to collapse
Another option is to connect to ADB or Android Commander before going through the initial setup(when it asks you to choose your language) and change the files then - use the PC to reboot the phone, not the phone's built-in reboot. This should take you right back to the setup screen where this time, should show United States localization.
Still a bit too much work. I'd like to be able to patch the build, flash it, and be good to go.
found this but too educated for me
http://android-dls.com/wiki/index.php?title=HOWTO:_Unpack,_Edit,_and_Re-Pack_Boot_Images
sorry i think this one is normal data img.not sure.
well i did say it was too educated for me
Turorial
KillaHurtz said:
The system.img is a yaffs2image. Google 'compiled windows unyaffs' use that program to take a peak inside the .img. When you're completely ready to make your own .img your gonna need a linux distro or cygwin w/mkyaff2image compiled. However I recomend compiling the mkfs.yaffs2 command if you are using linux. Alternatively you can place the /system/ directory you are trying to make an image on your SD and run that command in the terminal emulator in Android. It should look like this #mkyaffs2image /sdcard/system/ System.img
Hope that helps.
Click to expand...
Click to collapse
Windows
-----------------------------------------------------------------------------
Ok, let's start again. If you are using windows, google the said phrase above and you will find the precompiled utility 'unyaffs'.
Place the System.img you want to extract in a new directory with unyaffs.exe & drag the .img onto unyaffs. A command window will open and start extracting the files in the image to that same folder. You can now explore & edit/pull whatever you need to get things going. Once you have it the way you want copt it to your SD/root/ & make a folder for it with an obvious name like "Project" or "Test". Now to get it back into a bootable .img open Terminal Emulator in Android & enter the following
#mkyaffs2image /sdcard/NAMEofFOLDERuCHOSE/ System.img
**alternatively you can do this in windows itself if u have the utility compiled under cygwin or simular.
Linux
-----------------------------------------------------------------------------
Ok, you will need the unyaffs & mkfs.yaffs2 utilities compiled and working 1st off.
mkyaffs2image works to make the image however it fails upon flash with DFT Android Flasher. So I recomend mkfs.yaffs2 & have included it, you will need to place it in /usr/sbin/. If you have trouble copying it open a terminal and run "gksudo nautilus" then copy to the above mentioned directory.
**Now that those utilities are working let's get to work.
open a terminal and run 'unyaffs /home/yourusername/Desktop/targetdirectory/targetimage.img
copy/edit/pull the files you want. When your ready to build the image you are happy with open a terminal and run 'mkfs.yaffs2 /home/yourusername/Desktop/targetdirectory/ System.img'
Now your ready to flash !
System.img & Boot.img Contents
============================================================
System.img contains the entire root/system/ directory in Android
System/
app
bin
etc
fonts
framework
lib
lost+found
media
usr
xbin
build.prop
dmesg.txt
Boot.img contains
Boot/
initrd.gz
zImage
lost+found
============================================================
Hope that helps guys, It's my first tut on XDA
**EDIT: I included an archive for windows users that has unyaffs2.exe & cygwin1.dll
The Linux archive contains mkfs.yaffs2.x86, once moved to /usr/sbin/ rename to mkfs.yaffs2
The process works exactly the same for Boot.img
you need linux and run command by terminal
put them in /bin
http://www23.zippyshare.com/v/13814384/file.html
then you can yaffs or unyaffs
example
unyaffs /home/rafpigna/folder_with_img_you_wann_unpack/system.img
or
mkyaffs2image /home/rafpigna/folder_with_stuff_you_wanna_pack/ system.img
strange thing...when I open with unyaffs and then close with mkfs.yaffs2 or mkyaffs2image I get init: untracked pid 250 exited (where 250 varies) in a loop :S
some light for me?
michyprima said:
strange thing...when I open with unyaffs and then close with mkfs.yaffs2 or mkyaffs2image I get init: untracked pid 250 exited (where 250 varies) in a loop :S
some light for me?
Click to expand...
Click to collapse
What platform are you using? Have u tried copying your target directory to your sdcard and running the command in android's terminal?
Reguards
KillaHurtz said:
What platform are you using? Have u tried copying your target directory to your sdcard and running the command in android's terminal?
Reguards
Click to expand...
Click to collapse
linux x64.
btw no I didn't, because I want to make a rom (I'm not new to android development but that makes me think that I'm probably stupid )
Everything I do doesn't work.
Already tried something like:
- opened a premade working rom, exchanged just app and framework: no way
- exchanged everything but not bin/xbin/lib: no way
- exchanged just what was different between a stock and a premade leo rom: still no way
mmmh...
yaffs2
There is actually a way to modify files in a yaffs2 image but I've not done it my self yet. I'm 100% sure it's possible cuz everything is possible.... under Linux of course.
You need:
Linux, compiling skills, mounting skills, etc.
Basically for any other filesystems you can mount them as loop devices but not yaffs2. For yaffs2 you actually need a virtual mtd block device. once you have the mtd device you can mount the yaffs image on it.
For details google for: mounting yaffs image
and focus on virtual mtd block device.
michyprima said:
linux x64.
btw no I didn't, because I want to make a rom (I'm not new to android development but that makes me think that I'm probably stupid )
Everything I do doesn't work.
Already tried something like:
- opened a premade working rom, exchanged just app and framework: no way
- exchanged everything but not bin/xbin/lib: no way
- exchanged just what was different between a stock and a premade leo rom: still no way
mmmh...
Click to expand...
Click to collapse
http://www.miui-dev.com/forums/showthread.php?481-Howto-Make-your-own-Android-Build-for-the-HD2
This has a list of files to be pulled. Hope this helps. BTW michy I need help with a kernel, know anyone?
I'm Having a problem using on Linix, when i use the unyaffs trough the terminal it extracts the rom but not the squashed contents, which in the main apps and frame work are at on thoughs roms. I do get a file that says squashed but empty. I tried on cyanogens 6.1 rom and everything extracted fine.but that rom does not have a squashed folder, am i doing something wrong?
1. If i unyaffs System.img and manually remove some programs/aplications then create System.img with yaffs, does it programs will appear in apps and does my rom will be caused a more memory for other programs for installation?
2. Is it possible to unyaffs Boot.img then replace zimage with newest kernel like MDJ or hastarin then yaffs to new Boot.img, After that i suppose then this Android OS will be on new kernel???
3. And... If i remove zimage and initrd.gz from Boot.img, create new Boot.img without these two files and these two files copy to SD card and define that two files in flash.cfg for find on SD. Does it works?
Sorry for bad English.

[UPDATE 22/08/12] ROM Cooking Guide (One Package)

This is how I made ROM, I'll try to write the steps as simple as I can. For advanced users only!
Update 22/08/11:
Revised packaging steps.
Update 13/08/11:
Removed unwanted method for ROM cooking.
Update 04/08/11:
Modified extract and repack ROM guide and added extracting system.rfs guide.
Things you need:
Base firmware
Archiver software (7zip recommended)
Any Linux environment to build ROM or Cygwin
APK Manager to optimize and decompile *.apk files
MagicISO (Optional) if you want to extract system.rfs
And the last thing is... You need enough experience in android world
So, here is the steps to cook a ROM:
Flash your phone with your desired base firmware
Make required modifications
Pull system.rfs from your phone by running this command on adb shell or Terminal Emulator:
Code:
dd if=/dev/stl12 of=/sdcard/system.rfs
Extract any *.tar.md5 files from your base firmware to your working folder with 7zip
Replace the current system.rfs with your modified one
EDIT: Pack your ROM by running this code via terminal or just pack it with 7zip/WinRAR as *.tar
Code:
tar -H ustar -c * >> ROMNAME.tar
change ROMNAME to your desired, well, ROM name.
Here is (yet) useful guide to modify your ROM.
Extract system files on system.rfs to make modding easier:
Extract PDA file (*.tar.md5) files with 7zip
Open system.rfs with MagicISO
To extract it, just drag and drop
NOTE: Never edit your ROM with MagicISO because the file permissions will be ignored, use MagicISO only for extracting files from system.rfs
Deodex, and Zipalign (optimize) your ROM apk files:
Ready to use deodex + root for KPN: http://forum.xda-developers.com/showthread.php?t=1196230
Ready to use deodex + root for KPH and other firmware: http://forum.xda-developers.com/showthread.php?t=1118048
Open APK Manager
To zipalign your apk files, in apk manager folder /place-apk-here-to-batch-optimize put your:
framework-res.apk, twframework-res.apk and all system apk
but not these:
AxT9IME, Calculator, Camera, Email, MMS, Phone, Screen Capture, Settings, Swype, Thinkdroid, Voice search
Choose Choose option 15
Then choose both (zp)
Let it run and done.
Now put back the apk files where they belong in the ROM.
How to put these apk files to my ROM? Copy these files to appropriate locations, such as /system/app to your ROM's /system/app, and etc.
Another handy modification guide:
Unpack and repack boot.img - http://forum.xda-developers.com/showthread.php?t=1173427
Convert firmware filesystem to ext4 - http://forum.xda-developers.com/showthread.php?t=1202049
Overscroll glow for any firmware - http://forum.xda-developers.com/showthread.php?t=1215933"
Give thanks to all dev who made that possible!
If you have more guides to put here, please PM me.
Am I pertamax?
hehe..just kidding.
Nice Info....great share.
I would want the Fla.sh Rom :'(
Thats a gr8 share...Thank you...)
saiftheboss7 said:
I would want the Fla.sh Rom :'(
Click to expand...
Click to collapse
sorry... once again, I'm sorry, I can't continue my ROM
Helpful thread man!
Thanks!
Great job taking your time to make this! Unfortunately, i dont even know the basics but now I know where to check when I do
fla.sh said:
sorry... once again, I'm sorry, I can't continue my ROM
Click to expand...
Click to collapse
Hey!
THX man, nice thread. Very useful!
Just PM to MOD, that they close you previous thread, a bout fla.sh.ROM. Or ppl just waiting it and asking.
CHEERS!
i think the most troublesome problem i encounter is to repack system.rfs. yes it can be mounted in magiciso, but howto repack/compile it back?
an0nym0us_ said:
i think the most troublesome problem i encounter is to repack system.rfs. yes it can be mounted in magiciso, but howto repack/compile it back?
Click to expand...
Click to collapse
Just save it.
didnt work when i just save it. my device got bootloop
an0nym0us_ said:
didnt work when i just save it. my device got bootloop
Click to expand...
Click to collapse
What modification you've added to your ROM? Maybe that modification causing the problem...
fla.sh said:
What modification you've added to your ROM? Maybe that modification causing the problem...
Click to expand...
Click to collapse
As Linux, MagicISO read RFS image as a FAT filesystem. File permissions can not be maintained. A better way but need linux:
1. Mount system.rfs as FAT and mount it to /tmp/rfs
2. Make ext4 image, and mount it to /tmp/system
3. Copy /tmp/rfs contents to /tmp/system
4. Make modification inside /tmp/system
5. Fix file permissions inside /tmp/system
6. Umount both image
7. Make ODIN flashable image, contains system.rfs (now in ext4 format) and CF-Root-S5830 boot and recovery image (for ext4 support)
8. Boot to Windows and flash your new firmware using ODIN.
ketut.kumajaya said:
As Linux, MagicISO read RFS image as a FAT filesystem. File permissions can not be maintained. A better way but need linux:
1. Mount system.rfs as FAT and mount it to /tmp/rfs
2. Make ext4 image, and mount it to /tmp/system
3. Copy /tmp/rfs contents to /tmp/system
4. Make modification inside /tmp/system
5. Fix file permissions inside /tmp/system
6. Umount both image
7. Make ODIN flashable image, contains system.rfs (now in ext4 format) and CF-Root-S5830 boot and recovery image (for ext4 support)
8. Boot to Windows and flash your new firmware using ODIN.
Click to expand...
Click to collapse
I use this command to mount rfs:
Code:
mount -o loop system.rfs /some_dir
Can you share us the command?
now thats really informative. thanks
ROM unpacking and repacking gude has been corrected. Tested by me. If you have any problems, just ask here.
Thanks.
I think you should add the date of update in the title, so that everyone can know about the update...
BTW thanks for this amazing guide...
Love it!!!
After making changes to system.rfs, how to save it as .rfs again?
adiles said:
After making changes to system.rfs, how to save it as .rfs again?
Click to expand...
Click to collapse
Please take look at the first page, it's updated, you know?
After I created md5 file and selected it in odin, it says "invalid image type" and "invalid model binary". How to solve that? After that I continued, skipped these errors and flashed, my phone stopped at boot screen with text "Galaxy ACE....". Plz help me

[GUIDE] Fix "assert failed: apply_patch_check" error

Overview:
This thread is a guide on how to fix the apply_patch_check error message experienced during an upgrade of the Android OS. Specifically, this will detail the steps for an upgrade of Jelly Bean from 4.1.1 to 4.1.2 on the Nexus 7 with CWM Recovery for a user of Windows. I'm sure similar steps will work for other recoveries/upgrades/devices and PC OSes.
You should only bother with this if you don't want to flash the entire system.img file to your phone, which is way easier.
Here is an example of the error message I'm talking about:
Code:
assert failed: apply_patch_check("/system/app/Chrome.apk", "819b34b66335c6faec86404d736a002b8871600", "9d6b55e63b0bf20bea433fb1ee7089f88ab73fb6")
E: Error in /sdcard/03a4eaf95f73.signed-nakasi-JZO54K-from-JRO03D.03a4eaf9.zip
(Status 7)
Installation aborted.
A few notes about the error:
This doesn't have to happen with the Chrome.apk specifically -- it could happen with any app in /system/app or .so in /system/lib.
Those random strings of numbers/letters are SHA-1 hashes of the apk.
The first one is the hash of the apk installed on your device. In my example, this happens to be the version of Chrome that comes with JB 4.1.2.
The second one is the expected hash of the apk that comes with JB 4.1.1.
Cause of the problem:
The reason this error occurs is because the file was somehow modified from its original state. In my case -- and most likely your case -- this was done by Titanium Backup. TB has an option to "Integrate updates of system apps into ROM", which will cause the apk in /system/app (and associated library files in /system/lib, if needed) to be overwritten with the updated apk.
Solution:
Download this zip file which contains the full /system/app and /system/lib directory from the JB 4.1.1 factory image. *
Extract the zip to a location of your choosing on your PC.
In the extracted folder, locate the .apk or .so file referenced in the error message on your device.
Copy this file to your device via your preferred method (USB cable works fine). I put my file in /sdcard/Download.
On your device, use a root file explorer to move the file from /sdcard/Download to /system/app (or /system/lib).
If you don't have a program that can do this, I use ES File Explorer. Be sure to go to Settings > Root Settings and turn on Root Explorer, Up to Root, and Mount File System.
Reboot into your Recovery and try to install the update again.
Repeat steps 3-6 for each subsequent file that produces an error. You will basically need to do this for each app you integrated using TB and maybe a few library files, too. **
* Future updates (above 4.1.2):
Since I won't be keeping the zip file from step #1 up-to-date, here's how to get the directories that I included in the zip for yourself:
Obtain a factory image for your device's current Android version (the version you're updating from).
For JB 4.1.1, this file is called nakasi-jro03d-factory-e102ba72.tgz.
If you're reading this guide at a later date, the JB 4.1.2 file is called nakasi-jzo54k-factory-973f190e.tgz.
You can try your luck at the official Google site, but they seem to only provide the version you're trying to update to, not from.
Extract the .tgz file somewhere on your PC.
Locate the image-naksi-jro03d.zip file and extract that, as well.
In the folder you just extracted from the previous step, located the system.img file.
Download and use a program called sgs2toext4 (View attachment 645320) to convert the system.img to system.ext4.img. ***
Download and use a program called Linux Reader to open system.ext4.img.
Do this by going to Drives > Mount Image > Next > select your file.
It will then be listed under the Hard Disk Drives section in red as "Linux Ext Volume 1".
Navigate to: Linux Ext Volume 1/system.
Right-click on the app (or lib) directory and pick Save > Next > Output to dir of your choice.
You now have the directories that were included with the zip file from Solution step #1, so just follow those steps now.
** How to avoid repeating steps:
If you'd rather not have to try to reinstall after updating only one file, just to find another file that needs updating, try this:
Obtain the /system/app and /system/lib folders from the factory image and save them to your PC.
For the sake of this guide, let's say you save them to C:\factory_app and C:\factory_lib.
Copy the /system/app and /system/lib directories from your phone to your PC.
For the sake of this guide, let's say you saved them to C:\phone_app and C:\phone_lib.
Download the File Checksum Integrity Verifier utility from Microsoft.
Start > Run > cmd
fciv.exe -sha1 -xml factory_app.xml -wp C:\factory_app
fciv.exe -sha1 -xml factory_app.xml -v -bp C:\phone_app
Don't ask me why, but you need to use -bp instead of -wp for the second command.
Don't forget the -v on the second command.
The output of the last command will show you the list of files that are different. These are the files you need to take from C:\factory_app and put into the /system/app directory on your phone.
Do the same for the lib directories (just replace all instances of "_app" with "_lib" in the previous commands).
Summary:
I hope that this post helped some of you who really didn't want to have to flash the system.img or wipe your device just to update. In the future, use TB to back up the original.
I wouldn't normally bother writing up a guide like this (it took almost as long to write as it did to figure out how to do this) but I couldn't find this solution anywhere even though I saw that I wasn't the only person with the problem. Sorry for not posting this guide sooner (update has been out for a while now), but the forum required me to make a bunch of useless spam posts before I could include any links in my guide and I didn't get around to making those posts right away.
*** I would like to thank balamu96m for his guide on extracting data from the system.img file and drphrozen for making the sgs2toext4 program.
Thanks for this. Will try now.
Worked great. Had to copy the apk and odex file.
Good job! It's great to see the steps for Windows users!
Just a heads up that I simply extracted the files I needed from and on my N7 using Root Explorer, without using my PC at all.
Great guide! Method worked perfectly on my Nexus 7 going from 4.1.2 to 4.2, thanks
Please... is there some other way to update the files w/o installing Java on my Windoze PeeCee? I accidentally messed up my YouTube.apk with Titanium Backup... now I can't update from 4.1.2 --> 4.2 JB.
EDIT: JavaPortable FTW... updating (fingers crossed)
EDIT: SUCCESS TY OP!
For anyone who flashed the 4.2 clock/keyboard already
Hey, for anyone who flashed the 4.2 clock and keyboard on their Nexus 7 already and need to roll back to do the 4.2 update, I used OP's method to make a flashable zip that puts the 4.1.2 clock and keyboard back.
Worked perfectly for my Nexus 7 to get me up and running. Hope it helps anyone!
cantthinkofa.com/files/RestoreClockKeyboard.zip
galaxy nexus
Hi can you post a guide for galaxy nexus? Or if it is the same, can you post the link of JB factory image for galaxy nexus? Sorry, I can't find any thread for galaxy nexus, and I don't want to complete flash the stock image since I don't want to wipe my phone.
Thanks in advance!
Nice Guide
perfect, the guide works just fine. Now finally running 4.2.
Awesome guide... Thanks... Happily running 4.2 now aften beeing stuck at libutils.so...
Sent from my Nexus 7 using xda premium
damagno said:
Hi can you post a guide for galaxy nexus? Or if it is the same, can you post the link of JB factory image for galaxy nexus? Sorry, I can't find any thread for galaxy nexus, and I don't want to complete flash the stock image since I don't want to wipe my phone.
Thanks in advance!
Click to expand...
Click to collapse
I don't have a Galazy Nexus, but I think the steps should be the same. Here is a link to the factory images: https://developers.google.com/android/nexus/images#takju . It looks like they now have links for older versions, rather than just the newest images (which is how it was when I made my guide). So that's pretty sweet.
Thanks a lot man, i succeeded to "patch" my system files to update from 4.2 to 4.2.1. I first check what files didn't correspond with fciv (9 files counting both apks and odex) and then replaced them in system/app. In fact they were the apps I previously integrated with tb (learned lesson: never do it if you want to remain stock and receive OTAs). I also noticed many not-matching files in system/lib but i didn't touch them and the update went smooth the same.
Another thing: when in the OP you say it's way easier just to reflash the system.img you mean just run from bootloader "fastboot flash system system.img" (taken from the factory image as usual) or there's some other thing to do in order to fix the system partition in the right way?
GallStones said:
Thanks a lot man, i succeeded to "patch" my system files to update from 4.2 to 4.2.1.
Click to expand...
Click to collapse
I was wondering if you could tell me how you did it? I'm searching a way to install 4.2.1 with no avail as of yet :crying:
GallStones said:
Thanks a lot man, i succeeded to "patch" my system files to update from 4.2 to 4.2.1. I first check what files didn't correspond with fciv (9 files counting both apks and odex) and then replaced them in system/app. In fact they were the apps I previously integrated with tb (learned lesson: never do it if you want to remain stock and receive OTAs). I also noticed many not-matching files in system/lib but i didn't touch them and the update went smooth the same.
Another thing: when in the OP you say it's way easier just to reflash the system.img you mean just run from bootloader "fastboot flash system system.img" (taken from the factory image as usual) or there's some other thing to do in order to fix the system partition in the right way?
Click to expand...
Click to collapse
Yes. I am having the same issue. I cannot update mine from 4.2 to 4.2.1. I wonder to know which original stock image you have used. Can you list a detail procedure?
Thank you very much.
Ric
dev/block/param
legom said:
Overview:
This thread is a guide on how to fix the apply_patch_check error message experienced during an upgrade of the Android OS. Specifically, this will detail the steps for an upgrade of Jelly Bean from 4.1.1 to 4.1.2 on the Nexus 7 with CWM Recovery for a user of Windows. I'm sure similar steps will work for other recoveries/upgrades/devices and PC OSes.
You should only bother with this if you don't want to flash the entire system.img file to your phone, which is way easier.
Here is an example of the error message I'm talking about:
Code:
assert failed: apply_patch_check("/system/app/Chrome.apk", "819b34b66335c6faec86404d736a002b8871600", "9d6b55e63b0bf20bea433fb1ee7089f88ab73fb6")
E: Error in /sdcard/03a4eaf95f73.signed-nakasi-JZO54K-from-JRO03D.03a4eaf9.zip
(Status 7)
Installation aborted.
A few notes about the error:
This doesn't have to happen with the Chrome.apk specifically -- it could happen with any app in /system/app or .so in /system/lib.
Those random strings of numbers/letters are SHA-1 hashes of the apk.
The first one is the hash of the apk installed on your device. In my example, this happens to be the version of Chrome that comes with JB 4.1.2.
The second one is the expected hash of the apk that comes with JB 4.1.1.
Cause of the problem:
The reason this error occurs is because the file was somehow modified from its original state. In my case -- and most likely your case -- this was done by Titanium Backup. TB has an option to "Integrate updates of system apps into ROM", which will cause the apk in /system/app (and associated library files in /system/lib, if needed) to be overwritten with the updated apk.
Solution:
Download this zip file which contains the full /system/app and /system/lib directory from the JB 4.1.1 factory image. *
Extract the zip to a location of your choosing on your PC.
In the extracted folder, locate the .apk or .so file referenced in the error message on your device.
Copy this file to your device via your preferred method (USB cable works fine). I put my file in /sdcard/Download.
On your device, use a root file explorer to move the file from /sdcard/Download to /system/app (or /system/lib).
If you don't have a program that can do this, I use ES File Explorer. Be sure to go to Settings > Root Settings and turn on Root Explorer, Up to Root, and Mount File System.
Reboot into your Recovery and try to install the update again.
Repeat steps 3-6 for each subsequent file that produces an error. You will basically need to do this for each app you integrated using TB and maybe a few library files, too. **
* Future updates (above 4.1.2):
Since I won't be keeping the zip file from step #1 up-to-date, here's how to get the directories that I included in the zip for yourself:
Obtain a factory image for your device's current Android version (the version you're updating from).
For JB 4.1.1, this file is called nakasi-jro03d-factory-e102ba72.tgz.
If you're reading this guide at a later date, the JB 4.1.2 file is called nakasi-jzo54k-factory-973f190e.tgz.
You can try your luck at the official Google site, but they seem to only provide the version you're trying to update to, not from.
Extract the .tgz file somewhere on your PC.
Locate the image-naksi-jro03d.zip file and extract that, as well.
In the folder you just extracted from the previous step, located the system.img file.
Download and use a program called sgs2toext4 (View attachment 645320) to convert the system.img to system.ext4.img. ***
Download and use a program called Linux Reader to open system.ext4.img.
Do this by going to Drives > Mount Image > Next > select your file.
It will then be listed under the Hard Disk Drives section in red as "Linux Ext Volume 1".
Navigate to: Linux Ext Volume 1/system.
Right-click on the app (or lib) directory and pick Save > Next > Output to dir of your choice.
You now have the directories that were included with the zip file from Solution step #1, so just follow those steps now.
** How to avoid repeating steps:
If you'd rather not have to try to reinstall after updating only one file, just to find another file that needs updating, try this:
Obtain the /system/app and /system/lib folders from the factory image and save them to your PC.
For the sake of this guide, let's say you save them to C:\factory_app and C:\factory_lib.
Copy the /system/app and /system/lib directories from your phone to your PC.
For the sake of this guide, let's say you saved them to C:\phone_app and C:\phone_lib.
Download the File Checksum Integrity Verifier utility from Microsoft.
Start > Run > cmd
fciv.exe -sha1 -xml factory_app.xml -wp C:\factory_app
fciv.exe -sha1 -xml factory_app.xml -v -bp C:\phone_app
Don't ask me why, but you need to use -bp instead of -wp for the second command.
Don't forget the -v on the second command.
The output of the last command will show you the list of files that are different. These are the files you need to take from C:\factory_app and put into the /system/app directory on your phone.
Do the same for the lib directories (just replace all instances of "_app" with "_lib" in the previous commands).
Summary:
I hope that this post helped some of you who really didn't want to have to flash the system.img or wipe your device just to update. In the future, use TB to back up the original.
I wouldn't normally bother writing up a guide like this (it took almost as long to write as it did to figure out how to do this) but I couldn't find this solution anywhere even though I saw that I wasn't the only person with the problem. Sorry for not posting this guide sooner (update has been out for a while now), but the forum required me to make a bunch of useless spam posts before I could include any links in my guide and I didn't get around to making those posts right away.
*** I would like to thank balamu96m for his guide on extracting data from the system.img file and drphrozen for making the sgs2toext4 program.
Click to expand...
Click to collapse
my error 7 was generated by emmc: dev/block/mmdblk0p7 (the file is "param" any suggestions?
Thanks. After searching for a lot of time, this post helped me updating my SGS3.:victory: I previously tried to integrate youtube update into rom using titanium backup.
GallStones said:
Another thing: when in the OP you say it's way easier just to reflash the system.img you mean just run from bootloader "fastboot flash system system.img" (taken from the factory image as usual)
Click to expand...
Click to collapse
Yes, that's what I mean. The reason I didn't want to do this on my device is because I had modified some other system files that I wanted to keep the modifications for.
Wow, thanks a lot OP! Your guide helped me fixing an error during the update to 4.2.2 on my Nexus 4.
please include a video ,im getting lost in the details
solved.

[HOW-TO / VIDEO / WIN-LIN-OSX] Extract System/Data files directly from a FTF

Good morning family!
It's my very first time posting in this subforum, but I think this tutorial was actually something needed, since all threads everyone can found while Googling are quite old (like, from the Xperia S times ), and also I'm quite tired of infinite threads like this and this, so...
Today I bring you an extensive and unified guide on how to extract ANY SYSTEM FILE from a FlashTool's Firmware (FTF), whether it's from the userdata.sin or from the system.sin.
Since this is going to be a guide for all OSes, there are some programs you'll need in general,
Latest version available of FlashTools (for SIN dumping purposes).
A reader tool for the extracted image, which can be:
An EXT4 reader / mounter.
An Unyaffs2, if you're using this guide for an old device (like the already mentioned Xperia S, and older).
Some cups of coffee, and lots of patience [IMPORTANT].
But, some of them will be platform specific, so the thread will split in:
2nd post: WINDOWS
3rd post: LINUX
4th post: OSX
Here you've a video tutorial showing the whole process for the 3 OSes:
If you're enjoying it, don't forget to press Thanks button and rate this thread!​
WINDOWS GUIDE
Step 1 - Extract the SIN we need
Using your favourite archive manager (WinRAR, 7-Zip, etc), open the FTF you want to extract the files from. (FYI: an FTF is just a Zip file with renamed extension)
Now copy/extract the SIN you want to unpack to a folder of your preference.
Step 2 - Dump the SIN
I'll take into account you already had installed Flashtools and Java JRE, in which case I highly encourage you to update both to the latest version available.
Now, open Flashtools. Click on Tools, Sin Editor. Hit the [...] and locate the SIN you previously extracted. Now, hit the [Extract Data] button. After a couple of minutes the bar should start running.
Once finished, you can have 2 kind of files: a .yaffs2 or a .ext4/.ext3/.ext2 file, which require different procedures on how to see it's contents.
Step 3.a - Convert the file to a readable format - UnYaffs2
If the file you get is a .yaffs2 format file, you're going to need to extract it. For doing so, you need this tool, which contains a executable and a cygwin dll.
Extract this .rar contents to the very same folder where you placed the SIN, and thus, where the .yaffs2 is located.
Now, while you're in that folder press the shift key in your keyboard, and while you keep pressing it, right click on a blank space in that folder. In the menu choose Open a Command Prompt here.
To end the proccess, type
Code:
unyaffs2.exe [COLOR="DarkOrchid"]<the-name-of-the-yaffs2>[/COLOR]
Where <the-name-of-the-yaffs2> you must type the file name of the yaffs2 (e.g. system.yaffs2)
The files will get extracted and you'll be able to pick the ones you need.
Step 3.b - Mount the image - Linux Reader
There're many many tools to mount a EXT format image in Windows, but in this case, I'll use the Diskinternals Linux Reader, since it's free and it's compatible with all 3 possible formats you can encounter: .ext4/.ext3/.ext2.
Download it from here and install it. (It must be this version, since newer ones are broken.)
Once done, you should be perfectly able to double-click-to-mount the EXT file Flashtools generated without any trouble.
LINUX GUIDE
Step 1 - Extract the SIN we need
Using your favourite archive manager (Ark, Peazip, etc), open the FTF you want to extract the files from. (FYI: an FTF is just a Zip file with renamed extension)
Now copy/extract the SIN you want to unpack to a folder of your preference.
Step 2 - Dump the SIN
I'll take into account you already had installed Flashtools and Java JRE, in which case I highly encourage you to update both to the latest version available.
Now, open Flashtools. Click on Tools, Sin Editor. Hit the [...] and locate the SIN you previously extracted. Now, hit the [Extract Data] button. After a couple of minutes the bar should start running.
Once finished, you can have 2 kind of files: a .yaffs2 or a .ext4/.ext3/.ext2 file, which require different procedures on how to see it's contents.
Step 3.a - Convert the file to a readable format - UnYaffs2
If the file you get is a .yaffs2 format file, you're going to need an extra tool to extract it. For doing so, you are going to need the unyaffs2 tool.
You can download a pre-compiled binary from here, or you can compile your own using GCC with the source code, the header and the code below inside a Terminal (Ctrl+Alt+T to open it).
Code:
gcc -o unyaffs unyaffs.c
Once you've a working UnYaffs2 binary, just copy it to the very same folder where you placed the SIN, and thus, where the .yaffs2 is located, and type in a Terminal (Ctrl+Alt+T to open it).
Code:
cd [COLOR="DarkOrchid"]<file-route-of-the-sin>[/COLOR]
./unyaffs2 [COLOR="Blue"]<the-name-of-the-yaffs2>[/COLOR]
Where <file-route-of-the-sin> is where the SIN was located, and where <the-name-of-the-yaffs2> you must type the file name of the yaffs2 (e.g. system.yaffs2)
The files will get extracted and you'll be able to pick the ones you need.
Step 3.b - Mount the image
Since we're already in Linux, mounting a EXT image is not that hard. Just mount it using this commands in a Terminal (Ctrl+Alt+T to open it).
Code:
cd [COLOR="DarkOrchid"]<file-route-of-the-sin>[/COLOR]
mkdir android
sudo mount -t ext[color="RED"]*[/color] -o loop <name-of-the-image> android/
Where <file-route-of-the-sin> is where the SIN was located, where <the-name-of-the-image> you must type the file name of the ext image (e.g. system.ext4), and finally, where ext*, replace * with the version number of the EXT image you're mounting, usually, ext4
Now, once finished, to unmount it, type in a Terminal.
Code:
sudo umount android
rm -fr android
OSX GUIDE
Step 1 - Extract the SIN we need
Using your favourite archive manager (UnRarX, ZipEg, etc), open the FTF you want to extract the files from. (FYI: an FTF is just a Zip file with renamed extension)
Now copy/extract the SIN you want to unpack to a folder of your preference.
Step 2 - Dump the SIN
I'll take into account you already had installed Flashtools and Java JRE, in which case I highly encourage you to update both to the latest version available.
Now, open Flashtools. Click on Tools, Sin Editor. Hit the [...] and locate the SIN you previously extracted. Now, hit the [Extract Data] button. After a couple of minutes the bar should start running.
Once finished, you can have 2 kind of files: a .yaffs2 or a .ext4/.ext3/.ext2 file, which require different procedures on how to see it's contents.
Step 3.a - Convert the file to a readable format - UnYaffs2
If the file you get is a .yaffs2 format file, you're going to need an extra tool to extract it. For doing so, you are going to need the unyaffs2 tool.
You can download a pre-compiled binary from here, or you can install your own using Brew. From a Terminal (Command+Space, then type in Terminal) type the following commands.
Code:
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" < /dev/null 2> /dev/null #This is just to Install Brew for the first time. If you already have it, it's not needed.
brew install unyaffs
If you chose using the UnYaffs2 binary, copy it to the very same folder where you placed the SIN, and thus, where the .yaffs2 is located.
If you chose the Brew installation, just continue.
Now, type in a Terminal (Command+Space, then type in Terminal).
Code:
cd [COLOR="DarkOrchid"]<file-route-of-the-sin>[/COLOR]
unyaffs2 [COLOR="Blue"]<the-name-of-the-yaffs2>[/COLOR]
Where <file-route-of-the-sin> is where the SIN was located, and thus, where the yaffs2 file is located; and where <the-name-of-the-yaffs2> you must type the file name of the yaffs2 (e.g. system.yaffs2)
The files will get extracted and you'll be able to pick the ones you need.
Step 3.b - Mount the image - Ext4FUSE
There're many many tools to mount a EXT format image in OSX, but in this case, since we don't need RW access, but just RO, I'll use ext4fuse, since it's free and it's more than compatible with our needs.
To install it you'll need Brew. To get things ready, type the following commands in a Terminal (Command+Space, then type in Terminal).
Code:
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" < /dev/null 2> /dev/null #This is just to Install Brew for the first time. If you already have it, it's not needed.
brew tap homebrew/fuse
brew install Caskroom/cask/osxfuse
brew install ext4fuse
If you're on OSX Yosemite, El Capitan, or Leopard, you may need an extra command to add yourself to the Operator group, so that you can have readonly permissions to the disks.
Use it only if you get an error while trying to access the mounted EXT image later.
Code:
sudo dscl . append /Groups/operator GroupMembership [COLOR="red"]<your-user>[/COLOR]
Where your user <your-user> is your username.
Now, to mount the ext4 image, type in a Terminal (Command+Space, then type in Terminal).
Code:
mkdir android
ext4fuse [COLOR="DarkOrchid"]<path-to-the-ext4-image>[/COLOR] android
Where <path-to-the-ext4-image> you must type in the full path where the SIN was located, and thus, where the EXT4 image is located.
Use this as reference.
Reserved
In case I need it
Great job! Keep up the good work!!
Well. great guide.
Just a note, Microsoft officially released Bash on Ubuntu on Windows yesterday. Try it. It's a full fledged Linux subsystem but unfortunately only available to Windows Insiders. It would be the best alternate to cygwin.
Boot.img
How can i extract the boot.img
or is this applicable to every single .sin file present in the .ftf file
serajr said:
Great job! Keep up the good work!!
Click to expand...
Click to collapse
Thank you, I appreciate your words
mfbcool said:
Well. great guide.
Just a note, Microsoft officially released Bash on Ubuntu on Windows yesterday. Try it. It's a full fledged Linux subsystem but unfortunately only available to Windows Insiders. It would be the best alternate to cygwin.
Click to expand...
Click to collapse
I know, I saw the demonstration in the //build/, but since it hasn't been released for all yet (I guess it'll be for Redstone 2?), I didn't saw it necessary to be included.
sandeep.sethi said:
How can i extract the boot.img
or is this applicable to every single .sin file present in the .ftf file
Click to expand...
Click to collapse
No, this is only applicable for system.sin, userdata.sin, cache.sin and probably modem.sin.
However, if many of you request it, I could try making another for the kernel (boot.img)... But remember, every device doesn't have the same way/method to unpack the kernel, so making a generic tutorial for all wouldn't be possible
No, this is only applicable for system.sin, userdata.sin, cache.sin and probably modem.sin.
However, if many of you request it, I could try making another for the kernel (boot.img)... But remember, every device doesn't have the same way/method to unpack the kernel, so making a generic tutorial for all wouldn't be possible
Click to expand...
Click to collapse
if u can provide the guide it would be very helpful :fingers-crossed: :fingers-crossed:
This thread got featured in XDA Portal, thank you guys!
I tried extracting Xperia Pro's system SIN (can't remember the exact name but the one with the largest file size) using the latest version of Flashtool but wasn't successful. Like it's not supported yet.

[GUIDE]How to extract /system from Samsung S7 OTA/FW in Windows without a Phone

This is a complete working guide on how to extract the /system partition from a Samsung S7 FW/OTA package using Windows (This is the same package one might flash to their phone with ODIN.) You can get this FW/OTA package from sites like Samsung-Firmware.org & SamMobile.com. It is very likely this works (or parts of it duct-taped together ) on other Phone models,etc, but I vouch that this guide works on the Samsung S7. Please chime in if it works on other models & brands!
Intro:
I found a LOT of guides similar to this, but couldn't get any to work with the Samsung S7 packages! And there are MANY different versions of the tools I mention below, many not working! So be sure to use the tool versions I post below. Over much time, it was a tiny step with each new attempt until I finally got it...& wanted to share!
Purpose:
Why would anyone want to do this? If you're reading this thread and don't know the answer to that, then I'm confused But I'll answer anyway - What is the purpose of this thread?
You would want to do this because you're a ROM Developer and don't want to have to go through the time & trouble of installing an OTA, then do a dd/cat to get the system image, etc. (With this method you don't even need a phone, just a PC!)
You are using a custom ROM, but want a stock app; for example the custom ROM you're using has the Google Dialer/Phone app builtin, but you prefer the stock Samsung Phone. Doing the steps outlined here will yield a "system" folder in Windows that you can simply navigate to /system/app or /system/priv-app and copy over the apk to your phone and install it! (via ADB or phone File manager app, etc). Obviously not all apks will work. Or maybe you want the libraries from another phone OTA package in order for an apk to work, and so on...
You are just curious what's in the /system partition for an OTA package!
Tools:
7-Zip
LZ4
simg2img: "Clone or download"->Download ZIP
Ext2Explore (Same as Ext2Read)
Guide:
Download FW/OTA (TMB-G930TUVU4CRI2.zip) from SamMobile website (or whereever)
Use 7zip to extract TMB-G930TUVU4CRI2.zip to a folder
Use 7zip to extract AP_G930TUVU4CRI2*.tar.md5 to a folder (ignore "There is no correct record at end of archive" error)
Use lz4 to extract system.img.ext4.lz4 -> system.img.ext4
lz4 system.img.ext4.lz4​
Extract simg2img_win-master.zip -> \simg2img_win-master\
Copy system.img.ext4 to \simg2img_win-master\ folder
Rename system.img.ext4 -> system.img
Use simg2img_win-master to convert system.img -> system.ext4.img
Double-click convert.bat (or run in cmd prmpt) (This will take a few minutes)​
Create new folder to save contents in, eg: "C:\System"
Use ext2explore to mount system.ext4.img: Open ext2explore->File->Open Image->Select system.ext4.img
Click Save icon->Save to your new folder, eg: "C:\System"
Wait for it to extract. Once complete, enjoy!
Links & Useful Resources:
Tmobile Versions: https://support.t-mobile.com/docs/DOC-30276
Search Keywords:
(This section is here so this thread comes up in searches for the many errors I came across while trying to get this to work in both Windows & Linux. That's right! I tried in both OSs and actually got it to work first in Windows... & yet to get it to work in Linux!)
- losetup /dev/loop2 /media/sf_Share/system.img.ext4 ->warning file does not fit into 512-byte sector; the end of the file will be ignored
- mount /dev/loop2 /mnt/mysystem2 -> mount: /mnt/mysystem2: cant read superblock on /dev/loop2
- mount -t ext4 /media/system.img /mnt/mysystem6 -> wrong fs type, bad option, bad superblock on /dev/loop6, missing codepage or helper program, or other error
fsck /media/system.img -> ext2fs_open2: Bad magic number in super-block
fsck.ext2: Superblock invalid, trying backup blocks...
fsck.ext2: Bad magic number in super-block while trying to open ...
The superblock could not be read or does not describe a valid ext2/ext3/ext4 filesystem. If the device is valid and it really contains an ext2/ext3/ext4 filesystem (and not swap or ufs or something else), then the superblock is corrupt, and you might try running e2fsck with an alternate suberblock: ...
Reserved
Just happened to see this thread.
Dropping in the let you know for linux just do this
Code:
simg2img system.img.ext4 system.img
mkdir system
sudo mount -t ext4 system.img system/
Of course all work is done in the current working directory.
You can just copy whatever you want from this mounted loop device of the system.img or whatever.
This is what i do because it seems to be the fastest in terms of work.
Hope it helps. I prefer all android work on linux
kevin71246 said:
Reserved
Click to expand...
Click to collapse
oh man you saved my day thanks man none of the old method worked but this did wonders

Categories

Resources