framework:Android9 替换系统自带得Launcher界面并屏蔽多用户机制

概述:前面已经已经下载源码,将源码成功烧录到开发版(程序编译命令选择lunch mek_8q_car-userdebug带有车机接口),开机后第一个画面为多用户选择界面(并不是activity),选择主用户按钮后,进入系统默认得Luncher界面,对于产品需求需要屏蔽掉多用户机制界面,并且将Luncher界面修改为自己得Luncher界面。

一、屏蔽多用户机制。
1、查看当前设备支持得最大用户个数。
源码位置:由于我编译得系统为车机系统,则源码位置为:
packages/services/Car/car_product/overlay/frameworks/base/core/res/res/values/config.xml;
修改:

<!--  Maximum number of supported users -->  
<integer name="config_multiuserMaximumUsers">8</integer>  
<!-- Whether UI for multi user should be shown -->  
<bool name="config_enableMultiUserUI">true</bool> 

为:

<!--  Maximum number of supported users -->  
<integer name="config_multiuserMaximumUsers">1</integer>  
<!-- Whether UI for multi user should be shown -->  
<bool name="config_enableMultiUserUI">false</bool> 

编译位置:
~/…/frameworks/base/core/res
使用mm编译,生成framework-res.apk,
生成路径:…/out/target/product/mek_8q/system/framework
将生成得.apk替换设备/system/framwork/framework-res.apk,重启设备发现界面蓝屏。
还需要改其他地方。
注意:非车机源码位置为:framework/base/core/res/res/values/config.xml,修改内容一样。
编译位置:
~/…/frameworks/base/core/res

2、去掉多用户选择View。
源码位置:(车机位置)
(1)frameworks/base/packages/SystemUI/src/com/android/systemui/qs/car/CarQSFooter.java
修改:mUserName = findViewById(R.id.user_name);
+ mMultiUserSwitch.setVisibility(View.INVISIBLE);
(2)frameworks/base/packages/SystemUI/res/values/config.xml

   <bool name="config_enableKeyguardService">true</bool>
   改为
   <bool name="config_enableKeyguardService">false</bool>

编译位置:/frameworks/base/packages/SystemUI
使用mm编译,生成SystemUI.apk。
将生成得SystemUI文件加替换设备SytemUI重启,发现多用户选择界面消失了。
以上,完成修改需求,下面介绍多用户常用指令。

3、多用户常用指令
查看多用户设备路径:/data/system/users
1)查看多用户
adb shell pm list users
其中:主用户为
创建多用户
pm create-user [–profileOf USER_ID] [–managed] USER_NAME
安装应用到某个用户
adb install –user USER_ID name.apk
删除用户
adb shell pm remove-user USER_ID
查看多用户情况:
adb shell dumpsys user
其中:10 代表主机用户,添加用户userid为11,12…

2)获取最大用户数量
pm get-max-users

3)创建多用户
pm create-user [–profileOf USER_ID] [–managed] USER_NAME

4)安装应用到某个用户
adb install –user USER_ID name.apk

5)删除用户
adb shell pm remove-user USER_ID

6)查看多用户情况:
adb shell dumpsys user

注意,安卓源码多用户开关view,源码位置:
frameworks/base/packages/SystemUI/src/com/android/systemui/qs/QSFooterImpl.java

/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarView.java
目前没涉及,不确定。有需要得可以自己修改试试。

目前不清楚多用户机制得工作原理及流程,后面慢慢学。先把业务上得东西记录下来,以免忘记。

二、将自己得Launcher 界面替换系统得Launcher界面。
同上所述,我用得是车机系统,因此,系统默认得Launcher界面为CarLauncher。
源码路径:packages/apps/Car/Launcher
修改该目录下Menifest.xml中:将

<category android:name="android.intent.category.HOME"/>

去掉,使用mm编译,生成得应用替换设备应用。
将自己生成得Launcher应用push 到system/app中,重启设备,即可以直接进入到自己得Launcher界面。

以上,将自己遇到得问题做个记录,方便以后查看。如果问题,请及时联系、沟通、评论。谢谢。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值