第三方APP接管Launcher,修改Framework

585 阅读2分钟

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

}

参考:blog.csdn.net/yangbin0513…

6、修改默认壁纸

frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.jpg

7、去除旧的launcher编译

 /build/make/target/product

8、禁止系统界面下拉状态栏和通知栏

参考:blog.csdn.net/nq173727447…

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

参考:blog.csdn.net/weixin_4501…

10、修改系统启动,显示“目前处于全屏模式”

/xxx/android/xxxx/frameworks/base/services/core/java/com/android/server/wm/ImmersiveModeConfirmation.java

参考:blog.csdn.net/a546036242/…

注意:要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                                    

huaweicloud.csdn.net/64feb3de6b8…