I am using the market app Startup Manager on Android, but I am a little bit concerned in the way that it operates. Is it effectively runnning every time as a daemon and thusly keeping the apps from not starting or does it simply change the bootable flag in the apps, without running in the background?
2 Answers
It all very much depends on the "startup manager" used, and whether your device is rooted. As dotVezz answer assumes, there are some just de-activating the corresponding "listeners" (apps can be notified on events, and thus get started when they appear – the most famous event being boot_completed
; but there are many more, like network changed, SDCard mounted, battery low... If you are interested in details, see e.g. What's the difference between a service and a broadcast receiver?). However, doing that requires "root powers".
Thus "startup managers" working without "root powers" basically do nothing other than task mangers: killing the app once it started on a given event. They also in most cases stick to the boot_completed
event, and don't care about others.
Then there are those managers supporting both modi. Best one most likely is AutoRun Manager, my favorite I used for quite a while.
Now your question is specifically about Startup Manager. As you can see in its app description, and like I've written above, this app just cares for the boot_completed
event: it does disable/enable startup items from system boot. Its permissions do not include SUPERUSER
(aka root), so it cannot modify receivers/listeners. So it most likely just "kills" the apps when they start. Prove on that you again can find in the app's description: Note: For android 2.2 and higher OS non-rooted devices, some processes will restart themselves right after being disabled. They wouldn't do so if they were really disabled. But many apps do so when being killed.
AutoRun Manager, which I've mentioned before, supports both modi: If used in "Basic Mode" (which does not require root), it kills configured apps on start. In "Advanced Mode" (requires root) it "silences" their listeners, so they never receive the event broadcast and thus do not automatically start.
-
Glad you like it! I guess it's not necessary to say which method is to be preferred (killing or silencing)? Hint: #2. Especially for those re-starting apps. Let them start and kill them eats more battery than just not let them start. And for those re-starters, there could be a vicious circle of kill-start-kill, luckily detected by ARM and (from the description) might also be by SUM. Still, better to keep an eye on it.– IzzyCommented Oct 22, 2013 at 20:27
Some research indicates that this is most likely done by revoking permissions to the apps you specify. Specifically, the app needs android.permission.RECEIVE_BOOT_COMPLETED
in order to run at startup.
However, while this is the most likely situation, I can't speak for the exact functionality of Startup Manager.
Additionally, if you're concerned because the app's description isn't clear about how it works, you can alternatively use Autostarts, an open-source Android startup helper tool which controls which intents actually get sent to which apps.
android.permission.RECEIVE_BOOT_COMPLETED
from the apps, or even modifying the app in some way.