I use about 100 devices for testing. Believe me, I can't use any other solution.
What I need from you guys is a way to install updated APK's on these devices.
The only way I found is to root the devices, which I did, and install the updated APK.
My problem is that I didn't find how to install an APK programmatically from an app that is not a system app.
How can I do that?
Thanks!
If you have the possibilities, you may buy soti service. Their app let you mange the divices that you have enroll (for instance, install/update an app). It does not require root privilege as long as I remember. Check it out soti.net
Related
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 want to make my app be downloadable from my site, then I read about sideloading. Which, as to what I read, will install the app to the users phone instead of downloading the apk. Is there a way that I can make my site sideload my app?
Thanks.
You really don't want to do this. Sideloading (as in installing the app for the user) only works if the user has adb installed which usually only true for developers and root users. It is much better to provide either a download of the apk or to provide a link to the play store.
I'm writing an app and would like users to be able to download the apk and install it from my website. However, I would like the app to still be able to update through the market, is this possible?
I don't believe that it is possible.
You are better off to link them to the market from your website rather than hosting the APK file.
market://search?q=pname:your.package.name
That will open the market on the users phone. It is safer and easier than plugging in the phone and installing over USB.
As far as I know and tested, applications installed using .apk files, will be recognized from the android market. Some games though like Angry Birds, do not appear on my list of installed applications and unfortunately I can't find out why.
But for what is worth the following link will help you more.
http://androidforums.com/application-development/65282-can-you-keep-your-paid-app-updating-illegally-installed-apk.html
This is not possible without apps like Titanium Backup. Titanium Backup can link apps to their market counter-parts but you cannot do it without an app like that (which requires Root).
As i know - it's not possible.
Even if you'll use the same package names and signing certificates.
Is it possible to install an apk programmatically in the background or does the user have to accept the installation.
My scenario is that I want my employees to all have the same set of applications installed.
Of course they can install applications by them self, but I want them all to have at least some applications installed.
I'm not talking about installing applications from the market.
solution in this link
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(new File(Environment.getExternalStorageDirectory() + "/download/" + "app.apk")),"application/vnd.android.package-archive");
startActivity(intent);
Let me get this straight, you want to remotely put an app on a large number of phones and have it install itself? I don't think that's possible. If it were, think of the virus possibilities!
I think you can email the APK to the phones and have the user use something like Apps-Installer to install it, but I've heard of problems with that method. For your situation though, I would recommend trying it.
The only other alternative I can see beside putting them in the market would be to manually collect all the phones you want it on and manually put it on each one with the ADB, but that would be a huge pain.
adb install <apk name>
using above statement we can install apk into devices.For more information
install apk
It's a huge security concern and I do not think that Android allows that!
At least, I would not allow any util or service to install any app without informing me.
The best way would be console installation using command adb install <apk name>. You can have APKs in a remote server and all employees have to install them and send you the console output.
Some more requirements would be useful. Is the user required to have these apps? Do you want the apps to be updatable through the market? here's my thoughts in lieu of that information ...
The problem with not going through the market is that they won't get update notices and won't see those apps in the "my apps" list in the market. i'd rethink that ... It's probably not what the user wants, unless you are installing for example enterprise apps that aren't on the market anyway.
You could for example create a "recommended apps" app. It can show your list of apps, and indicate which are installed, and link to the market install page. This of course doesn't force them to have the app installed, but this is actually a friendlier thing to do.
There's also nothing stopping you from creating your own market app. The tools are all there in the SDK. Personally, I'd hate this as a user and would prefer the lighter weight integration on top of the existing market I mentioned above.
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.