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

【AAOS】【源码分析】用户管理(三)-- 用户启动

用户首次启动大体流程

用户启动过程中,涉及很多模块,其中UserController模块负责居中调度

  • 创建并启动主用户:系统在首次启动时自动创建 User 0,在SystemReady时,由 SystemServer 启动系统用户(User 0),主用户是以Background方式运行,在用户启动过程中发送一系列广播通知,包括:

    • android.intent.action.USER_STARTED:表示用户已经启动完成。

    • android.intent.action.USER_STARTING:表示用户启动过程即将开始。

  • 创建Secondary用户:CarUserService在启动时,会创建相应的Secondary用户(默认用户id为10),涉及的广播通知为:
    • android.intent.action.USER_ADDED:表示用户已经创建完成。
  • 启动Secondary用户:在用户创建完毕后,会直接启动Secondary用户,涉及的广播通知:
    • android.intent.action.USER_STARTED:表示用户已经启动完成。

    • android.intent.action.USER_STARTING:表示用户启动过程即将开始。

  • 解锁用户:在用户启动后,调用maybeUnlockUser来解锁Secondary用户的父用户及Secondary用户,涉及的广播通知:

    • android.intent.action.USER_UNLOCKED:解锁主用户。

    • android.intent.action.USER_UNLOCKED:解锁Secondary用户。

  • 切换用户:解锁完毕后,会将Secondary用户切换为foreground,涉及的广播通知:

    • android.intent.action.USER_BACKGROUND:主用户切换为Background用户。

    • android.intent.action.USER_FOREGROUND:Secondary用户切换为Foreground。

    • android.intent.action.USER_SWITCHED:发送用户切换完毕通知。

配置项

用户名配置

  • 默认Owner用户配置
<resources><string name="owner_name">Driver</string>
</resources>
  • 默认Guest用户配置 
<resources><string name="default_guest_name">Guest</string>
</resources>

用户权限

packages/services/Car/car_product/rro/overlay-config/androidRRO/res/xml/config_user_types.xml

<user-types><full-type name="android.os.usertype.full.SECONDARY" ><default-restrictions /></full-type><full-type name="android.os.usertype.full.GUEST" ><default-restrictions no_factory_reset="true" no_remove_user="true"no_modify_accounts="tru
http://www.lqws.cn/news/164611.html

相关文章:

  • 用ApiFox MCP一键生成接口文档,做接口测试
  • 监测预警系统重塑隧道安全新范式
  • 筑牢企业网管域安全防线,守护数字核心——联软网管域安全建设解决方案
  • html文字红色粗体,闪烁渐变动画效果,中英文切换版本
  • C++11 中 final 和 override 从入门到精通
  • Day45 Python打卡训练营
  • spring的webclient与vertx的webclient的比较
  • 使用高斯朴素贝叶斯算法对鸢尾花数据集进行分类
  • 打造高效多模态RAG系统:原理与评测方法详解
  • Spring 框架之IOC容器加载重要组件
  • Vue3实现拖拽改变元素大小
  • 1.2 fetch详解
  • React Hooks 指南:何时使用 useEffect ?
  • Grafana-ECharts应用讲解(玫瑰图示例)
  • Vue2数组数字字段求和技巧 数字求和方法
  • Compose Multiplatform 实现自定义的系统托盘,解决托盘乱码问题
  • Postman接口测试之postman设置接口关联,实现参数化
  • MATLAB仿真:偏振光在光纤通信中的应用研究_可复现,有问题请联系博主
  • 从内核到应用层:Linux缓冲机制与语言缓冲区的协同解析
  • Spring AI学习一
  • StoreView SQL,让数据分析不受地域限制
  • mysql复合查询mysql子查询
  • 如何通过外网访问内网?哪个方案比较好用?跨网远程连接网络知识早知道
  • Struts2漏洞由浅入深
  • Python语法进阶篇 --- 封装、继承、多态
  • React从基础入门到高级实战:React 实战项目 - 项目二:电商平台前端
  • 大中型水闸安全监测管理系统建设方案
  • 工厂模式 + 模板方法模式 + 策略模式的适用场景
  • 在 Spring Boot 中使用 JSP
  • 如何做好一份技术文档?(下篇)