I want to build an app that would remotely install other apps on controlled tablets.
I know from the Android SDK documentation that you cannot install an APK programatically without user interaction, and rightfully so!
However, it looks like Tab Pilot http://www.tabpilot.com/ does this in background.
Any idea on how they do it? Apparently, the tablet needs not be rooted.
Related
I'm beginner in Android. I want to know if there is any way that when users install my app in their devices (rooted devices), my app be installed as a system app automatically. Is it possible? If yes, how?
We are providing one default app for our customers with android phone. Which user can not be uninstall. I have used Device Admin feature from this example But user can delete app by deactivate from settings.
Another possible way I have found to install app in System/apps folder like all google apps (I am not sure).
For that I need to root access, so I am planning to do following, But not sure how to implement it.
Programatically Root device
Install app in System/apps folder
Unroot device again
Like many System apps, How they are doing for such kind of feature ?
Please help.
I made custom Launcher, which can't be uninstalled.
Important: root the phone
install application as system application (install into /system/app) from recovery mode.
Optional: subscribe for package removal, check if user tries to delete your app - and don't allow him to do this action (close package removal activity)
I made archive, which can be installed from recovery mode. Also my Launcher requires custom Superuser application (I don't want see notifications from Superuser app, when my Launcher runs root commands - silently give root access to my Launcher).
What I have in result: Launcher application, installed as system app (can't be removed). Also I blocked other launchers installation, added white list of allowed applications (don't install applications, which can manage file system and modify something important).
This solution full of tricks, but it's easier to implement than custom ROM.
If you customize the ROM, and install it to device somehow (contact device manufacturer from China for ex., request target device drivers and build the ROM on device), you can sign your application with system key, place it with other system apps, and then it can't be removed. In this case root not needed, but it requires much more time and power to implement.
If you will root device programmatically, than you should have exploit, which makes rooting. And different devices are rooted differently.
It's simple there is something like Device Administrator but please note that user will be prompted to enable admin mode on installed app.
HERE you can find quite good example description and tutorial - please try.
Here's the scenario. I have been asked to make an application which requires several system app only permissions. This is because the tablet is going to be used by employees and it needs to be locked down ect.
Is there is a programmatic way install a system app instead of installing it as a user app? If not what is the best way to make and install the system app to the tablet without rooting it if possible?
You have to root it. To be a system app, you need to be installed with the OS or as part of an OS update. That's the entire point of being a system app- the user can't have installed it. You'll need to root the device to put it on.
Just that, I like to know is always all the preinstalled apps are with the uninstall button disable in Android.
If I am reading your question correctly, some of the pre-installed apps can't be uninstalled without rooting your phone using cyanogenmod or rooting your phone.
Some pre-installed applications can be uninstalled. For example in Android 4 (ICS) you can go to Settings -> Apps and select the "All" tab. There you can uninstall some of the preinstalled software.
Root the phone, put the APK into the /system/app folder and then unroot the phone. This is possible on a Droid 4 at least in theory. Not sure about other hardware models. If you can root and unroot the phones it should work.
This depends on the Device manufacturer. They have the possibility to install the app in any way they like before they freeze the image and flash it to the hardware in the factory.
For example some of the Branded apps might be installed under system privileges, but some of the more "friendly recommendation" apps might be free to uninstall.
From what i understand in ics apps in usolder can be uninsfreeled, apps in system folder instead of uninstall the button reads disable. Except for only s slight few only, these apps are reQuired by the os for the user to be able to"enable" a disable App, so i think i the app needs to be signed by the room cooker our needs top have a intent in the manifest like a launcher or home app (since if you disable your home launcher you bricked your phone, so you can't disable it, but if you give your app a intent label of copied from the Android source launcher then the phone will think it's a launcher, and not let you disable it, you will prob have to set the home launcher back to be default or Android will ask you witch launcher too use Every time user hits the home button, i was looking for the same answer found this page
Android 4.0 Api to Disable Apk Witch gave me the idea, currently thus reply is closest I've come to impinging the idea, i well be trying it soon, if you beat me to it, let me know tour results, and i well do the same.
And to install a app in /system/app a uninstall.zip won't do it, you need too root the phone, install the app, xfer it to system (i use system/app mover available in the play store free, the too secure ot Unindtsll app mover, and unroot, any way good luck.
P.s. I'm Not a Dev, i just understand the format format of the app language, and can c effectivly search for info, so please no code questions. i can't answer them, but google can.
I have one requirement of installing the apk without user intervention.
I know there is very straight forward way to install the apk programmatically but that requires the user action. I want the way where user action is not required and that will happen in background.
It is required because the user will have mandatory to install the apk.
I think there is no easy way to do this and it may require to write the own apk installer or some firmware.
Please share if you have some pointers on how to start with this.
Thanks in advance.
If you want to install apk without user Interaction than plug Your Mobile Cable with the computer & than run your code in the sdk AS & when the project install on the emmulator it will automatically install on the Devise also Try this.
Your only realistic option to actually do this on the device is to become your own android device distributor and flash devices with a custom(ized) system image where the "mandatory" apk is installed on the system partition - the way carriers do with their assorted non-removable built-in apps.