Android13 MTK平台新增分区

基于MTK平台,split build2.0方式的mt6789平台上进行调试。驱动和系统层代码分别在S/T版本下。

新增分区zlintek。

1、分区表中添加分区参数(配置分区文件格式、大小、对应img名称等)

配置表格式后缀为.csv,通过在 vendor 目录下搜索,找到目标平台文件夹下的配置表

mt6789_s/vendor/mediatek/proprietary/tools/ptgen/MT6789/partition_table_emmc_ab.csv

参考userdata.img进行添加即可,partition分区名为zlintek,size这里选择了3G,Download_File为zlintek.img

zlintek添加在userdata之后,会导致机器的data分区大小只有4G,所以要将zlintek往前移,放在userdata之前:

扩展了解:

2、修改 fstab 文件添加分区块设备的挂载和系统启动时挂载点的创建

mt6789_s/device/mediatek/mt6789/init.mt6789.rc

--- a/mediatek/mt6789/init.mt6789.rc
+++ b/mediatek/mt6789/init.mt6789.rc
@@ -43,6 +43,11 @@ on init
 
     mkdir /mnt/cd-rom 0000 system system
 
+# Create zlintek mount pointer
+    mkdir /zlintek 0777 system system
+    mkdir /mnt/vendor/zlintek 0777 system system
+
 # change lk_env permission
     chown root system /proc/lk_env
     chmod 0660 /proc/lk_env

mt6789_s/vendor/mediatek/proprietary/hardware/fstab/mt6789/fstab.in

--- a/mediatek/proprietary/hardware/fstab/mt6789/fstab.in
+++ b/mediatek/proprietary/hardware/fstab/mt6789/fstab.in
@@ -180,6 +180,9 @@ DEVPATH(protect1)   /mnt/vendor/protect_f   ext4   FS_FLAG_COMMIT   FSMGR_FLAG_F
 DEVPATH(protect2)   /mnt/vendor/protect_s   ext4   FS_FLAG_COMMIT   FSMGR_FLAG_FMT
 DEVPATH(nvdata)     /mnt/vendor/nvdata      ext4   FS_FLAG_COMMIT   FSMGR_FLAG_FMT
 DEVPATH(nvcfg)      /mnt/vendor/nvcfg       ext4   FS_FLAG_COMMIT   FSMGR_FLAG_FMT
+DEVPATH(zlintek)    /mnt/vendor/zlintek     ext4   FS_FLAG_NO_DISCARD  FSMGR_FLAG_FMT
 
 #ifdef __PERSIST_PARTITION_SUPPORT
 DEVPATH(persist)    /mnt/vendor/persist     ext4   FS_FLAG_COMMIT  FSMGR_FLAG_FMT

fstab.in选择了挂载/mnt/vendor/zlintek而非/zlintek,是因为/zlintek目录在a13机器上调试时一直无法创建出来,退而求其次,参考nvcfg/mnt/vendor目录下创建了zlintek目录。

在此处对/zlintek目录的保留和后续对该目录的权限操作是为了编译pass,如果读者在新增分区时能在根目录下创建xxx目录,那么fstab.in这里的挂载目录也可改为/xxx。

3、添加分区块设备权限规则

mt6789_s/device/mediatek/mt6789/ueventd.mt6789.rc

--- a/mediatek/mt6789/ueventd.mt6789.rc
+++ b/mediatek/mt6789/ueventd.mt6789.rc
@@ -26,6 +26,9 @@
 /dev/block/by-name/md1img_b  0640    root    system
 /dev/block/by-name/md1dsp    0660    root    system
 /dev/block/by-name/boot_para 0640    root    system
+/dev/block/by-name/zlintek   0640    root    system
 
 # OTP
 /dev/otp                  0660   system     system

4、添加挂载分区的selinux权限

mt6789_s/device/mediatek/sepolicy/basic/non_plat/device.te

--- a/mediatek/sepolicy/basic/non_plat/device.te
+++ b/mediatek/sepolicy/basic/non_plat/device.te
@@ -305,6 +305,10 @@ type m_step_c_misc_device, dev_type;
 type m_fusion_misc_device, dev_type;
 type m_bio_misc_device, dev_type;
 
+type zlintek_block_device, dev_type;
+
 # Date : 2016/07/11
 # Operation : Migration
 # Purpose : Add permission for gpu access

mt6789_s/device/mediatek/sepolicy/basic/non_plat/file.te

--- a/mediatek/sepolicy/basic/non_plat/file.te
+++ b/mediatek/sepolicy/basic/non_plat/file.te
@@ -452,6 +452,10 @@ type mediaserver_data_file, file_type, data_file_typ
制作 Android 13 MTK 平台的 OTA 差分包相对来说比较复杂,需要一定的开发经验和知识。以下是一般的步骤和流程: 1. 准备工作: - 确保你的开发环境已经配置好,并且可以编译和构建 Android 13 MTK 平台的源代码。 - 获取原始系统镜像和目标系统镜像,分别表示当前系统和要升级的目标系统。 2. 执行 AOSP 构建: - 使用 AOSP 源代码构建系统,生成目标系统镜像。可以参考 MTK 平台的开发文档来执行构建命令。 3. 生成差分文件: - 使用 Android 提供的工具 `imgdiff`,生成目标系统镜像与当前系统镜像之间的差分文件。具体使用方法可以参考 Android 官方文档。 4. 打包差分包: - 将生成的差分文件和一些必要的元数据文件(如版本号、设备信息等)打包成 OTA 差分包。可以使用 `build/tools/releasetools` 目录下的工具来完成打包操作。 5. 签名差分包: - 使用 Android 提供的 `signapk` 工具,对生成的差分包进行签名。签名是为了确保差分包的完整性和安全性。 6. 测试和发布: - 在真实设备上测试差分包的安装和升级过程,确保没有问题。 - 将签名后的差分包上传到合适的发布渠道,供用户下载和安装。 需要注意的是,以上步骤只是一个大致的流程,具体的操作和工具可能会因为不同的开发环境和配置而有所不同。建议在进行 OTA 差分包制作之前,先仔细阅读相关的官方文档和开发者指南,并确保你对 Android 平台开发有一定的了解和经验。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值