-
-
[讨论]关于Android 程序自启动与禁止自启动方法的讨论
-
发表于:
2016-9-21 22:14
14667
-
[讨论]关于Android 程序自启动与禁止自启动方法的讨论
Android 3.1后引入了一种机制,系统中的包管理服务跟踪应用的停止状态,然后用于控制是否启动这些应用。即Android Intent中定义了两种新的FLAG,FLAG_INCLUDE_STOPPED_PACKAGES和FLAG_EXCLUDE_STOPPED_PACKAGES,顾名思义,前者是允许已经停止的应用的Intent filter接收这个intent,而后者不可以。并且系统对于所有的broadcast intent都加了FLAG_EXCLUDE_STOPPED_PACKAGES这个标志。
也就是说,要想获得开机广播,你必须保证两点,1)你的应用程序在安装后必须运行一次;2)你的应用程序没有被强行停止。
----------------------------------------------------分割线-----------------------------------------------
对于一个apk,注册ACTION_BOOT_COMPLETED广播,可以实现开机自启动。
早期,有安全软件使用 pm命令禁止package或component,使得apk自启动失败。
最近做了几个实验,用Kingroot和LBE的自启动管理攻击关闭软件自启动后,发现apk中接受开机广播的component还是enable状态,但是已经无法自启动,所以,想了解一下这些软件是怎么管理自启动的。
另外,Android5.0以后,系统自带自启动管理选项了,这些是什么原理?
-----------------------------------------分割线---------------------------------------------
以上讨论暂不包含相互唤醒,全家桶等姿势,欢迎各种讨论,拍砖,不吝赐教!
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)