RK3568 Android 13 系统裁剪

android 13 系统裁剪是个大工程,裁剪也是需要大量的测试,才能保证系统的稳定性,以下是RK官方给出的裁剪方案,有兴趣的可以去看一下,对裁剪不是要求过高的可以根据官方的建议,对系统进行裁剪:

Rockchip Android平台内存优化及系统裁剪_build_with_go_opt-CSDN博客

然后官方的裁剪比较少,往往达不到我们自身需求想要的,所以我总结了 我在开发过程中,精简系统的部分经验,望大家指正

一.裁剪应用

    应用裁剪是精简系统的重要环节,apk应用占用系统的资源较大,所以应用裁剪,精简应用是系统的重要环节

    Android系统源码全编译时,都会通过PRODUCT_PACKAGES来控制源码模块是否需要编译, 对于系统默认的一些模块, 如果想要进行裁剪, 比如机顶盒上面,可能不需要电话,短信等APP, 此时就需要修改系统基础的配置文件, 将PRODUCT_PACKAGES中包含的电话短信APP模块删除, 这样改动太大, 耦合性也太大, 我们可以在Android系统源码的编译规则中增加一个PRODUCT_DEL_PACKAGES 变量来对模块进行删除,实现模块裁剪的功效。当然裁剪不仅仅局限于系统A PP, 源码中所有的模块都可以通过PRODUCT_DEL_PACKAGES 来裁剪。

 所以我们首先给系统增加一个PRODUCT_DEL_PACKAGES裁剪规则(红色为新增部分)

1、修改build/core/product.mk 添加PRODUCT_DEL_PACKAGES变量的声明

# The first API level this product shipped with
_product_single_value_vars += PRODUCT_SHIPPING_API_LEVEL
_product_single_value_vars += PRODUCT_DEL_PACKAGES

2、编辑build/core/main.mk

$(eval ### Filter out the overridden packages and executables before doing expansion) \
$(eval _pif_overrides := $(call module-overrides,$(_pif_modules))) \
$(eval _pif_modules := $(filter-out $(_pif_overrides), $(_pif_modules))) \
$(eval _pif_dels := $(call get-product-var,$(1),PRODUCT_DEL_PACKAGES)) \
$(eval _pif_modules := $(filter-out $(_pif_dels), $(_pif_modules))) \

3.在相应的设备产品mk文件中添加用PRODUCT_DEL_PACKAGES属性来控制模块删除

一版目录为device 目录下 增加此属性

RK3568的目录为device/rockchip/rk356x/device.mk

——————————————————————————————————————

二、裁剪系统服务

目录:frameworks/base/services/java/com/android/server/SystemServer.java

这里以打印机服务为例(其他服务类似)

第一步:新增控制服务是否启动开关属性

boolean pinrtEnable= SystemProperties.getBoolean("persist.print.enable", false);

第二步:根据属性控制是否启动打印机服务

if (!pinrtEnable&& mPackageManager.hasSystemFeature(PackageManager.FEATURE_PRINTING)) {
    mSystemServiceManager.startService(PRINT_MANAGER_SERVICE_CLASS);
}             

第三步: 屏蔽SystemFeature

查找含有<feature name=“android.software.print” /> 的文件,全部注释掉
具体操作可以参考[Android][Framework]裁剪SystemServer服务以及关闭SystemFeature-腾讯云开发者社区-腾讯云

相关推荐

  1. rk3568 Android UVC

    2024-01-30 01:44:04       72 阅读
  2. rk3568 安卓11 修改android id

    2024-01-30 01:44:04       35 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-30 01:44:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-30 01:44:04       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-30 01:44:04       82 阅读
  4. Python语言-面向对象

    2024-01-30 01:44:04       91 阅读

热门阅读

  1. 【leetcode刷刷】回溯:77.组合

    2024-01-30 01:44:04       55 阅读
  2. 前端 HTML 知识点之 HTML 介绍

    2024-01-30 01:44:04       50 阅读
  3. js的编码和解码

    2024-01-30 01:44:04       53 阅读
  4. 【基础算法练习】前缀和与差分模板

    2024-01-30 01:44:04       52 阅读
  5. 算法每日一题: 最大合金数 | 二分

    2024-01-30 01:44:04       43 阅读
  6. Python入门指北七

    2024-01-30 01:44:04       56 阅读
  7. HTML — 区块元素

    2024-01-30 01:44:04       53 阅读
  8. ambari hdp 企业级安装实战

    2024-01-30 01:44:04       47 阅读
  9. 多端ftp上传下载导致程序crash问题排查

    2024-01-30 01:44:04       60 阅读
  10. Next.js 学习笔记(七)——样式

    2024-01-30 01:44:04       59 阅读
  11. Python入门学习指北

    2024-01-30 01:44:04       61 阅读