I'm trying to install one of my apps as system app. It does everything correctly except the fact that when you try to uninstall it instead of showing "disable" as other stock apps lets you uninstall the app.
After uninstalling the app from there, it is impossible to install the app again pushing it to /system/priv-app.
To install the app I've pushed it to /system/priv-app after remounting. I've tried to chmod 644 it or not, nothing changes.
Any idea of the reason why?
The answer is that the app needs to be signed. I thought it should be signed with the ROM's keys... but no, it's not needed at all. You can use your own key and it works.
Related
I´ve developed an APK which should be remotely managed via AirWatch. My problem is that I can install it successfully but I can´t uninstall it. Using AirWatch I can uninstall all apps in the device but this one. Is there any special permission/configuration I should have in the app to be able to uninstall it?
Thanks!
You can remotely manage only "Managed" applications. Check the application's Assignment settings and ensure that you've selected the option to make the app managed.
Your app will be an unmanaged app.
For uninstalling the unmanaged app, you need to provide the package name in uninstall application manifest for File/Action
How does Google play store app installs updates to the existing user apps ? I am trying to mimic a part of the functionality of Google play store, which is auto updating my app. I tried with the following approaches :
1) Run adb command "install -r -g /sdcard/myapp.apk" --> It failed giving the error:
'IOException:Error executing command'
2) Intent i = Intent(Action_View); i.setDAtaAndType(Uri.fromFile("pathTomyapk"); But no luck, this intent launches a launcher which inturn asks user to install the updates.
I want to get rid of that launcher, any ideas?
Build your own custom ROM, where your Play Store replacement is the designated market for the device, the way the Amazon AppStore for Android is on Fire devices.
There might be something for auto-update for devices that are part of Android for Work, though I haven't looked into that.
Otherwise, apps cannot silently update themselves, for obvious security reasons.
You should have a look at https://www.pushlink.com/
It has different update strategies that may be interesting for you. Of course, the "totally silent" update is only for rooted device, but the other more conventionnal strategies have the advantage of updating the app without neither leaving the app nor opening the Play Store to validate etc.
PS : I'm not affiliated to PushLink :)
Well the answer for my question is - It's not possible. Atleast without rooting or without flashing a custom ROM. If you are trying on a rooting device probably the adb commands would work. If you are able to include your app in /system partition of a device then it is possible. For now Thanks for reading this.
I recently fixed a bug in a demo version of my app. It's not out on the store yet, we're still testing.
The phone doesn't like it however : it tells me there's already an APK called that. That's true, but why doesn't it suggest to just replace it ?
And in the "Apps" settings screen, "Force quit" and "Uninstall" are greyed out - unclickable, can't do that for my app. Yes, I did quit my app, and the background service associated with it. Because yes, my app does require the following permissions :
Full Internet access
System tools : prevent sleeping, disable key lock, auto-start on boot
Hardware controls : audio volume
Storage : SD card
Any clues or things to do/check before uninstalling ? This other (empty) app that's also installed (an app I made when I was discovering Android for testing purposes) was uninstalled fine ...
Thanks in advance,
Charles
Possible causes I know of for it not offering to replace it:
You changed the package name, but you are using the same file name
for the APK.
You signed the package with a different keystore or key. Note that when clicking Run in Eclipse, it uses a debug keystore rather than the one you would use when exporting it for the store.
I'm not sure why it would disallow force quitting and uninstall. Maybe you just need to wait a few more seconds for that screen to finish loading, and the buttons will become active.
You can try opening a console and using adb uninstall com.yourpackagename to uninstall the old version, and see if it gives you any errors.
Got it !
First of all, see Tenfour's answer on impossible replacement. As for impossible uninstallation :
The "Lock Screen" permission makes my app a Device Administrator. And Device Admins can't be uninstalled !
The app can be downgraded in Settings -> Security -> Device Admins.
That's all folks ! Thanks for the help.
I was wondering if it is possible to uninstall the default Settings application on an Android emulator. I have already tried "adb uninstall com.android.settings" but it comes up with Failure.
Thanks
com.android.settings is not a user installable application. It lives in the system folders and as such is not user removable. If you rooted your device you could remove it but I suspect many applications rely on it and removing it will cause problems. That said root your emulator and try: How to get root access on Android emulator?
You can always create a new emulator image if you mess up the rooted one.
I haven't tried, but you can remove default applications with apps such as Titanium Backup if you're a rooted user.
** EDIT **
Overlooked the emulator part of the question - apologies.
I would advise against uninstalling it, as I'm not sure you can get it back - it's one of those things that you def need on your phone.
At least do a backup (Nandroid or otherwise) before removing it, so you can get it back easily if you make a mistake/need it again.
I've accepted for a while now that it's impossible to silently install an application on Android - that is, to have a program install an application bundled as an APK without providing the standard OS installation prompt and going through the app installer activity. But now I've picked up a copy of the Appbrain fast web installer, and it does exactly this.
How on earth is this possible? :D
I think the clue is pretty much in this statement I found here in the FAQ.
The fast web install worked for me yesterday, but it doesn't work anymore today. What's wrong?
The permission to install apps directly on your phone needs to be refreshed once every few days. Go back to the "Fast Web Install" app on your phone and click the button to give us the permission again. We are working on a future update that will optionally automatically refresh this setting.
I presume this is very similar to what Google does in the kill switch. I am assuming that the kill switch is an application on my device, just hidden from me. When Google wants to remove an application, it silently uninstalls it without asking for our permission. I am very sure this security hole is of their making. Now we just need to figure that out... =D
You can ( in a very hackish way ) install apps silently using adb. You have to enable USB Debugging, but just push the APK to /data/app. ie:
adb push MyApp.apk /data/app
or -
adb install MyApp.apk (cleaner way)
The second command MAY prompt for an installation, I don't remember off the top of my head.
IF you can work out what the standard installer does when it installs, you can replicate that behaviour in your app, however yours would need quite extensive permissions to do everything properly.
Seriously, don't even try.