Hello
So far from my tinkering i have came to realize that after an android app gets installed the following directory under the root file system gets changed
/data/app : here the apk is stored
/data/app-lib : here the app's native binaries are extracted
/data/dalvik-cache : here the app's dex binary is extracted
/data/data : here the app's db & other files are created under a folder named by the app's package
i rooted my nexus 5
i then installed a simple app
checked the directories mentioned above and saw new contents
then i copied the particular app's contents from the mentioned directories and kept them in a separate folder inside the sdcard directory
i then uninstalled the app & checked the above directories. The files corresponding to the app were gone as per my guess
Then i have copied back the contents from my sdcard to the above directories to restore the app without a new installation
But Now the Android OS is not showing the APP along with the others , but WHY ? Does the OS creates a tree somewhere in the filesystem during the installation ? or If there is some thing else which i am missing which i can change so that the app reappears automatically without any new installation .
Thanks in advance
i have solved the problem .. after reset the app was automatically got by the OS , because the installd daemon starts with boot
Related
Hi,
This is my first post so first I'd like to say hello to all of users
I'd like to understand more how apk files are installed on android file system. So there go my questions:
1. After installation (via market for example) apk files are stored somewhere in file system - data/app for example from what i've heard - are those apk only backed up installation packages or actual "executable" and program itself?
2. Where are stored application settings, user preferences etc?
3. Is process of uninstallation always means removing ALL leftover from each application or after some time system gets cluttered with those (I know it is not windows with registry leftovers etc but even in linux from what i know there could be some problems if app won't remove all dependant libraries and file when uninstalling)
Thanks in advance
Well I browsed through all the forums and I could not find anything that I am going to explain. There are some tits-bits here and there, but I hope this proves to be useful.
I will also explain if you have a xrecovery backup, then how to extract your games and progress from there.
Many of you might be switching ROMs very frequently or upgrading/downgrading their Android. While doing this, we lose all our apps and games and more importanly the game's PROGRESS, if we do not save them.
There are apps available to save apps/games and progress but there is a way to do all these thing MANUALLY. This for those who want the control in their hands , like me.
PART A:
Here's how you do:
1) Create a backup folder on the sdcard with a name that you like. eg. mybackup
1) from your filemanager or from the shell, browse to the directory /data/app and do ls -l. You will get a list of apps which you have installed.
2) Select the app that you want to save/backup and move it to sdcard folder that you have created. The names here would be long but it will be almost similar to the name you see in the UI.
For eg.
Code:
cp uk.co.aifactory.moveitfree.apk /sdcard/mybackup
. would be the command to backup Move It game.
3) Now go to the the directory /data/data and do a ls -l. browse through the list and find a directory which matches the name of the apk without the .apk extension.
for Eg. for the 'move it' game, you will find a directory uk.co.aifactory.moveitfree
Move this directory to the backup folder
Code:
cp -r uk.co.aifactory.moveitfree /sdcard/mybackup
.
For those working on shell, remember to do cp "-r" as you are copying a directory.
You are done!!. You have backed up your app and all the progress related to that app.
Now you can copy mybackup folder to your PC or keep it in the sdcard if you have enough space. Its your choice...
PART B:
How to get the progress and games back after flashing the ROM or after wipeout.
Its easy. Just reverse the steps mentioned above.
1) copy the .apk file from your backup folder to /data/app through filemanager or shell.
Eg.
Code:
cp /sdcard/mybackup/uk.co.aifactory.moveitfree.apk /data/app
2) copy the data directory to the location /data/data.
Eg.
Code:
cp -r /sdcard/mybackup/uk.co.aifactory.moveitfree /data/data
You are back to business, just browse through your apps and enjoy the games from where you left.
UPDATE :
For Angry Birds, when you are done with the above steps, delete the file
/data/data/com.rovio.angrybirdsrio/files/settings.lua
It app will not open up if you dont do it.
-----------------------------------------------------------------------------------------------------------------
Those who have already backedup their ROMs and not saved their apps as mentioned above, dont worry, I have a solution for that too. I am specifically going to explain the method to get it from xrecovery backup.
When you backup your ROM or system using xRecovery, it stores all the data inside /sdcard/xrecovery/backup/<date>.
Inside that folder, there are 3 img files.
cache.img
system.img
data.img
data.img contains all the data/app/games that you had installed, while system.img contains everything that came bundled with ROM. It might differ a bit per devices, but mostly its data.img
I tried to open this file ".img" with a lot of extraction tools but none could help. Atlast, i got help from our great <zdzihu>, and he said, he saves the archive with yaffs2 compression.
There is an app "unyaffs2" which you can use to extract the contents of the archive. Get it from here http://forum.xda-developers.com/showthread.php?t=910255
This app will extract the contents to the folder where you ask it to. Once you have your data, repeat the above mentioned steps to get your apps and games running!!
Thank you for the how to
it not change owner
this is very big problem
Hi dateno1, can you be more specific?
What app are you trying on
What method u used to copy
What error r u getting exactly
Which device and on which step
Sent from my X10mini using XDA App
ronaksv said:
PART B:
How to get the progress and games back after flashing the ROM or after wipeout.
Its easy. Just reverse the steps mentioned above.
1) copy the .apk file from your backup folder to /data/app through filemanager or shell.
2) copy the data directory to the location /data/data.
You are back to business, just browse through your apps and enjoy the games from where you left.
Click to expand...
Click to collapse
i have question on the process of getting it back.
on step 1 you said copy.
is it also ok if you are going to reinstall it then proceed to step 2.
thanks.
Each and every android application is bundled as an apk file. When an apk file is installed different entites (files) of the application are stored in different parts of the system.
How can i find out where all the files of a particular application are stored inside the android file system? Is it the right way to parse apk file and find the places where all the parts of the app are stored?? Any ideas?
The apps .apk file should be in /data/app while the apps personal space with settings,configs etc. are in /data/data/packetname/
If it is preset to install to sdcard there is also /sdcard/Android/data
For files that get created on the /sdcard, there is no way of tracking/knowing what belongs to what app.
(Preface for noobs : /system and /data are two different partitions. Freeying up /system won't get you more intrenal memory, but /data does. Old apks rest in /system and updated versions placed in /data. You can replace the old apks using newer versions)
I heared Titanium Backup PRO does something like, but you can do this with any File Explorer with ROOT access. Its works 100% for Android Gingerbread 2.3.x , try on other versions.
### Do it on your own risk, I am not responsible for anything ###
1. Update the desired app to the latest version from Google Play Store
2. Open File Manager, Enable ROOT_ACCESS, remount /System as writable
3. Goto /system/app and backup the desired apk to sdcard
4. Goto /data/app and copy updated apk
5. Paste into /System/app
6. Note down the filename of old apk and delete the old apk
7. Rename the new apk into the old filename
8. You may encounter a FORCE CLOSE if the app was running in background
9. The updated apk in /data/app will be removed automatically
10.Restart your device, Done!
I replaced Playstore, Maps, Google Search ect..
Example: For PlayStore, updated apk will be com.android.vending-1.apk, and old apk is vending.apk
Hit thanks it it works, Thanks
thanks, nice guide! All is ok (PlayStore, Terminal Emulator), but if I merge last version of "Google Play Service", then Gmail or Maps shows the message "Unknown issue with Google Play services" when I open them... do you know how to solve? thanks in advance
p.s. configuration in signature
Better use Link2SD. It makes the integration of updates into system seamless. Rebooting the device is optional (restart only if you encounter errors).
thank you for your suggestion! I tried TitaniumBackup but it gives me the same error, then now I'm trying with Link2sd and it works well, BUT the new apk file is in system/app instead of system/priv-app, and its name is "com.google.android.gms-1.apk" instead of "PrebuiltGmsCore.apk"... can this create some problems in future?
EDIT: I tried moving to the priv-app folder and renaming the apk to be identical as before and it seems to work... for now...
It's the package name, it won't create any problems. There is no need to rename the app to match the old one. Default location when converting to system app is in /system/app. I don't know if you can change the location, but you can move it manually to /system/priv-app thru root explorer. Just restart the device afterwards to eliminate FC errors.
Hello guys Im really sorry for bothering you but I have a Problem . I copied that
Pool Live Pro 8 Ball 9 Ball_v2.6.5_apkpure.com.apk apk from a trusted website for apks- Apkpure to the internal storage of my nougat 7.1.1 Sony Xpreria XZ Premium. It shows as normal apk file when my phone is connected to the pc and i can delete the apk file with no problems from my computer but when i restart my phone and that apk file is still there. I cant replace it with file with the same name - it shows the device is not connected , but i can copy any other files than that apk. The apk shows 47 mb when connected to pc, but when i see it in ES Explorer, SD Maid or the built in file explorer it shows 0b size. I can delete it with SD MAID and ES Explorer and some third party apps but it reappears with the next restart or even not a restart - only when clearing the data of sd maid and enter sd maid again for example and its still there . with the built in xperia file explorer i dont even have the option to delete it -only to share and thats only for that file. I copied the apk from the pc to another place of the internal storage [second copy] but in a folder and when i try to delete that folder the system recreates that folder with some random number in the original name of the folder, when i try to delete it again it creates even more numbers in the name. The apk can be seen in certain file explorers - it cant be seen in File Commander which i use most often
Im Not rooted and i tried to -
1 move it in a folder and then delete the folder[unsuccesfull - does not allows me to move] or replace, rename it with other file with the same name[unsuccesfull], delete it even with third party file cleaners and with some it shows deleted succesfully and next time i enter its still there [system recreates it]
2 tried Applcation checker apps but they show data only for installed apps
3 cleaned system cache partition, scaned with avg in safe mode [no problems found]
4 deleting it with ADB rm command --[ it shows me theres no such directory] - the full path of the ghost apk is /storage/emulated/0/Pool Live Pro 8 Ball 9 Ball_v2.6.5_apkpure.com.apk
Thats the adress of the apk - just type in google Pool Live Pro 8 Apkpure and its the first result
PLEASE guys help me Im confused a lot how can i delete that apk and is it a virus or something - I dont want to factory reset because i have too much data .