I made some stupid things to my smartphone and now I am close of solving them...
My question is...Does anybody know how I can change the name of a folder from /system/priv-app/ so my device still considers the app as installed?
The app that I'm talking about is Google Services Framework and my device says it's installed but he says the app takes 8,00KB instead of 3,28MB(the size of the apk as told by Apps2SD)
Also Apps2SD seems to identify where is the app located after the folder name change but my system doesn't...
I change the file's name from "com.google.android.gsf-1" to "GoogleServicesFramework" so that the .odex file can work...
So anybody knows how should I set the permissions and owners of the folders and files so that the system finds where the .apk and .odex are located?
Related
please help this windows guy/android noob figure this out. ok i'm thinking an apk file is equivalent to an msi file.
i download an app from the android store...
it downloads as apk file to /data/app...
ok so is that the final home for the apk file or does this extract and "install" files and folder in other locations on the internal memory or sdcard?
does the app run from this location? when uninstalled, is it removed entirely or are there orphan files that can be left behind? where is the data associated with that app saved? same folder /data/app/?
when titantium backs up an app, does it just copy the apk files from /data/app?
thanks
mark
http://en.wikipedia.org/wiki/APK_(file_format)
thanks, i already saw your link. doesn't really address my questions though. and yeah i do google questions prior to posting.
markkal123 said:
please help this windows guy/android noob figure this out. ok i'm thinking an apk file is equivalent to an msi file.
i download an app from the android store...
it downloads as apk file to /data/app...
ok so is that the final home for the apk file or does this extract and "install" files and folder in other locations on the internal memory or sdcard?
does the app run from this location? when uninstalled, is it removed entirely or are there orphan files that can be left behind? where is the data associated with that app saved? same folder /data/app/?
when titantium backs up an app, does it just copy the apk files from /data/app?
thanks
mark
Click to expand...
Click to collapse
I was in a hurry when I posted the link and that was the best I could do at the time.
apk is more like a java jar file (in fact you can sign your apk with jarsigner in java) or self extracting zip. Don't quote me on it, but you need both the files in /data/app and /data/data to run the application. Some gets left inside the container, and files that get modified a lot are extracted to /data/data (along with data that personalizes the app for you, such as settings and profiles).
The xml manifest file in the apk tells it what permissions to ask for and what systems it can run on and such. If you get this http://code.google.com/p/android-apktool/ you can reverse the apk so you can make sense of the files inside of it.
Titanium backup takes both the app and the data and stores them on the sdcard (unless you only tell it to backup the app, then it only takes from /data/app). The files located under /data/app are the entire application itself though and that will run if you give it to someone else as if you downloaded it from the market.
thanks for the great response.
I am trying to sync a rostering app between two devices using dropsync.
The .db files that need syncing are in the /data/data/com.blah.blah/databases directory. Using Root explorer I can change the permissions to give full rw permission to others. The two .db files will then upload to the dropsync server.
The problem is that whenever the app is opened and anything modified, the permissions change back to default and thus dropsync can't access the modified .db
Is there anyway to change this or am I wasting my time? what is the 'sticky' box option in RE?
I'm not sure precisely what "sticky" means, but it's not what you want--it doesn't involve persistence or "sticking".
You could try to make the files not owned by the app but set it so the group is the app. Make sure the group can read/write/execute, or whatever it needs. This way, the app can still use the file but won't be able to change its permissions.
Of course, it could see that it doesn't own the file and refuse to run. I'm not sure what sort of checks the program's authors implemented. This also won't work if the file is deleted and created anew--the new file would be owned by the app.
Yeah thanks for that,
I tried the ownership and group swap earlier, and am pretty sure the app re- writes the db.
Don't think is going to work.
cheers
Well its obvious that the app, when opened sets the permissions to the .db files so that they wont be usable by others. The way you describe the problem is more likely to be a file owner problem and not with the permissions. Try to set the app and the files to the same owner and see if that works. You could always make a script that would change the permissions/ownership of the file.
FYI,
The sticky bit is a special part of the permissions mask for a file or directory. When set on a directory, it tells the system to prevent anyone but a containing file's owner from deleting files in that directory. This is handy if you have a directory that's being used by multiple users on a system as scratch space as it prevents people from wiping out others' files.
For files....the behavior isn't defined.
Hope this helps,
- chris
I have a rooted Galaxy M Style phone with stock Gingerbread 2.3.4 firmware. I am trying to customize my stock camera app, but am not sure what I'm doing wrong. I plan to replace the autofocus_ok.ogg with a different tune from my phone. I checked the properties of the autofocus_ok.ogg and saw it's a mono, 44100hz, and 96 bitrate file. The tune that I have has the same properties. So this is what I have done so far:
I backed up camera.apk to /system/app/camera.apk.bak and the camera.odex to /system/app/camera.odex.bak. I left a copy of camera.odex in /system/data. I copied the camera.apk to my memory card and placed the file on my computer. I renamed the file to a .rar. I then deleted the autofocus_ok.ogg and placed the tune that I wanted in that directory. Then I renamed it to autofocus_ok.ogg. I renamed the file back to .apk and transferred the file back to the memory card, then over to /system/app. The camera app will not install/not showing up on my phone. I am transferring the files through root explorer on my phone.
I worked with the original apk file again with apktool. I was able to decompile and replaced and renamed the files that I needed again. I compiled the file and transferred the file to /system/app again, but the apk will still not install. I checked the complied apk file and noticed that the file didn't have the META-INF folder, so I copied that over to. Tried to install it again by copying the file to /system/app, but it still won't show up on my phone. Is there anyway for me to change the autofocus_ok.ogg without a custom rom?
Thanks.
ImAhNoBoDy said:
I have a rooted Galaxy M Style phone with stock Gingerbread 2.3.4 firmware. I am trying to customize my stock camera app, but am not sure what I'm doing wrong. I plan to replace the autofocus_ok.ogg with a different tune from my phone. I checked the properties of the autofocus_ok.ogg and saw it's a mono, 44100hz, and 96 bitrate file. The tune that I have has the same properties. So this is what I have done so far:
I backed up camera.apk to /system/app/camera.apk.bak and the camera.odex to /system/app/camera.odex.bak. I left a copy of camera.odex in /system/data. I copied the camera.apk to my memory card and placed the file on my computer. I renamed the file to a .rar. I then deleted the autofocus_ok.ogg and placed the tune that I wanted in that directory. Then I renamed it to autofocus_ok.ogg. I renamed the file back to .apk and transferred the file back to the memory card, then over to /system/app. The camera app will not install/not showing up on my phone. I am transferring the files through root explorer on my phone.
I worked with the original apk file again with apktool. I was able to decompile and replaced and renamed the files that I needed again. I compiled the file and transferred the file to /system/app again, but the apk will still not install. I checked the complied apk file and noticed that the file didn't have the META-INF folder, so I copied that over to. Tried to install it again by copying the file to /system/app, but it still won't show up on my phone. Is there anyway for me to change the autofocus_ok.ogg without a custom rom?
Thanks.
Click to expand...
Click to collapse
erm... is the permissions set correctly rw-r--r-- ?
MoonBlade said:
erm... is the permissions set correctly rw-r--r-- ?
Click to expand...
Click to collapse
Yup, permissions were set correctly like rw-r--r--. Owner is root:root. Those are the permission that I set on the apk file like they were on the original file. I just realized that the compiled apk's from apktools doesn't show up on my phone. The apk that I created by opening up winrar and just replacing the .ogg files do show up, but I get the error "The application Camera (process com.sec.android.app.camera) has stopped unexpectedly. Please try again."
Anything else I can try or a thread to refer to?
ImAhNoBoDy said:
Yup, permissions were set correctly like rw-r--r--. Owner is root:root. Those are the permission that I set on the apk file like they were on the original file. I just realized that the compiled apk's from apktools doesn't show up on my phone. The apk that I created by opening up winrar and just replacing the .ogg files do show up, but I get the error "The application Camera (process com.sec.android.app.camera) has stopped unexpectedly. Please try again."
Anything else I can try or a thread to refer to?
Click to expand...
Click to collapse
why dont you try to push the modified apk manually using root explorer or so instead of pushing via adb ..
after decompiling apk and modifying it, compile it into some folder and then copy it into you sd card then use root explorer and manually push(copy) the apk into system/app .. give proper permissions and then reboot your phone..
Here are some guides to use apktool
http://forum.xda-developers.com/showthread.php?t=1891686
http://forum.xda-developers.com/showthread.php?t=1989533
MoonBlade said:
why dont you try to push the modified apk manually using root explorer or so instead of pushing via adb ..
after decompiling apk and modifying it, compile it into some folder and then copy it into you sd card then use root explorer and manually push(copy) the apk into system/app .. give proper permissions and then reboot your phone..
Here are some guides to use apktool
http://forum.xda-developers.com/showthread.php?t=1891686
http://forum.xda-developers.com/showthread.php?t=1989533
Click to expand...
Click to collapse
I have been pushing the modified apk through root explorer all this time. I don't even have adb install, haha. The procedure you explained have been the way I have been doing it the whole time, lol. I read the threads you posted and the procedure is the same as I've been doing it, except for the second thread. I can't grab the apktool from 4shared because I don't have an account. I am using the latest apktool 1.5.2. Also, I didn't understand what PulseDroid was talking when he said "We are NOT done just yet, we cannot use the new apk's... we have to take what we did and add it back to the original apk file to keep proper signature use something like 7zip, take the 'resources.arcs' file and any other xml files you edited out of the "-new" apk and copy them into Original apk". So I'm suppose to replace the resources.arcs and the .ogg files that I created from the new apk to the old apk? I didn't mess with any xml file.
Anyways, is there anything else I can try?
EDIT: ........I feel so embarrassed. I checked out this thread http://forum.xda-developers.com/showthread.php?t=2378177 and saw this post "Drag your replacement files into WinRAR and (here's the important part) in the Compression Method drop-down choose "Store"." All this time I have been compressing the file as "Normal" in Winrar, instead of "Store".
All in all, I did not need apktool at all. I used the original apk and opened it up in Winrar. I deleted the files that I wanted to replaced and put in the files that I wanted. Each time I put something in the file in Winrar I get a prompt for compression and instead of "Normal" compression just use "Store". It was that simple.
This helped me, thank you!
Hi
I'm trying to move my security software apk file to the /system/app folder to make it hard reset proof. I renamed the original apk which is in the /data/app folder. I then copied the file to the /system/app folder and renamed it to the original filename. I then installed the apk, chose replace. What happend was that the app created another apk in the /data/app folder this time with a "2" behind it.
I'm guessing the apk has code in it that tells it to install there. So what I was wondering, can I set a specific default install directory, install the apk and then return it to default?
or
Where do the file go after the apk is ran, the program isn't ran by the apk because when you try and run it, it just asks to install it, not open the program. Could I move the actual app files and edit the install path in where the os stores the list of installed apps and there paths (where ever that is?)?.
I used the 'uninstall' app to remove the seccalendarprovier.apk which moves it to another folder they call the "recycle bin". Anyways I realized I need that because it's the back end of the calendar so I tried to restore it from the recycle bin and it fails. So I used a file manager to mount /system/app and manually copied to .apk, .odex and .conf back. I confirmed the files are there but the calendar app wont work. Any ideas what I'm doing wrong?
smalco44 said:
I used the 'uninstall' app to remove the seccalendarprovier.apk which moves it to another folder they call the "recycle bin". Anyways I realized I need that because it's the back end of the calendar so I tried to restore it from the recycle bin and it fails. So I used a file manager to mount /system/app and manually copied to .apk, .odex and .conf back. I confirmed the files are there but the calendar app wont work. Any ideas what I'm doing wrong?
Click to expand...
Click to collapse
looks like it needs to be in /system/priv-app instead of /system/app. Moving it there appears to have fixed it. Apparently "uninstall" app can't handle copying files there...