How To Remotely Install Enterprise Android App on Multiple Devices - android

I spend a lot more time in the iOS space than Android, so apologies if this is an obvious question ...
We have an enterprise Android app that we need to roll out to a lot of locations nationwide. Ideally, we'd like to be able to install our current app (and future apps) without involving the onsite staff. Is there a way to do remote installs for Android devices? We could do the installs ourselves then ship out the devices, but there will be additional apps added to this project over the next year, so we don't want to keep shipping the devices back and forth. And due to the nature of the industry and end users, it would be best if we could control install centrally instead of relying on those remote staff to do so. And we are looking at >1000 devices, if that affects the answer.
All the solutions I've found so far are more for individual users, not for a large setup like ours.

Unfortunately I think this question may be closed as it is off topic (https://stackoverflow.com/help/on-topic) - however having dealt with the problem I feel your pain.
There are a few options (I have done several of these myself):
1. Write your own store: Requires creating a service and client, not easy
2. Use a BYOD tool such as MobiControl: https://www.soti.net/mobicontrol/

There are some solutions for this case, some are better than others and may not be helpful for your case, but these are some of them:
1 - Put your APK on a Web Server and config your APK to look on this server for new versions. Using an intent you can download it and open it, but it should prompt the user to accept the install.
2 - If devices are rooted, you can use the ADB commands to install the new APK without prompt the user to accept it.
3 - If you're able to do it, you can configure a VPN on your client's network, and use it to remote connect and use ADB for each device trough the network.
4 - If your App is in the Play Store, your app should auto-update if the app is configured to auto-update from the Play Store.
I'm sure there are some others ways to do it, so if none of these help you at all, don't worry.

Related

Install app without asking user

My application will be running on hundreds of android devices belonging to a single owner and I may need to modify the software as an update at some point.
I decided I should include a feature to check with the server for updates and download them, which is currently working.
Installing the update is the difficult part. I need it done automatically. Preferably with no user interaction since there are hundreds of devices and it would be very time consuming to do each one manually.
This is the problem, even with the device rooted, I can not find a generic way that each device can install the update without system specific information.
I have read questions like this but can not find a proper answer: Install Android APK without prompt
The bottom answer executes but I can find no installed app, so I assume it failed.
What you want to do is not possible without some serious hacks. A private app store might be a better fit.
If your client is a Google Apps user, you can create a private channel in the Play Store.
Distribute Android apps in your organization
If not, you will have to rely on third party solution like these one:
Apperian Mobile Application Management
ManageEngine Mobile Device Manager
I didn't try any of these, so you will have to do some research to check that they fit your needs

Deploying an Android app on devices without Play Store account

Big company X provides its employees with Android phones. Those employees don't necessarily own a Play Store account (gmail address required AFAIK).
At the moment, my alternative is to send a link to our .apk file, however the installation procedure might be quite complicated, not even mentioning the updates.
What's the best way to deploy my app to these phones?
Uchiha Madara is right, but it's not very convenient. They can also subscribe to Google Apps for Business ! Besides, if phones are Lollipop phones, you can very easily enable Android For Work, with pretty useful features to controll mass-hardware !
However, it's not the unique solution. You can self-host your apk file as you do, make a webservice and make your app able to communicate with to check updates ! The only problem is to teach users how to allow install from unknown sources (in security settings), which may be hard if they aren't very confortable with Android phones.
Other solution, some companies offer whole turnkey solutions, like PushLink
You could try HockeyApp to allow the users to install the application and know them about the updates.
http://hockeyapp.net/features/
My guess is you will have to use DropBox and they can download it as long as there is Wi Fi of course and ro to the settings > security and check Unknown sources so that it can install the apk from the internet, they can then go to their downloads folder and see the apk there, then install it onto their phones. Hope this helped!
Source: http://www.cnet.com/how-to/how-to-install-apps-outside-of-google-play/
I think the best way to achieve your requirements is using Microsoft Intune.
Microsoft Intune is a cloud-based service that focuses on mobile device management (MDM) and mobile application management (MAM). You control how your organization’s devices are used, including mobile phones, tablets, and laptops. You can also configure specific policies to control applications. For example, you can prevent emails from being sent to people outside your organization. Intune also allows people in your organization to use their personal devices for school or work. On personal devices, Intune helps make sure your organization's data stays protected and can isolate organization data from personal data.

Blocking Apk's from installing directly into BB10.2.1 updated devices

I port my android apps for making bb10 builds . Since now from bb10.2.1 update blackberry has introduced a new concept wherein apk's can be directly installed and can be installed in BB10 devices if the manage apps in settings menu of the phone is made ON. My question is that I wanna restrict my users from doing so and not installing the apk's into bb10 . And take download my app only from appworld.
Has anyone faced and has fixed this issue kindly tell me on how to solve the same.
Based on the Android behaviour, I don't think you can restrict users from doing so.
I haven't tried it on BlackBerry but from what you say, that option sounds analogue to the Unknown sources setting under Security settings on Android. If the user enables the installation of applications from unknown sources on their phone, there is now way to prevent the direct install of the apk (by adding something to your apk or any other way).
There is no way to restrict it to BlackBerry World only. If they get the APK, they can load it directly this way. There may be other ways around it though.
If, for example, your app is for sale and people are side loading a pirated copy, you could change your app to be free, and put some advanced functionality in your app behind an in-app purchase. That way they'll be forced to go through the storefront at some point to pay. This takes bigger changes to your app though, and the IAP implementation is likely different between BBW and GPlay.
You could also put in a version check: when your app launches, it checks a special file on your web server to see what the latest version of the app is. If they don't have the latest version, it doesn't let them use the app until they upgrade. This won't prevent side loading or piracy outright, but you can put out updates often enough to make side loading very annoying. When they are roadblocked and told to get the new version, you can link directly to the storefront to encourage them to get the latest version there.
Thirdly, and lastly, if you port your app to a BlackBerry 10 native, cascades, or WebWorks app, the app file is fully protected and can't be pirated or extracted from BlackBerry World (since the platform is secure). That will 100% protect you from piracy on BlackBerry 10.
I hope this helps!

Methods of auto-updating an Android business app?

I'm currently developing a small Android app that will not be on the Play Store. It is a private business application that will be used for a non-emergency transport company. The Android app will show drivers a list of pickups and drop-offs that they will have throughout the day and allow them to update the status of those trips. What I'd like to do is have some method of updating the app during off hours or when the device is idle. Ideally, it would be great if someone has already written some kind of Android updater that can run as a service. However, I certainly wouldn't mind writing this on my own.
Either way, all it needs to do is pull an APK from our servers and install that APK. I usually don't like doing things sneaky like this, but our clients want it to be this way so that they won't have to go to each device and press OK on permission prompts and they don't want to leave the responsibility of updating the software to the drivers.
I understand the security concerns, but it seems to me that there should be some way to allow an app to auto-update itself if the user permits it. Also, our app is signed and includes a certificate on the device to verify that the downloaded app is legit.
As CommonsWare mentioned it's not supported by standard android. If you take the path of creating your own firmware and installer take a look at the existing PackageInstaller. The required changes are not so complicated.
I did it for a couple of custom versions and it works.
Either way, all it needs to do is pull an APK from our servers and install that APK. I usually don't like doing things sneaky like this, but our clients want it to be this way so that they won't have to go to each device and press OK on permission prompts and they don't want to leave the responsibility of updating the software to the drivers.
This is not possible, except via custom firmware or on a rooted device.
it seems to me that there should be some way to allow an app to auto-update itself if the user permits it.
You are welcome to build your own customized version of Android that has this capability. Stock Android does not offer this, except to the firmware itself.

How does AppBrain's installation app work?

AppBrain has a fantastic new app that lets you automatically install applications on your phone using your web browser. Similar to the Chrome push. In their case, they are using it to let you install apps without a prompt directly on the phone. Engadget has a good video demonstrating their system.
http://lifehacker.com/5582169/appbrain-upgrade-installs-android-apps-instantly-from-the-web
My question is: What mechanism are they using to avoid asking for a prompt on the phone and to do the installation directly?
The reason I'm asking is that have a couple hundred android phones that run some custom software, the users have to manually update the software by clicking through the install process. And ideally I'd prefer to be able to do push updates without having to prompt people (in exchange for a free phone+service you have to run the software, so 'you shouldn't do that' doesn't invalidate the question of how do you do that). The biggest problems are that if you're doing rapid development/testing it's a pain to get everyone up to the right versions and it's hassle for people.
What AppBrian does sounds like a perfect fix to this problem, but how does it work? The only permission the AppBrain fast installer asks for is access to your accounts and network access. Now, there was the interesting development about Jon Oberheide's REMOVE_ASSET and INSTALL_ASSET which he says uses the GTalk service to imitate prompt-less installs. The interesting this is that AppBrian's FastWeb installer works on a 2.01 Droid but does not work on a 2.2 Nexus One (maybe one of the last round of Froyo updates disables AppBrain's access to the INSTALL_ASSET intent).
http://jon.oberheide.org/blog/2010/06/25/remote-kill-and-install-on-google-android/
Can anyone shed any light on this? I know auto update is coming for the Market but I'm not sure if this would be a usable workaround. I'm fine with saying 'you need to click to install this once', but having hundreds of people waste their time clicking 'ok' is a waste.
I personally think that this is something Google should support for Enterprise users in the future with the Device Administrator features. If I went with Android and could easily stage and keep people up to date with apps it wold be pretty useful.
So I think I have a reasonably good idea on how app brain is able to work its magic. I have found a couple of links you might find interesting and then you can always refer to the discussion on this other question.
Link 1: Here is a link on how the first app that was built by a researcher shows how a person with malicious intent can easily use two commands that google has put in for "our" convenience for silent install and uninstall...!!
Link 2:Here is how the exploit works and you could use it...

Categories

Resources