自啟動(dòng)&關(guān)聯(lián)啟動(dòng)

當(dāng)前自啟動(dòng)

private final String[] mActions = new String[] {
Intent.ACTION_PACKAGE_CHANGED, Intent.ACTION_PACKAGE_ADDED, Intent.ACTION_PACKAGE_REMOVED, Intent.ACTION_PACKAGE_REPLACED, Intent.ACTION_BOOT_COMPLETED,
ConnectivityManager.CONNECTIVITY_ACTION, "android.intent.action.ANY_DATA_STATE", "android.intent.action.NEW_OUTGOING_CALL", "android.intent.action.PHONE_STATE", Intent.ACTION_USER_PRESENT,
"android.net.wifi.STATE_CHANGE", "android.net.wifi.WIFI_STATE_CHANGED", Intent.ACTION_TIME_CHANGED, BluetoothAdapter.ACTION_STATE_CHANGED, Intent.ACTION_POWER_CONNECTED,
Intent.ACTION_POWER_DISCONNECTED, "android.net.conn.CONNECTIVITY_CHANGE", Intent.ACTION_MEDIA_EJECT, Intent.ACTION_MEDIA_MOUNTED
};
實(shí)現(xiàn)機(jī)制PackageManager.setComponentEnableSetting

adb shell pm grant com.qihoo.sleep android.permission.CHANGE_COMPONENT_ENABLED_STATE

Operation not allowed: java.lang.SecurityException: Permission android.permission.CHANGE_COMPONENT_ENABLED_STATE is not a changeable permission type

Rom自身方案

  • HUAWEI(EMUI)
    com.huawei.systemmanager


    Screenshot_20180422-101517.png

    自啟主界面Activity可正常喚起


    snp20180413100516673.png

Screenshot_20180422-102200.png

關(guān)聯(lián)自啟Activity(exported = false)無(wú)法直接喚起,只能引導(dǎo)用戶從主界面進(jìn)入


snp20180413100941338.png

snp20180413103645577.png

IMG_20180422_103942.png
  • SAMSUNG
    鎖屏后經(jīng)常有這種log:
    E/MARsPolicyManager: Package: com.baidu.yuedu hostingType: broadcast is Restricted by policy: autorunpolicy(4) caller is: ProcessRecord{726fc06 1267:system/1000}
    E/MARsPolicyManager: Package: com.financial360.nicaifu hostingType: broadcast is Restricted by policy: autorunpolicy(4) caller is: ProcessRecord{726fc06 1267:system/1000}
    鎖屏后kb&禁止喚醒著隆,并沒(méi)有forcestop,除非設(shè)置白名單(即使在白名單中7天未使用也會(huì)禁止喚醒)。
    UI不是通過(guò)Setting通贞,而是自帶的StartManager


    Screenshot_20180404-104910.png
Screenshot_20180413-105231.png
snp20180404111331038.png

同樣二級(jí)頁(yè)不可直接喚起

$ adb shell am start -n com.samsung.android.sm/.ui.ram.RamActivity
Starting: Intent { cmp=com.samsung.android.sm/.ui.ram.RamActivity }
java.lang.SecurityException: Permission Denial: starting Intent { flg=0x10000000 cmp=com.samsung.android.sm/.ui.ram.RamActivity } from null (pid=22393, uid=2000) not exported from uid 1000
at android.os.Parcel.readException(Parcel.java:1620)
at android.os.Parcel.readException(Parcel.java:1573)
at android.app.ActivityManagerProxy.startActivityAsUser(ActivityManagerNative.java:3170)
at com.android.commands.am.Am.runStart(Am.java:903)
at com.android.commands.am.Am.onRun(Am.java:362)
at com.android.internal.os.BaseCommand.run(BaseCommand.java:47)
at com.android.commands.am.Am.main(Am.java:103)
at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:257)

  • MIUI


    Screenshot_2018-04-14-11-03-36-753_com.miui.securitycenter.png

