1、framwork 修改:
frameworks/base/services/core/java/com/android/server/wm/RootActivityContainer.java
备注:
(1)、参考:blog.csdn.net/a546036242/…
(2)、设置默认Launcher: 参考: blog.csdn.net/qq_31939617…
2、预置launcher apk:
1)、在目录
/vendor/package/apps/
新建xxxLauncher文件夹。
2)、修改
device/yyy_packages.mk
3、编译流程:
根目录下:
./build.sh
最终镜像位于/zzz_image目录下。
4、烧录
5、 隐藏虚拟按键图标:
方法一:
vim frameworks/base/core/res/res/values/config.xml,//true改为false,
frameworks/base/core/res/res/values/config.xml:2222:
<bool name=“config_showNavigationBar">false</bool>
结果:界面异常
方法二:修改判断
App层添加:
protected fun hideBottomUIMenu() {
//隐藏虚拟按键,并且全屏
val _window = window
val params = _window.attributes
params.systemUiVisibility = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY or View.SYSTEM_UI_FLAG_FULLSCREEN
_window.attributes = params
}
6、修改默认壁纸
frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.jpg
7、去除旧的launcher编译
/build/make/target/product
8、禁止系统界面下拉状态栏和通知栏
8.1:没有锁屏状态下通过 KeyguardViewMediator.java来在adjustStatusBarLocked()中通过设置StatusBarManager的flag 属性来设置禁用下拉状态栏,然后在开机以后就禁用下拉状态栏达到禁用的目的。
/frameworks/base/packages/SystemUI/src/com/android/systemui/keyguard/
8.2:StatusBar 中不显示通知信息的图片
/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/CollapsedStatusBarFragment.java
8.3:锁屏时禁止状态栏下拉 在锁屏状态下禁用下拉状态栏 通知界面NotificationPanelView.java 去掉下拉开展状态栏部分的功能
/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java
8.4 锁屏状态隐藏通知栏的显示
/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java
9、修改系统音量条,系统UI相关的代码处于:
\frameworks\base\packages\SystemUI
音量条UI相关的类:
\frameworks\base\packages\SystemUI\src\com\android\systemui\volume\VolumeDialogImp
修改步骤: 修改VolumeDialogImpl类的代码和其相关的xml文件改变UI,去掉音量条上面的铃声图标和下面的设置图标,
/SystemU/res/layout/volume_dialog.xml
10、修改系统启动,显示“目前处于全屏模式”
/xxx/android/xxxx/frameworks/base/services/core/java/com/android/server/wm/ImmersiveModeConfirmation.java
注意:要APP预置为priv-app,需要修改Android.mk以及privapp-permissions-platform.xml
1、frameworks/base/data/etc/privapp-permissions-platform.xml //权限声明
2、vendor/package/apps/xxxLauncher/Android.mk
LOCAL_PRIVILEGED_MODULE := true // 安装目录
LOCAL_CERTIFICATE := platform //系统签名
11、 第三方app不显示权限弹框界面修改
packages/apps/PermissionController/src/com/android/packageinstaller/permission/ui/handheld/ReviewPermissionsFragment.java