Android 13 Automotive 默认启动多用户

车机使用MTK版本的Android 13 Automotive,发现启动侯默认启动两个用户,导致系统处理事件出现异常。原因是Automotive使用了无头系统用户。

Automotive 用户类型

值得注意的是,除了上面列出的用户类型之外,Automotive 版本还包含以下类型的用户:

  • 无头系统用户:此类系统用户负责托管所有系统服务。 如需在 Automotive 中支持多用户,系统用户也必须是无头用户。 只有一个无头用户。无头系统用户应遵守以下要求:
    • 必须始终在后台运行。
    • 无法直接由用户移除或访问,除非是在“设备配置”的情况下。例如,用户无法切换到这种用户类型来执行下载应用或添加账号等任务。
    • 只能通过恢复出厂设置清除。
  • 常规用户:与上文所述的次要用户相同,不过次要用户具有以下特点:
    • 不会在后台运行(在切换成其他用户之后)。
    • 可通过界面直接创建。
    • 具有独立的应用数据,但会共享一些系统范围内的设置。例如,WLAN 和蓝牙。

启用无头用户后:

  1. 如需将设备声明为 Automotive,请添加 android.hardware.type.automotive 功能。
  2. 将 ro.fw.headless_system_user 设为 true
  3. 将 config_multiuserMaximumUsers 的值设为 2(或更高的值)。

 开机后首先启动一个无头用户,然后Carservice启动一个司机用户。

解决办法,不启动无头用户,然后取消Carservice启动一个司机用户

frameworks/opt/car/services/+/3271/1/builtInServices/src/com/android/internal/car/CarServiceHelperService.java

    @Override
    public void onBootPhase(int phase) {
        EventLogHelper.writeCarHelperBootPhase(phase);
        if (DBG) Slogf.d(TAG, "onBootPhase: %d", phase);

        TimingsTraceAndSlog t = newTimingsTraceAndSlog();
        if (phase == SystemService.PHASE_THIRD_PARTY_APPS_CAN_START) {
            t.traceBegin("onBootPhase.3pApps");
            mCarLaunchParamsModifier.init();
         //   setupAndStartUsers(t);
            t.traceEnd();
        } else if (phase == SystemService.PHASE_BOOT_COMPLETED) {
            t.traceBegin("onBootPhase.completed");
            synchronized (mLock) {
                mSystemBootCompleted = true;
            }
            try {
                mCarWatchdogDaemonHelper.notifySystemStateChange(
                        StateType.BOOT_PHASE, phase, /* arg2= */ 0);
            } catch (RemoteException | RuntimeException e) {
                Slogf.w(TAG, "Failed to notify boot phase change: %s", e);
            }
            t.traceEnd();
        }
    }

注释掉方法setupAndStartUsers(t)

# Enable headless system user mode
PRODUCT_SYSTEM_DEFAULT_PROPERTIES += \
    ro.fw.mu.headless_system_user?=false

ro.fw.mu.headless_system_user  置为false

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值