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-腾讯云开发者社区-腾讯云

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/655283.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Web开发8:前后端分离开发

在现代的 Web 开发中&#xff0c;前后端分离开发已经成为了一种常见的架构模式。它的优势在于前端和后端可以独立开发&#xff0c;互不干扰&#xff0c;同时也提供了更好的可扩展性和灵活性。本篇博客将介绍前后端分离开发的概念、优势以及如何实现。 什么是前后端分离开发&am…

数据结构小练兵

二、程序填空 共1题 &#xff08;共计18分&#xff09; 第1题 &#xff08;18.0分&#xff09; 题号:316 难度:中 第1章 /*------------------------------------------------------- 【程序填空】 ----------------------------------------------…

Spring 学习1

1、什么是Spring Spring 是一款主流的 Java EE 轻量级开源框架 &#xff0c;Spring 由“Spring 之父”Rod Johnson 提出并创立&#xff0c;其目的是用于简化 Java 企业级应用的开发难度和开发周期。Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言…

OpenHarmony隐藏应用(应用不在桌面显示,隐藏应用图标)

注意:此种方式是在OpenHarmony系统中生效 目录 一.找到UnsgnedReleasedProfileTemplate.json文件 二.修改 UnsgnedReleasedProfileTemplate.json文件 三.重新签名 一.找到UnsgnedReleasedProfileTemplate.json文件 什么是U

【书生·浦语大模型实战营】学习笔记目录

【书生浦语大模型实战营01】《书生浦语大模型全链路开源体系》【书生浦语大模型实战营02】《轻松玩转书生浦语大模型趣味Demo》学习笔记【书生浦语大模型实战营03】《基于 InternLM 和 LangChain 搭建你的知识库》学习笔记【书生浦语大模型实战营04】《(4)XTuner 大模型单卡低成…

5G安卓核心板开发板_MT6833天玑700规格参数

核心板采用沉金生产工艺&#xff0c;耐腐蚀抗干扰&#xff0c;支持-20℃-70℃环境下7x24小时稳定运行&#xff0c;尺寸仅为45mmx48mm x2.65mm&#xff0c;可嵌入到各种智能产品中&#xff0c;助力智能产品便携化及功能差异化。 联发科MT6833处理器采用台积电 7nm 制程的5G SoC…

log4j 日志级别及优先级排序

日志级别及优先级排序 &#xff1a; OFF(关闭) > fatal(致命错误) > error (错误) > warn (警告) > info(普通信息) > debug(调试信息) > TRACE > ALL(所有日志) 程序会打印 > 所设置级别的日志&#xff0c;故设置的日志等级越高&#xff0c;打印出来…

java里面File类的基本用法

File 类是 Java 中用于处理文件和目录的类。它提供了一些基本的文件和目录操作方法。以下是 File 类的一些基本用法&#xff1a; 创建 File 对象&#xff1a; 可以通过提供文件路径或目录路径来创建一个 File 对象。 // 创建 File 对象&#xff0c;指向文件 File file new Fil…

vue3 el-pagination 将组件中英文‘goto’ 修改 为 中文到‘第几’

效果如图&#xff1a; 要求&#xff1a;将英文中Go to 改为到第几 操作如下&#xff1a; <template><div class"paging"><el-config-provider :locale"zhCn"> // 注意&#xff1a;这是重要部分<el-pagination //分页组件根据官…

#Vue3篇:defineProps---withDefaults Vue3 中,有以下几种属性或函数不需要手动引入即可直接使用:

reactive<类型>({ }) defineProps import {defineProps} form vue import {type persons} from /types let props defineProps<{list?: Persons}>([a])withDefaults给默认值 import {defineProps,withDefaults} form vue import {type persons} from /typesl…

【C语言】exit函数详解

