If you were to install a Home Screen application that does not give you access to the System Settings screen (to go to Manage Applications), and also does not let you launch Apps (such as the Market App or 3rd party install/unistallers), is there ANY way to uninstall such an application?
I know that Android requires your permission before letting a new App take over the home screen privilege. But say you're trying a newly published Launcher app that is buggy (or malicious). You are of course still going to tell Android it's ok to give this App the Home screen privilege. Now once it is installed, your phone is now effectively useless?
Is there a way for a typical end user (who doesn't have Eclipse/ADB) to get out of this situation? Other than doing a complete factory reset?
I realize there are ways to uninstall an App via ADB ("adb uninstall package.name")
But it seems like a typical end user is potentially screwed if they ever install such a malicious/buggy app. This seems like a gaping security hole in Android, no?
You are right, there is no nice way of uninstalling such an application from the Android device itself. The only solutions are the ones you are mentioning, factory reset (which is difficult for most users, if the settings menu is not accessible) or using adb.
I wouldn't call it a security issue, but it could certainly be a problem for users that are not careful about what they are installing.
One of the big selling points about Android, that really puts the system way ahead of the competition, is the possibility to replace any app you don't like with something you download and install yourself. ("All applications are created equal.")
The price to pay for this freedom is that there are rogue applications that will try to take over.
Someone on StackExchange posted a very helpful solution to this problem. It seems that in addition to a factory reset, most phones also support a Safe Mode that disables other Home/Launcher apps that have been installed (at least that's what it did on my Droid X). This allows you to then uninstall the offending application. Then simply reboot again back into normal mode to get your old phone back.
There's actually an easier solution these days, surely? Use the market.android.com website to install a new homescreen app remotely onto your device. Once you've done this, hitting the home button will once more bring up the list of homescreen apps to choose from, and you can select a non-malicious, non-buggy one, and then use that to uninstall the evil one.
Related
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.
I am trying to learn android development but after running my app through my phone it runs fine, but I can't close it. It doesn't even appear as a running app under apps on my phone settings. It doesn't appear anywhere on my phone but it is running. There doesn't seem to be any kind of stop button in eclipse.
How do I close the app on my phone/eclipse cleanly so I can carry on editing and re-run it?
The only thing I can think of is just unplugging the USB cable but I am afraid of breaking things. ADB feels fragile enough as it is.
I have searched a few answers on this site but they seem to be talking about something completely different.
You may use DDMS. Select process representing Your app on the list in top left window and click stop button You will see above.
Also, if you just re-install the app after some code change, it should re-run...even if you have the app open on your phone!
Hold down the home key until a list of running apps appears. Then just swipe it away :)
If you're truly interested in making an app go away completely then there's a FANTASTIC app called DevDrawer (https://play.google.com/store/apps/details?id=com.owentech.DevDrawer) that allows you to put package names of apps in it that you're currently developing. Trust me when I tell you that it will save you a LOT of time.
We have a tablet app that we're deploying at retail outlets. It currently self updates late at night but after it does it is no longer the default "home" application and the user is given the choice to start our app or the default launcher again. We'd like to always have our app be the default home application even after updates. Is there a way to do this on a rooted device?
This is an ICS based device so the addPreferredActivity doesn't seem to work as I cannot get the android.permission.SET_PREFERRED_APPLICATIONS permission even though the device is rooted. If there is a way around that, I think I could get this done..
Is there a way to do this on a rooted device?
The simplest solution is the one you rejected from the comment: remove the stock launcher and make yours be the only launcher.
This is an ICS based device so the addPreferredActivity doesn't seem to work as I cannot get the android.permission.SET_PREFERRED_APPLICATIONS permission even though the device is rooted.
Root, by itself, has nothing to do with permissions. In this case, SET_PREFERRED_APPLICATIONS is a signature-level permission, meaning that your app would have to be signed by the same signing key as the firmware, which will not be possible unless you roll your own modded ROM.
If I am reading the Android source code correctly, the results of addPreferredActivity() wind up in /data/system/packages.xml, in a <preferred-activities> element. Play around with modifying that file very carefully and see if that will get you what you want.
Sometimes it happens that some application cant work properly in rooted device i also had same kind of problem in my device (was also Rooted).so i had only one way remain that to install os again so i did it with use of some software (like superoneclick) and with use of it i unroot my device and reinstall os. then the application works perfectly so may be u should also unroot your device if its possible.
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.