如何在LineageOS 14中禁用应用开机自启动?原生功能缺失求助
解决LineageOS 14.1禁用应用开机自启的原生方法
嘿,我完全懂你的需求——不想装额外应用,就用系统原生功能搞定RSS阅读器的开机自启问题。针对你用的LineageOS 14.1-20180203-NIGHTLY-titan版本,我给你几个靠谱的方案:
方案1:深挖单个应用的信息页
LineageOS的自启动管理有时候不是放在全局设置里,而是藏在单个应用的详情页中:
- 打开「设置」→「应用」(部分版本叫「应用程序」)
- 在应用列表里找到你的RSS阅读器,点击进入它的应用信息页面
- 往下滚动找找有没有「自启动权限」或「启动控制」这类选项,有的话直接切换为「禁用」就好。
如果这个页面没找到相关选项,试试下面的adb命令方案——这也是原生操作,不需要装第三方应用,只是需要借助电脑或手机端的终端工具。
方案2:用ADB命令阻断开机广播
Android应用的开机自启大多靠监听BOOT_COMPLETED系统广播实现,我们可以用adb命令阻止目标应用接收这个广播:
- 先开启手机的开发者选项:
- 打开「设置」→「关于手机」,连续点击「版本号」直到屏幕提示开发者选项已启用
- 开启「USB调试」:
- 返回「设置」→「开发者选项」,找到「USB调试」并打开
- 连接电脑,打开命令提示符/终端,执行以下步骤:
- 获取应用包名:
adb shell pm list packages | grep "rss"(把rss换成你阅读器的名称关键词,找到对应的包名,比如com.example.rssreader) - 禁用开机广播接收器:
adb shell pm disable com.example.rssreader/.BootReceiver(把com.example.rssreader/.BootReceiver替换成你找到的包名+对应的开机接收器名称;如果不确定接收器名称,可以用adb shell dumpsys package com.example.rssreader | grep "Receiver"查找包含BOOT_COMPLETED的条目) - 要是嫌找接收器麻烦,也可以直接临时禁用整个应用:
adb shell pm disable-user --user 0 com.example.rssreader,需要用的时候再去应用信息页启用就行,完全不用卸载。
- 获取应用包名:
方案3:借助LineageOS自带的Privacy Guard
LineageOS 14.1自带隐私卫士,说不定能限制应用的开机启动权限:
- 打开「设置」→「Privacy」(隐私)→「Privacy Guard」
- 找到你的RSS阅读器,点击进入权限设置界面
- 看看有没有「Auto-start」或「Boot completed」相关权限,把它设为「Deny」(拒绝)就行。
如果以上方法都不适用,还有个小技巧:如果你的手机支持把应用移到SD卡,把RSS阅读器移过去——移到SD卡的应用默认不会开机自启,不过可能会影响后台同步这类功能,你可以根据需求尝试。
内容的提问来源于stack exchange,提问作者Kalle Richter




