gpt4 book ai didi

android - 始终在后台以 root 身份在 android 上运行服务

转载 作者:太空宇宙 更新时间:2023-11-03 13:07:39 27 4
gpt4 key购买 nike

根据 this threadAndroid Oreo 之后,Google 引入了一些后台限制,因此无法在不显示用户通知的情况下始终在后台运行服务

是否可以使用 root 权限实现此目的?

编辑:我看到人们投票结束我的问题,因为显然它看起来太宽泛了,但我正在运行 LineageOS,我想让我的应用程序作为系统服务运行如果可能的话,我认为这在不修改源代码的情况下是可行的。例如,在安装操作系统时,我可以刷新 GApps,但它是可选的,它们似乎具有我正在谈论的功能。我也不指望你为我做所有的研究,我愿意接受为我指明正确方向的答案。

最佳答案

确实有一个未记录的 shell 命令,可以通过将它们添加到全局 location_background_throttle_package_whitelist 来用于将包列入白名单(我还没有测试过):

settings put global location_background_throttle_package_whitelist "package1,package2,package3"

^ 这是用于location 服务,但可能还有更多可用的background_throttle 设置:

settings list global | grep background_throttle

来源:XDA Developers .


也在source code我只找到了这些设置:

Settings.Global.LOCATION_BACKGROUND_THROTTLE_PACKAGE_WHITELIST
Settings.Global.LOCATION_BACKGROUND_THROTTLE_PROXIMITY_ALERT_INTERVAL_MS
Settings.Global.LOCATION_BACKGROUND_THROTTLE_INTERVAL_MS

documentation很清楚某些服务被添加到临时白名单这一事实。要找出究竟是什么将这些服务列入白名单,还需要进一步挖掘。这些后台服务限制实际上在Context.java中有描述。 ...而用 @UnsupportedAppUsage 注释的方法是仅系统使用的方法。


Firebase WorkManager仍然是可用的最佳选择 - 或基础 JobIntentService ,它仍将作为常规后台服务运行 O。闪烁 Android N 或 Lineage OS 14.1 将是一种特定的解决方法,几乎​​没有被考虑。

root 权限将提供超能力的假设可能是一种误解。允许不受限制的位置访问仍然非常有限,甚至 Google 自己的服务也只是暂时列入白名单。唯一排除在这些后台执行限制之外的服务是 Linux system services ,用 C++ 编写(在 JVM 之外运行)——虽然这与 Android 后台服务截然不同,用 Java 编写(在 JVM 内部运行,都扩展了相同的受限 Service 类)。

关于android - 始终在后台以 root 身份在 android 上运行服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55637095/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com