当前位置: 首页 > news >正文

【Android】非System用户下Persist应用不自动拉起

非System用户下Persist应用不自动拉起

  • Android版本:11、12。

背景

  • 先说结论:Android在多用户场景下,系统不会启动非User 0(System)的Persist应用

应用A配置了Persist应用,且无android:singleUser=true配置。但在多用户环境下,只启动了system(user 0)进程。
排查怀疑点

  • pm list package --user userID: 查看应用A在对应的用户下是否安装
  • /data/system/user/userID/package-restrcition.xml:查看应用A是否有异常信息。

排查上述两点问题后,发现应用A在对应的userID下已经安装。

  • 尝试手动启动应用,发现可以启动。且手动kill后,可以被Aosp作为Persist应用重新拉起。
# 在User X下启动Service
am startservice --user X-n com.***.A/com.***.A.AService
# 在User X下启动Activity
am start  --user X-n com.***.A/com.***.A.AActivity

问题原因

Aosp的多用户管理模块中UserController.java,非User 0(System)下,默认不会拉起Persist应用。
在这里插入图片描述
在finishUserUnlocked的函数中。判断了,只有UserID为USER_SYSTEM的,才会启动Persist类型且“android:directBootAware=false”的应用。

如何解决这个问题

  • 监听开机广播、或者其他广播做自启动
  • 或者尝试修改Aosp代码
http://www.dtcms.com/a/212647.html

相关文章:

  • 2025年渗透测试面试题总结-匿名[实习]安全工程师(安全厂商)(题目+回答)
  • 【Android】System分区应用自带库与原生库同名问题分析
  • Java集合框架基础知识点全面解析
  • Go 语言基础1 Slice,map,string
  • 计算机视觉(图像算法工程师)学习路线
  • where is the examples of stm32h743i demo project inside of stm32cubeh7
  • 电商小程序店铺详情页:头部无限分类与筛选功能实现
  • 书生五期--端侧小模型论文分类微调打榜
  • 搭建 C/C++_CMake_Boost_git 开发环境
  • 计算机视觉中的可重复性:深入案例分析与Python代码实现
  • 【MySQL】08.视图
  • TiDB:从快速上手到核心原理与最佳实践
  • 【时时三省】(C语言基础)函数的嵌套调用
  • python学习day28
  • Linux 系统常用核心库----用户态程序运行的基石
  • 广东省省考备考(第二十天5.25)—言语:逻辑填空(听课后强化训练)
  • 前端常见的安全问题
  • java高级 -Junit单元测试
  • 用VMWare架飞牛nas 启用Intel千兆网卡
  • 基于点标注的弱监督目标检测方法研究
  • Linux Kernel调试:强大的printk(一)
  • 程序代码模块化设计的架构方法论
  • 《仿盒马》app开发技术分享-- 定位获取(端云一体)
  • LangChain02-Agent与Memory模块
  • React整合【ECharts】教程003:关系图的构建和基本设置
  • 在langchain4j中 UserMessage注解和SystemMessage两个注解的区别
  • MyBatis-Plus整合SpringBoot及使用
  • 将 Shp 导入 PostGIS 空间数据的五种方式(全)
  • 数据集全解析:从基础概念到实践应用的完整指南
  • 消息队列kafka的基础概念和部署