不允許自啟動(dòng):
broadcast喚醒失敗
W/BroadcastQueueInjector: Unable to launch app com.qihoo.cleandroid_cn/10285 for broadcast Intent { act=com.qihoo360.mobilesafe.opti.schedule.ACTION_INIT_SCHEDULE flg=0x30 pkg=com.qihoo.cleandroid_cn }: process is not permitted to auto start
service喚醒失敗
W/WakePathChecker: MIUILOG-WAKEPATH: call was rejected by wakepath. userId= 0 caller= com.example.myapplication2 callee= com.qihoo.cleandroid_cn classname=com.qihoo360.mobilesafe.opti.service.ExportedService action=com.qihoo.cleandroid_cn.QihooAlliance wakeType=8
允許自啟動(dòng):
broadcast喚醒成功
D/WtComponentManager: start the package is com.qihoo.cleandroid_cn the call is com.example.myapplication2 startType is 4
D/BroadcastLimitPolicy: [ALLOW] [broadcast] callerPackage com.example.myapplication2 start process with Intent { act=com.qihoo360.mobilesafe.opti.schedule.ACTION_INIT_SCHEDULE flg=0x30 pkg=com.qihoo.cleandroid_cn } componentName com.qihoo.cleandroid_cn/com.qihoo360.mobilesafe.opti.schedule.ScheduleInitReceiver [reason:3]
service喚醒失敗
D/WtComponentManager: start the package is com.qihoo.cleandroid_cn the call is com.example.myapplication2 startType is 2
D/LimitPushControlPolicy: check if com.qihoo.cleandroid_cn:resident is a push
D/LimitPushControlPolicy: com.qihoo.cleandroid_cn:resident is not a push
W/ActivityManager: Background start not allowed: service Intent { act=com.qihoo.cleandroid_cn.QihooAlliance pkg=com.qihoo.cleandroid_cn } to com.qihoo.cleandroid_cn/com.qihoo360.mobilesafe.opti.service.ExportedService from pid=21944 uid=10120 pkg=com.example.myapplication2
小米安全中心:com.miui.securitycenter
自啟動(dòng)管理頁(yè)面可直接喚起


snp20180404112854997.png

VIVO(Funtouch OS):

3423de73.jpg

com.vivo.permissionmanager/.activity.BgStartUpManagerActivity
自啟動(dòng)頁(yè)面無(wú)法喚起

$ adb shell am start -n com.vivo.permissionmanager/.activity.BgStartUpManagerActivity
Starting: Intent { cmp=com.vivo.permissionmanager/.activity.BgStartUpManagerActivity }
java.lang.SecurityException: Permission Denial: starting Intent { flg=0x10000000 cmp=com.vivo.permissionmanager/.activity.BgStartUpManagerActivity } from null (pid=28141, uid=2000) not exported from uid 1000
at android.os.Parcel.readException(Parcel.java:1684)
at android.os.Parcel.readException(Parcel.java:1637)
at android.app.ActivityManagerProxy.startActivityAsUser(ActivityManagerNative.java:3228)
at com.android.commands.am.Am.runStart(Am.java:643)
at com.android.commands.am.Am.onRun(Am.java:394)
at com.android.internal.os.BaseCommand.run(BaseCommand.java:51)
at com.android.commands.am.Am.main(Am.java:124)
at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:262)

service無(wú)法喚醒stopped包(無(wú)論是否允許自啟動(dòng))

W/ActivityManager: mCallerApp.pid =5980,mCallerApp.uid=10237
W/ActivityManager: mCallingPidFilter=5980,mCallingUidFilter=10237
W/ActivityManager: ==/==>: com.qihoo.sleep/10235 for service callerPackage com.qihoo.waker Intent { act=com.example.myapplication.wake pkg=com.qihoo.sleep }: XXXX

broadcast允許自啟動(dòng)正常喚醒惑折,否則無(wú)法喚醒艾君。并無(wú)ActivityManager log輸出

W/BroadcastQueue: ==/==> com.qihoo.sleep/10235 for broadcast Intent { act=com.example.myapplication.wake flg=0x30 }: XXXX

關(guān)聯(lián)自啟頁(yè)面Activity


3423de73 (1).jpg
image.png
adb shell am start -n com.vivo.appfilter/.activity.StartupManagerActivityRom30

OPPO(ColorOS)
com.coloros.safecenter


a60cdc36.jpg

a60cdc36 (1).jpg

snp20180413112233100.png

$ adb shell am start -n com.coloros.safecenter/.startupapp.AssociateStartActivity
Starting: Intent { cmp=com.coloros.safecenter/.startupapp.AssociateStartActivity }
java.lang.SecurityException: Permission Denial: starting Intent { flg=0x10000000 cmp=com.coloros.safecenter/.startupapp.AssociateStartActivity } from null (pid=10855, uid=2000) requires oppo.permission.OPPO_COMPONENT_SAFE
at android.os.Parcel.readException(Parcel.java:1694)
at android.os.Parcel.readException(Parcel.java:1647)
at android.app.ActivityManagerProxy.startActivityAsUser(ActivityManagerNative.java:3232)
at com.android.commands.am.Am.runStart(Am.java:635)
at com.android.commands.am.Am.onRun(Am.java:388)
at com.android.internal.os.BaseCommand.run(BaseCommand.java:51)
at com.android.commands.am.Am.main(Am.java:121)
at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:364)

