I have been looking at some of the zips of the ROMS that are floating around on this site, and it seems like /system/app is where all the apps that are on the system partition are.
Is it just as easy as unzipping the zip file, putting the .apk file in the /system/app folder, rezipping and flashing using fake-flash?
Or would I need to re-sign the zip, and if so, is there a tutorial for doing this?
Could this cause any problems further down the line?
Related
Hi..
I've had problems with Gmail and Maps applications previously with Neophyte ROMs. In that case one of the solutions was removing the apks for these apps from with the /system/app folder of the ROM zip.
My question is:
Is it possible to add our own apks to the custom ROM so that these apks come preinstalled on the ROM when someone flashes it..in a manner, a kind of 2nd generation mod?
Is it possible to add our own system variables and settings files so that the ROM autoinstalls it on First Install? In particular, I'd like to preset my own APN file for the network.
The simple answer is yes.
The entire system folder in the zip file is written to your /system partition, with the full architecture of folders and so on, so any changes made in there will also be on the system, when it is flashed.
There is also a script file, in the META-INF folder, which you can use to run commands to delete or edit something along with the flash, whenever the zip file is flashed. This is a bit more advanced though.
edit: it is the same for the data folder of course, which folders is flashed and where to is also specified in the script file mentioned above.
Thank you!
In that case, for installation of a program like Gmail.apk or Maps.apk, would be as simple as adding the .apk to the /system/app, or would I have to include other files? Would there be dependancies in other folders?
Well the apps have their own data folder on the data partition, but this is for storing changes in settings and so on, and it should be created by the app itself on first boot just like right after you wipe the data partition/factory reset
Thanks..Got some mod modding to do!
So in case I'd want to manually uninstall/manually install an apk, what would be the steps I'd have to go through?
Would there be filesystem config files (like the older Windows versions), or a central database of entries of the likes of the Registry tables of newer Windows? How does Android go about installing a file? Like which folders and files would be modified other than /system/app and /data/app? Any common files with entries? And in case of the latter, whether it would be machine readable or plain text?
can I extract the contents of a mod.zip and take the .jar or .apk and copy and paste them into the framework dir of the working working folder? i tried copying a custom .apk file into the framework dir of the working folder and it went into a boot loop.
alucke
There could be several reasons for a boot loop. If I understand you correctly, you are working on a ROM using dsixda's kitchen, and you want to add an apk before flashing? Could you provide more information like what apk and what folder you are trying to add it to? I suspect it might have something to do with the signature of the apk. I'm not 100% sure but I believe that the system apks all need the same signature when flashing a new ROM.
alucke said:
can I extract the contents of a mod.zip and take the .jar or .apk and copy and paste them into the framework dir of the working working folder? i tried copying a custom .apk file into the framework dir of the working folder and it went into a boot loop.
alucke
Click to expand...
Click to collapse
If you are changing things within the framework you also need to edit the .xml files within the framework. The best way to learn is to take the stock rom and load it into a working folder. then take a custom rom that you can find all the differences to stock on when loaded on your phone and load that into the kitchen. Compare the stock roms working folder with the custom rom working folder and take note of all the differences and figure out how they were achieved. Dont just look at apk files. Look at the update script as well as the xml files in all the folders too. Repeat with another ROM and you will start to see how to change things around yourself.
I unzipped a apk file to change some of the images in the drawable-hdpi folder, how do I zip it back into an apk file to reinstall it on my phone. Or can I flash the zip file? I dunno how that would work...
Sent from my HTC Vision using XDA App
Can you get another copy of the apk?
If you can then the best thing to do is use winRAR or 7zip to open/explore the apk just like with a .zip file. That way you never unzip it and don't run into that issue. Using those allows you to delete and add files. You can also do the same thing on your phone using root explorer or something similar.
As far as correcting what you've done already (assuming you can't get a copy of that apk) I've completely forgotten since I never have to do it. I know if you look on the android sdk's site you can find the answer though.
adamtheindien said:
I unzipped a apk file to change some of the images in the drawable-hdpi folder, how do I zip it back into an apk file to reinstall it on my phone. Or can I flash the zip file? I dunno how that would work...
Sent from my HTC Vision using XDA App
Click to expand...
Click to collapse
An apk is just a zip file with the apk extension, once you zip it up change it from a .zip to a .apk
Sent from my T-Mobile G2 using XDA App
i changed what i wanted and rezipped, changed the extension, tried to install it, says problem parsing the package?
adamtheindien said:
i changed what i wanted and rezipped, changed the extension, tried to install it, says problem parsing the package?
Click to expand...
Click to collapse
It can also depend on which APK (system vs non-system) and which images (.9 images can be tricky to replace if you don't know what you are doing). Sometimes, you also need to re-sign the APK, depending on what you modified (there are tools to re-sign in the SDK or you can use something like APK Manager).
You should try the opening the APK directly in WinRAR/7-zip and replacing the images method. In my experience, if you are just replacing simple images, you usually don't have to re-sign when doing this (it leaves the existing signature intact).
ok i mainly just replaced images and and edited a couple. i dont know how to use all that adbsdkwhatever stuff.... -_- i know i should but im too lazy. so i dunno how to re sign it...
all im trying to do is edit the quick search bar images. maybe i dont have to do this if there is somewhere to find themed search bars?
If you can then the best thing to do is use winRAR or 7zip to open/explore the apk just like with a .zip file.
Click to expand...
Click to collapse
If your using winRAR click and drag stuff works if its one or two files.
If its a lot of images or a large file like framework-res.apk (I'm thinking your search bar might be in there if I'm not mistaken) then you'll want to make a new ZIP archive with "store" compression (uncompressed pretty much).
(also you shouldn't need to resign the framework-res.apk)
I haven't tested 7zips click and drag but the same principals apply. If its bigger files being recompiled Winrar tends to compress it a bit and sometimes it causes bootloops.
That being said, don't forget to nandroid
82_Z28 said:
If your using winRAR click and drag stuff works if its one or two files.
If its a lot of images or a large file like framework-res.apk (I'm thinking your search bar might be in there if I'm not mistaken) then you'll want to make a new ZIP archive with "store" compression (uncompressed pretty much).
(also you shouldn't need to resign the framework-res.apk)
I haven't tested 7zips click and drag but the same principals apply. If its bigger files being recompiled Winrar tends to compress it a bit and sometimes it causes bootloops.
That being said, don't forget to nandroid
Click to expand...
Click to collapse
Well from my experience, 7zip handles the task like a champ. I've taken every image out and put others back in with no issues. The downside is that some apps set certain dependencies in the .xml files so if you delete the wrong things it won't install and if it does, all you get is a fc all day. In that case it helps to know how to convert the xml binary to something readable (unless you're a king a hex editing).
guys how can i put a bunch of applications in a zip folder a flash it by recovery.Ive tried putting 3 apps in a zip folder and flshing it via recovery but it says failed..
I tried that a while ago on the g1 with mixed results.
You have to put them in the data/app/ folder the same way they appear on your phone. If you are feeling ambitious, you can also grab the corresponding folder in data/data. You'll have to look for the java package name, not the app name. Lastly, you have to adjust the updater-script in META-INF/com/google/android/ to mount and flash the data folder, not system and then clean out the extra cruft.
You might have to resign the zip or just toggle sig checks.
Other options include using recovery to restore the data partition, but this will be everything, not just your 3 favorite apps. Alternatively, you could write a script that runs from your PC while your phone is in recovery and use the "adb install" command. I think there are also apps that do that for you, such as Titanium backup.
Gee one thanks for the reply but can you plz reexplain "If you are feeling ambitious, you can also grab the corresponding folder in data/data. You'll have to look for the java package name, not the app name. Lastly, you have to adjust the updater-script in META-INF/com/google/android/ to mount and flash the data folder, not system and then clean out the extra cruft.
You might have to resign the zip or just toggle sig checks."
Your phone stores the app in data/app/some.java.name.here so if you use flash those files, your apps will be installed. The app itself stores settings, history, etc in data/data/some.java.name.here If you flash the corresponding folder in data/data, you'll also get all your settings and won't have to bother setting it all up from scratch.
If you use adb or a file explorer to poke around in your data/data and data/app folders, you'll see what I mean.
In order to get the zip to flash, you have to include "instructions" that tell the recovery what to do with the zip. Unzip one of the flashable roms and look in the META-INF/com/google/android folder. There should be two files there. You want to edit the updater-script so that it flashes your data. Most likely, it is set up to flash a custom rom to your system folder. You'll have to do some editing and some trial and error to figure it out, but if you are just flashing the data partition, most of the commands in updater-script will be superfluous.
Lastly, and this the part that everyone hates (second only to adding adb to your path), you either have to sign the zip with jarsigner, signapk, or something similar, or turn off signature checking in your recovery. Signing the zip is essentially adding a digital signature so that your phone knows that the zip is intact. Clockworkmod recovery will let you toggle the signature checks in one of the options- poke around and get familiar with your recovery. It's probably in there somewhere.
I think Titanium backup will let you freeze/unfreeze apps- you might want to consider it.
Thanks
Sent from my HTC Vision using xda premium
Did this work? Like to buy a beer for someone who wants to upload a zip with a file explorer all for a project I have that has no play store or file explorer on it. Thank you
hi,
i want to know how do devs create an apk file that can edit files in system folder. for example sound files etc. generally a flashable zip is created which will replace the stock file with a modified one. The same thing, this time without going into recovery but being able to do it with an app itself.
Yes, ready to learn.