一、exit函数的定义 exit 函数是 C 标准库中的函数&#xff0c;其原型定义在 stdlib.h 头文件中。exit 函数的作用是终止当前程序的执行&#xff0c;并返回一个指定的退出码给操作系统。其基本用法如下&#xff1a; #include <stdlib.h>void exit(int status); 具体功能…

【寒假每日一题·2024】AcWing 5415. 仓库规划(补)

文章目录 一、题目1、原题链接2、题目描述 二、解题报告1、思路分析2、时间复杂度3、代码详解 一、题目 1、原题链接 5415. 仓库规划 2、题目描述 二、解题报告 1、思路分析 思路参考y总&#xff1a;y总讲解视频 &#xff08;1&#xff09;由于每一个仓库均有一个m维向量的位…

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

77. 组合 第一次专门做回溯&#xff0c;有点难理解。首先可以理解回溯可以可视化为树的搜索&#xff0c;因此这道题&#xff0c;树的宽度为n&#xff0c;树的深度为kpath作为一个参数传入有点难想回溯没有返回值剪纸更难想&#xff0c;通过列算式可以勉强得到for的表达式&…

非阿里云注册域名如何在云解析DNS设置解析?

概述 非阿里云注册域名使用云解析DNS&#xff0c;按照如下步骤&#xff1a; 添加域名。 添加解析记录。 修改DNS服务器。 DNS服务器变更全球同步&#xff0c;等待48小时。 添加解析记录 登录云解析DNS产品控制台。 在 域名解析 页面中&#xff0c;单击 添加域名 。 在 …

Qt/C++音视频开发64-共享解码线程/重复利用解码/极低CPU占用/画面同步/进度同步

一、前言 共享解码线程主要是为了降低CPU占用&#xff0c;重复利用解码&#xff0c;毕竟在一个监控系统中&#xff0c;很可能打开了同一个地址&#xff0c;需要在多个不同的窗口中播放&#xff0c;形成多屏渲染的效果&#xff0c;做到真正的完全的画面同步&#xff0c;在主解码…

Linux:共享内存

文章目录 System V共享内存的原理管理共享内存shmgetshmatshmdtshmctl 共享内存和管道实现进程间同步通信 前面介绍完了匿名管道和命名管道&#xff0c;那么本篇要引入的主题是共享内存 System V 作为进程通信部分的内容&#xff0c;共享内存必然有其存在的意义和价值&#x…

批量将csv文件转成excel

本文主要用来处理将批量某种格式编码的的csv文件转成utf-8编码的excel文件import pandas as pd import os# 设定目录 dir_path "D:\\tmp_financial\DailyK\FullACSV" # 请将此处替换为你的CSV文件所在目录 des_path "D:\\tmp_financial\DailyK\FullAExcel&qu…

【C/C++ 01】初级排序算法

排序算法通常是针对数组或链表进行排序&#xff0c;在C语言中&#xff0c;需要手写排序算法完成对数据的排序&#xff0c;排序规则通常为升序或降序&#xff08;本文默认为升序&#xff09;&#xff0c;在C中&#xff0c;<algorithm>头文件中已经封装了基于快排算法的 st…

51单片机通过级联74HC595实现倒计时秒表Protues仿真设计

一、设计背景 近年来随着科技的飞速发展&#xff0c;单片机的应用正在不断的走向深入。本文阐述了51单片机通过级联74HC595实现倒计时秒表设计&#xff0c;倒计时精度达0.05s&#xff0c;解决了传统的由于倒计时精度不够造成的误差和不公平性&#xff0c;是各种体育竞赛的必备设…

光学3D表面轮廓仪服务超精密抛光技术发展

随着技术的不断进步&#xff0c;精密制造领域对材料表面的处理要求越来越高&#xff0c;超精密抛光技术作为当下表面处理的尖端技术&#xff0c;对各种高精密产品的生产起到了至关重要的作用&#xff0c;已广泛应用于集成电路制造、医疗器械、航空航天、3C电子、汽车、精密模具…