adb shell cmd package list permissions -f > ./1.txt
  • permission:oppo.permission.OPPO_COMPONENT_SAFE
    package:oppo
    label:null
    description:null
    protectionLevel:signature|privileged

但是可以喚起他們的上一級(jí)Activity

a60cdc36 (2).jpg

snp20180413171535133.png

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市产艾,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖闷堡,帶你破解...
    沈念sama閱讀 212,816評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件隘膘,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡杠览,警方通過(guò)查閱死者的電腦和手機(jī)弯菊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,729評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)踱阿,“玉大人管钳,你說(shuō)我怎么就攤上這事∩” “怎么了蹋嵌?”我有些...
    開(kāi)封第一講書(shū)人閱讀 158,300評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)葫隙。 經(jīng)常有香客問(wèn)我栽烂,道長(zhǎng),這世上最難降的妖魔是什么恋脚? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,780評(píng)論 1 285
  • 正文 為了忘掉前任腺办,我火速辦了婚禮,結(jié)果婚禮上糟描,老公的妹妹穿的比我還像新娘怀喉。我一直安慰自己,他們只是感情好船响,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,890評(píng)論 6 385
  • 文/花漫 我一把揭開(kāi)白布躬拢。 她就那樣靜靜地躺著,像睡著了一般见间。 火紅的嫁衣襯著肌膚如雪聊闯。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 50,084評(píng)論 1 291
  • 那天米诉,我揣著相機(jī)與錄音菱蔬,去河邊找鬼。 笑死史侣,一個(gè)胖子當(dāng)著我的面吹牛拴泌,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播惊橱,決...
    沈念sama閱讀 39,151評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼蚪腐,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了李皇?” 一聲冷哼從身側(cè)響起削茁,我...
    開(kāi)封第一講書(shū)人閱讀 37,912評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤宙枷,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后茧跋,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體慰丛,經(jīng)...
    沈念sama閱讀 44,355評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,666評(píng)論 2 327
  • 正文 我和宋清朗相戀三年瘾杭,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了诅病。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,809評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡粥烁,死狀恐怖贤笆,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情讨阻,我是刑警寧澤芥永,帶...
    沈念sama閱讀 34,504評(píng)論 4 334
  • 正文 年R本政府宣布,位于F島的核電站钝吮,受9級(jí)特大地震影響埋涧,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜奇瘦,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,150評(píng)論 3 317
  • 文/蒙蒙 一棘催、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧耳标,春花似錦醇坝、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,882評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至砸琅,卻和暖如春郑叠,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背明棍。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,121評(píng)論 1 267
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留寇僧,地道東北人摊腋。 一個(gè)月前我還...
    沈念sama閱讀 46,628評(píng)論 2 362
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像嘁傀,于是被迫代替她去往敵國(guó)和親兴蒸。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,724評(píng)論 2 351

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,867評(píng)論 25 707
  • afinalAfinal是一個(gè)android的ioc细办,orm框架 https://github.com/yangf...
    passiontim閱讀 15,412評(píng)論 2 45
  • 4月3日 猶猶豫豫橙凳,終于決定提筆卻又不知從何說(shuō)起蕾殴。從未想過(guò)癌癥離自己的生活這么近,今天是媽媽第一次化療的第二天岛啸,還...
    小熙仔閱讀 350評(píng)論 0 0
  • 累了不能休息钓觉,生病不能請(qǐng)假,把自己活成一個(gè)機(jī)器人才能達(dá)到領(lǐng)導(dǎo)和公司的要求坚踩。永遠(yuǎn)高效荡灾,永不疲憊!
    付知閱讀 190評(píng)論 0 0
  • 曾經(jīng)有好幾個(gè)朋友警告我瞬铸,要把我朋友圈給屏蔽了批幌,因?yàn)槲铱偸窃谒麄兛啾瓢岽u時(shí)曬各種吃喝玩樂(lè)的圖。我知道他們純屬羨慕嫉妒...
    心之音閱讀 352評(píng)論 1 1