Android系统ROM+RAM基础裁剪

系统裁剪一般都是按照Android系统架构的一下几个部分精简:
1.驱动层的裁剪
2.Android Native层服务的裁剪
3.Android Frameworks层服务的裁剪
4.Android APP层的裁剪

应用程序的裁剪

主要文件:

device/qcom/common/base.mk

device/qcom/common/common.mk

device/qcom/msm8953_64/msm8953_64.mk

产品关键的mk:

build/target/product/base.mk

build/target/product/core.mk

build/target/product/full_base.mk

build/target/product/sdk_base.mk

build/target/product/generic_no_telephony.mk

build/target/product/telephony.mk

高通裁剪:

vendor/qcom/proprietary/common/config/device-vendor.mk

vendor/qcom/proprietary/prebuilt_HY11/target/product/msm8937_64/Android.mk

vendor/qcom/proprietary/qrdplus/Extension/products.mk

裁剪方式:

找到对应APK的LOCAL_MODULE,然后在*.mk文件中全局搜索LOCAL_MODULE,在含有的PRODUCT_PACKAGES 中移除即可。记得要删除out/目录后全编,否则打包image时会将之前编译的Package包含进去。

系统服务裁剪

frameworks/base/services/java/com/android/server/SystemServer.java

关键方法:startOtherServices、startCoreServices 、 startBootstrapServices

关键字:startService

裁剪示例:

Slog.i(TAG, "Camera Service");
//mSystemServiceManager.startService(CameraService.class);//add here

// The AccountManager must come before the ContentService
traceBeginAndSlog("StartAccountManagerService");
//mSystemServiceManager.startService(ACCOUNT_SERVICE_CLASS);//add here
Trace.traceEnd(Trace.TRACE_TAG_SYSTEM_SERVER);

有些系统服务可以按照上述应用程序裁剪方式

裁剪不需要的本地服务:device/qcom/msm8953_64/init.target.rc

裁剪不必要的属性内容:system.prop

裁剪一些资源

字体:frameworks/base/data/fonts/fonts.mk:

铃声: frameworks/base/data/sounds/AllAudio.mk

属性:frameworks/base/data/etc/platform.xml

按键:frameworks/base/data/keyboards/keyboards.mk

# 列出所有安装的应用程序

adb shell pm list packages

# 列出当前内存的使用情况

adb shell dumpsys meminfo

# 列出当前正在运行的进程

adb shell ps
添加宏控移除APK
diff --git a/build/core/main.mk b/build/core/main.mk
index 9135d72..46e6fae 100755
--- a/build/core/main.mk
+++ b/build/core/main.mk
@@ -746,6 +746,12 @@ ifdef FULL_BUILD
   product_MODULES := $(filter-out $(foreach p, $(product_MODULES), \
       $(PACKAGES.$(p).OVERRIDES)), $(product_MODULES))

+  #add for PRODUCT_DEL_PACKAGES to cut app
+  product_sub_MODULES := $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_DEL_PACKAGES)
+  product_MODULES := $(filter-out $(foreach p, $(product_sub_MODULES), \
+      $(p)), $(product_MODULES))
+  #add for PRODUCT_DEL_PACKAGES to cut app
+
   # Resolve the :32 :64 module name
   modules_32 := $(patsubst %:32,%,$(filter %:32, $(product_MODULES)))
   modules_64 := $(patsubst %:64,%,$(filter %:64, $(product_MODULES)))
diff --git a/build/core/product.mk b/build/core/product.mk
old mode 100644
new mode 100755
index 332b015..b4d0f0d
--- a/build/core/product.mk
+++ b/build/core/product.mk
@@ -83,6 +83,7 @@ _product_var_list := \
     PRODUCT_PACKAGES_DEBUG \
     PRODUCT_PACKAGES_ENG \
     PRODUCT_PACKAGES_TESTS \
+    PRODUCT_DEL_PACKAGES \
     PRODUCT_DEVICE \
     PRODUCT_MANUFACTURER \
     PRODUCT_BRAND \
diff --git a/device/qcom/msm8953_64/msm8953_64.mk b/device/qcom/msm8953_64/msm8953_64.mk
index f5cf879..f5b67eb 100755
--- a/device/qcom/msm8953_64/msm8953_64.mk
+++ b/device/qcom/msm8953_64/msm8953_64.mk
@@ -183,3 +183,48 @@ PRODUCT_PACKAGES += cpu_full
 #bug6764 add by gaoyunlai @20161129 for support update the mbn
 PRODUCT_PROPERTY_OVERRIDES += persist.radio.start_ota_daemon=1

+#add for cut app
+PRODUCT_DEL_PACKAGES += \
+    SnapdragonCamera \
+    Music
相关参考

https://blog.csdn.net/qq_23327993/article/details/90768627
https://blog.csdn.net/wzl_show/article/details/111991846 (定义宏控移除PRODUCT_PACKAGES )
https://blog.csdn.net/kanyueliang410/article/details/78962288

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值