Android 源码单独编译Settings模块

一般我们编译源码,只需要在源码的根目录下执行三个命令就行

. build/envsetup.sh 或者source build/envsetup.sh
lunch 选择编译目标
make -j60

make 不带参数的编译方式是直接编译整个系统,我们也可以使用make带模块名或者使用mmm等命令单独编译某个模块。

首先找到对应模块的名称
Android.bp

android_app {
   	name: "MtkSettings",
    overrides: [
        "Settings",
   	],

Android.mk

LOCAL_PACKAGE_NAME := MtkSettings
LOCAL_OVERRIDES_PACKAGES := Settings
LOCAL_CERTIFICATE := platform
LOCAL_PRIVILEGED_MODULE := true

一些其他的模块或者是无源码的apk对应的名称是LOCAL_MODULE变量的值,具体看对应的Android.mk和Android.bp文件

单独编译Settings

 make MtkSettings
 或者使用 mmm vendor/mediatek/proprietary/packages/apps/MtkSettings/

可以看到out目录下的MtkSettings.apk文件修改时间是更新了的。

编译完成后打包刷机
有一点需要注意的是,在Android10及更高版本将system.img、vendor.img、product.img整合到super.img中,刷机也是用的super.img,单独编译完成后你需要重新生成system.img和super.img

生成system.img

make systemimage

生成super.img

out/host/linux-x86/bin/build_super_image -v out/target/product/{PROJECT_NAME}/obj/PACKAGING/check-all-partition-sizes_intermediates/misc_info.txt out/target/product/{PROJECT_NAME}/super.img

如果刷机后开机,在logo界面反复重启,需要重新生成vbmeta_system.img
生成vbmeta_system.img

out/host/linux-x86/bin/avbtool make_vbmeta_image --algorithm SHA256_RSA2048 --key device/mediatek/system/common/system_prvk.pem --padding_size 4096 --rollback_index 0  --include_descriptors_from_image out/target/product/{PROJECT_NAME}/system.img  --include_descriptors_from_image out/target/product/{PROJECT_NAME}/product.img --output out/target/product/{PROJECT_NAME}/vbmeta_system.img

单编模块
make后接LOCAL_PACKAGE_NAME或者LOCAL_MODULE,如果编译模块对应的是Android.bp那就去找对应的name值

通过out/build-full_$(PROJECT_NAME).ninja 这个文件可以找到各种image的生成命令。

生成vbmeta_system.img的相关参数值定义

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值