MTK AB分区修改

打开OTA设置
android p版本开AB 分区需要修改以下配置项:
(1)preloader:
vendor/mediatek/proprietary/bootable/bootloader/preloader/custom/projectname/projectname.mk
MTK_AB_OTA_UPDATER=yes
export MTK_AB_OTA_UPDATER
(2)lk:
vendor/mediatek/proprietary/bootable/bootloader/lk/project/projectname.mk
MTK_AB_OTA_UPDATER=yes
SYSTEM_AS_ROOT=yes
(3)project:
device/mediatekprojects/projectname/ProjectConfig.mk
MTK_AB_OTA_UPDATER=yes
SYSTEM_AS_ROOT=yes
(4)Kernel:
kernel-XXX/arch/arm64/projectname_defconfig
kernel-XXX/arch/arm64/projectname_debug_defconfig
如果有 # CONFIG_SYSTEM_AS_ROOT
is not set, 删去此行
SYSTEM_AS_ROOT定义的Kconfig在kernel-XXX/drivers/misc/mdiatek/Kconfig中,默认为y
确认kernel-XXX的方式为:
查看 /device/mediatekprojects/ projectname /ProjectConfig.mk
LINUX_KERNEL_VERSION = kernel-XXX
(5)增加分区文件device/project/xxxx/partition/partition_ab_dynamic.xml
同时修改编译脚本
device/project/xxxx/partition/Android.mk
(6)增加ota update_engine的SE权限
device/mediatek/mt8xxx/sepolicy/basic/update_engine.te
(7)修改生成的分区刷机文件
device/project/xxxx/partition/scatter.json
(8)AB分区的块设备权限
device/mediatek/mt8xxx/sepolicy/basic/file_contexts
(9)OTA升级遇到的bug解决
(10) OTADemo

前面4步都是添加设置,比较简单,我们从第5步开始说明
5.本来说是在xls里面配置的
device\mediatek\build\build\tools\ptgen\MT8xxx\partition_table_MT8xxx.xls这里是没有动态分区的
但是根据MTK的脚本,发现在device\mediatek\project\xxxx\partition\partition_dynamic.xml里面
新建一个partition_ab_dynamic.xml文件,如下配置,
31457280*512\1024\1024=15360M 也就是15G,下面的也是这么算的
这个不知道怎么写, 就参考其他项目的,或者看这个partition_table_MT8xxx.xls里面的

<?xml version="1.0" encoding="utf-8"?>
<partition lba="31457280"><entry type="{0FC63DAF-8483-4772-8E79-3D69D8477DE4}" size="6144" name="proinfo"/><entry type="{0FC63DAF-8483-4772-8E79-3D69D8477DE4}" size="30720" name="cam_vpu1_a"/><entry type="{0FC63DAF-8483-4772-8E79-3D69D8477DE4}" size="30720" name="cam_vpu2_a"/><entry type="{0FC63DAF-8483-4772-8E79-3D69D8477DE4}" size="30720" name="cam_vpu3_a"/><entry type="{0FC63DAF-8483-4772-8E79-3D69D8477DE4}" size="30720" name="cam_vpu1_b"/><entry type="{0FC63DAF-8483-4772-8E79-3D69D8477DE4}" size="30720" name="cam_vpu2_b"/><entry type="{0FC63DAF-8483-4772-8E79-3D69D8477DE4}" size="30720" name="cam_vpu3_b"/><entry type="{0FC63DAF-8483-4772-8E79-3D69D8477DE4}" size="10240" name="nvram"/><entry type="{0FC63DAF-8483-4772-8E79-3D69D8477DE4}" size="20480" name="protect1"/><entry type="{0FC63DAF-8483-4772-8E79-3D69D8477DE4}" size="20480" name="protect2"/><entry type="{0FC63DAF-8483-4772-8E79-3D69D8477DE4}" size="98304" name="persist"/><entry type="{0FC63DAF-8483-4772-8E79-3D69D8477DE4}" size="16384" name="nvcfg"/><entry type="{0FC63DAF-8483-4772-8E79-3D69D8477DE4}" size="512" name="seccfg"/><entry type="{0FC63DAF-8483-4772-8E79-3D69D8477DE4}" size="2048" name="lk_a"/><entry type="{0FC63DAF-8483-4772-8E79-3D69D8477DE4}" size="2048" name="lk_b"/><entry type="{0FC63DAF-8483-4772-8E79-3D69D8477DE4}" size="65536" name="boot_a"/><entry type="{0FC63DAF-8483-4772-8E79-3D69D8477DE4}" size="65536" name="boot_b"/><!-- <entry type="{0FC63DAF-8483-4772-8E79-3D69D8477DE4}" size="65536" name="recovery"/> --><entry type="{0FC63DAF-8483-4772-8E79-3D69D8477DE4}" size="1024" name="para"/><entry type="{0FC63DAF-8483-4772-8E79-3D69D8477DE4}" size="16384" name="logo"/><entry type="{0FC63DAF-8483-4772-8E79-3D69D8477DE4}" size="16384" name="dtbo_a"/><entry type="{0FC63DAF-8483-4772-8E79-3D69D8477DE4}" size="16384" name="dtbo_b"/><entry type="{0FC63DAF-8483-4772-8E79-3D69D8477DE4}" size="20480" name="expdb"/><entry type="{0FC63DAF-8483-4772-8E79-3D69D8477DE4}" size="2048" name="frp"/><entry type="{0FC63DAF-8483-4772-8E79-3D69D8477DE4}" size="10240" name="tee_a"/><entry type="{0FC63DAF-8483-4772-8E79-3D69D8477DE4}" size="10240" name="tee_b"/><entry type="{0FC63DAF-8483-4772-8E79-3D69D8477DE4}" size="4096" name="kb"/><entry type="{0FC63DAF-8483-4772-8E79-3D69D8477DE4}" size="4096" name="dkb"/><entry type="{0FC63DAF-8483-4772-8E79-3D69D8477DE4}" size="65536" name="metadata"/><entry type="{0FC63DAF-8483-4772-8E79-3D69D8477DE4}" size="11520" name="vbmeta_a"/><entry type="{0FC63DAF-8483-4772-8E79-3D69D8477DE4}" size="11520" name="vbmeta_b"/><entry type="{0FC63DAF-8483-4772-8E79-3D69D8477DE4}" size="8192" name="nvdata" /><entry type="{0FC63DAF-8483-4772-8E79-3D69D8477DE4}" size="4096" name="vbmeta_system_a" /><entry type="{0FC63DAF-8483-4772-8E79-3D69D8477DE4}" size="4096" name="vbmeta_system_b" /><entry type="{0FC63DAF-8483-4772-8E79-3D69D8477DE4}" size="4096" name="vbmeta_vendor_a" /><entry type="{0FC63DAF-8483-4772-8E79-3D69D8477DE4}" size="4096" name="vbmeta_vendor_b" /><entry type="{0FC63DAF-8483-4772-8E79-3D69D8477DE4}" size="16769024" name="super"/><!-- <entry type="{0FC63DAF-8483-4772-8E79-3D69D8477DE4}" size="229376" name="cache"/>  --><entry type="{0FC63DAF-8483-4772-8E79-3D69D8477DE4}" size="6291456" name="userdata"/>
</partition>

同目录下的mk脚本 ,这里修改

#PARTITION := $(LOCAL_PATH)/partition_dynamic.xml
PARTITION := $(LOCAL_PATH)/partition_ab_dynamic.xml

还有一些其他地方有需要修改的

diff --git a/alps/device/mediatek/mt8168/BoardConfig.mk b/alps/device/mediatek/mt8xxx/BoardConfig.mk--- a/alps/device/mediatek/mt8168/BoardConfig.mk
+++ b/alps/device/mediatek/mt8168/BoardConfig.mk
@@ -163,7 +163,8 @@ endif#get partitionifeq ($(strip $(MTK_DYNAMIC_PARTITION_SUPPORT)), yes)
-PARTITION_XML := $(MTK_TARGET_PROJECT_FOLDER)/partition/partition_dynamic.xml
+#PARTITION_XML := $(MTK_TARGET_PROJECT_FOLDER)/partition/partition_dynamic.xml
+PARTITION_XML := $(MTK_TARGET_PROJECT_FOLDER)/partition/partition_ab_dynamic.xml

6增加te文件

diff --git a/alps/device/mediatek/mt8xxx/sepolicy/basic/update_engine.te b/alps/device/mediatek/mt8xxx/sepolicy/basic/update_engine.te
--- /dev/null
+++ b/alps/device/mediatek/mt8168/sepolicy/basic/update_engine.te
@@ -0,0 +1,2 @@
+allow update_engine metadata_file:dir { search };^M
+allow update_engine sysfs_boot_type:file { read open getattr write unlink};

(7)修改生成的分区刷机文件
device/project/xxxx/partition/scatter.json

{"preloader": {"boundary_check": true,"is_download": true,"is_upgradable": true,"file_name": "preloader_xxxx.bin","is_reserved": false,"partition_name": "preloader","partition_size": 262144,"physical_start_addr": 0,"linear_start_addr": 0,"region": "EMMC_BOOT_1","storage": "HW_STORAGE_EMMC","operation_type": "BOOTLOADERS","type": "SV5_BL_BIN","reserve": 0},"pgpt": {"boundary_check": true,"is_download": true,"file_name": "GPT.img","is_reserved": false,"partition_name": "pgpt","partition_size": 524288,"physical_start_addr": 0,"linear_start_addr": 0,"region": "EMMC_USER","storage": "HW_STORAGE_EMMC","operation_type": "UPDATE","type": "NORMAL_ROM","reserve": 0},"PRO_INFO": {"operation_type": "PROTECTED","type": "NORMAL_ROM"},"proinfo": {"operation_type": "PROTECTED","type": "NORMAL_ROM"},"NVRAM": {"operation_type": "BINREGION","type": "NORMAL_ROM"},"nvram": {"operation_type": "BINREGION","type": "NORMAL_ROM"},"cam_vpu1": {"file_name": "cam_vpu1.img","operation_type": "UPDATE","is_upgradable": true,"type": "NORMAL_ROM"},"cam_vpu1_a": {"file_name": "cam_vpu1.img","operation_type": "UPDATE","is_upgradable": true,"type": "NORMAL_ROM"},"cam_vpu1_b": {"is_upgradable": true,"type": "NORMAL_ROM"},"cam_vpu2": {"file_name": "cam_vpu2.img","operation_type": "UPDATE","is_upgradable": true,"type": "NORMAL_ROM"},"cam_vpu2_a": {"file_name": "cam_vpu2.img","operation_type": "UPDATE","is_upgradable": true,"type": "NORMAL_ROM"},"cam_vpu2_b": {"is_upgradable": true,"type": "NORMAL_ROM"},"cam_vpu3": {"file_name": "cam_vpu3.img","operation_type": "UPDATE","is_upgradable": true,"type": "NORMAL_ROM"},"cam_vpu3_a": {"file_name": "cam_vpu3.img","operation_type": "UPDATE","is_upgradable": true,"type": "NORMAL_ROM"},"cam_vpu3_b": {"is_upgradable": true,"type": "NORMAL_ROM"},"nvcfg": {"operation_type": "INVISIBLE","type": "EXT4_IMG"},"boot_para": {"operation_type": "INVISIBLE","type": "NORMAL_ROM"},"protect1": {"operation_type": "PROTECTED","type": "EXT4_IMG"},"protect2": {"operation_type": "PROTECTED","type": "EXT4_IMG"},"para": {"operation_type": "INVISIBLE","type": "NORMAL_ROM"},"SECCFG": {"operation_type": "INVISIBLE","type": "NONE"},"seccfg": {"operation_type": "INVISIBLE","type": "NORMAL_ROM"},"PROTECT_F": {"operation_type": "PROTECTED","type": "NORMAL_ROM"},"PROTECT_S": {"operation_type": "PROTECTED","type": "NORMAL_ROM"},"UBOOT": {"file_name": "lk.img","type": "NORMAL_ROM"},"lk": {"file_name": "lk.img","type": "NORMAL_ROM","is_upgradable": true},"lk2": {"file_name": "lk.img","type": "NORMAL_ROM","is_upgradable": true},"lk_a": {"file_name": "lk.img","type": "NORMAL_ROM","is_upgradable": true},"lk_b": {"type": "NORMAL_ROM","is_upgradable": true},"BOOTIMG": {"file_name": "boot.img","type": "NORMAL_ROM","is_upgradable": true},"boot": {"file_name": "boot.img","type": "NORMAL_ROM","is_upgradable": true},"boot_a": {"file_name": "boot.img","type": "NORMAL_ROM","is_upgradable": true},"boot_b": {"type": "NORMAL_ROM","is_upgradable": true},"recovery": {"file_name": "recovery.img","is_upgradable": true},"RECOVERY": {"file_name": "recovery.img","is_upgradable": true},"SEC_RO": {"file_name": "secro.img","type": "NORMAL_ROM"},"secro": {"file_name": "secro.img","type": "NORMAL_ROM"},"MISC": {"operation_type": "INVISIBLE","type": "NONE"},"misc": {"operation_type": "INVISIBLE","type": "NONE"},"LOGO": {"file_name": "logo.bin","type": "NORMAL_ROM"},"logo": {"file_name": "logo.bin","type": "NORMAL_ROM"},"DTBO": {"file_name": "dtbo.img","type": "NORMAL_ROM","is_upgradable": true},"dtbo": {"file_name": "dtbo.img","type": "NORMAL_ROM","is_upgradable": true},"dtbo_a": {"file_name": "dtbo.img","type": "NORMAL_ROM","is_upgradable": true},"dtbo_b": {"type": "NORMAL_ROM","is_upgradable": true},"ODMDTBO": {"file_name": "odmdtbo.img","type": "NORMAL_ROM","is_upgradable": true},"odmdtbo": {"file_name": "odmdtbo.img","type": "NORMAL_ROM","is_upgradable": true},"odmdtbo_a": {"file_name": "odmdtbo.img","type": "NORMAL_ROM","is_upgradable": true},"odmdtbo_b": {"file_name": "odmdtbo.img","type": "NORMAL_ROM","is_upgradable": true},"EXPDB": {"operation_type": "INVISIBLE","type": "NORMAL_ROM"},"expdb": {"operation_type": "INVISIBLE","type": "NORMAL_ROM"},"TEE1": {"file_name": "tee.img","type": "NORMAL_ROM","is_upgradable": true},"TEE2": {"file_name": "tee.img","type": "NORMAL_ROM","is_upgradable": true},"tee1": {"file_name": "tee.img","type": "NORMAL_ROM","is_upgradable": true},"tee2": {"file_name": "tee.img","type": "NORMAL_ROM","is_upgradable": true},"tee_a": {"file_name": "tee.img","type": "NORMAL_ROM","is_upgradable": true},"tee_b": {"type": "NORMAL_ROM","is_upgradable": true},"oemkeystore": {"operation_type": "INVISIBLE","type": "NORMAL_ROM"},"keystore": {"operation_type": "INVISIBLE","type": "NORMAL_ROM"},"FRP": {"operation_type": "INVISIBLE","type": "NORMAL_ROM"},"frp": {"operation_type": "INVISIBLE","type": "NORMAL_ROM"},"nvdata": {"operation_type": "INVISIBLE","type": "EXT4_IMG"},"metadata": {"operation_type": "INVISIBLE","type": "NORMAL_ROM"},"vbmeta": {"file_name": "vbmeta.img","operation_type": "UPDATE","type": "NORMAL_ROM","is_upgradable": true},"vbmeta_a": {"file_name": "vbmeta.img","operation_type": "UPDATE","type": "NORMAL_ROM","is_upgradable": true},"vbmeta_b": {"type": "NORMAL_ROM","is_upgradable": true},"KB": {"operation_type": "INVISIBLE","type": "NORMAL_ROM"},"kb": {"operation_type": "PROTECTED","type": "NORMAL_ROM"},"dkb": {"operation_type": "PROTECTED","type": "NORMAL_ROM"},"vbmeta_vendor": {"file_name": "vbmeta_vendor.img","operation_type": "UPDATE","type": "NORMAL_ROM","is_upgradable": true},"vbmeta_vendor_a": {"file_name": "vbmeta_vendor.img","operation_type": "UPDATE","type": "NORMAL_ROM","is_upgradable": true},"vbmeta_vendor_b": {"type": "NORMAL_ROM","is_upgradable": true},"vbmeta_system": {"file_name": "vbmeta_system.img","operation_type": "UPDATE","type": "NORMAL_ROM","is_upgradable": true},"vbmeta_system_a": {"file_name": "vbmeta_system.img","operation_type": "UPDATE","type": "NORMAL_ROM","is_upgradable": true},"vbmeta_system_b": {"type": "NORMAL_ROM","is_upgradable": true},"system": {"file_name": "system.img","type": "EXT4_IMG","is_upgradable": true},"super": {"file_name": "super.img","type": "EXT4_IMG","is_upgradable": true},"system_a": {"file_name": "system.img","type": "EXT4_IMG","is_upgradable": true},"system_b": {"file_name": "system_other.img","type": "EXT4_IMG","is_upgradable": true},"ANDROID": {"file_name": "system.img","type": "EXT4_IMG","is_upgradable": true},"vendor": {"file_name": "vendor.img","type": "EXT4_IMG","is_upgradable": true},"VENDOR": {"file_name": "vendor.img","type": "EXT4_IMG","is_upgradable": true},"vendor_a": {"file_name": "vendor.img","type": "EXT4_IMG","is_upgradable": true},"vendor_b": {"type": "EXT4_IMG","is_upgradable": true},"odm": {"file_name": "odm.img","type": "EXT4_IMG","is_upgradable": true},"ODM": {"file_name": "odm.img","type": "EXT4_IMG","is_upgradable": true},"odm_a": {"file_name": "odm.img","type": "EXT4_IMG","is_upgradable": true},"odm_b": {"type": "EXT4_IMG","is_upgradable": true},"cache": {"file_name": "cache.img","type": "EXT4_IMG"},"CACHE": {"file_name": "cache.img","type": "EXT4_IMG"},"persist": {"operation_type": "PROTECTED","type": "EXT4_IMG"},"userdata": {"file_name": "userdata.img","type": "EXT4_IMG"},"USRDATA": {"file_name": "userdata.img","type": "EXT4_IMG"},"FAT": {"type": "EXT4_IMG","operation_type": "INVISIBLE"},"OTP": {"boundary_check": false,"is_download": false,"file_name": "NONE","is_reserved": true,"partition_name": "OTP","partition_size": 45088768,"physical_start_addr": 4294902104,"linear_start_addr": 4294902104,"region": "EMMC_USER","storage": "HW_STORAGE_EMMC","operation_type": "RESERVED","type": "NONE","reserve": 0},"sgpt": {"boundary_check": false,"is_download": false,"file_name": "NONE","is_reserved": true,"partition_name": "sgpt","partition_size": 16896,"physical_start_addr": 4294901760,"linear_start_addr": 4294901760,"region": "EMMC_USER","storage": "HW_STORAGE_EMMC","operation_type": "RESERVED","type": "NORMAL_ROM","reserve": 0}}

(8)AB分区的块设备权限
device/mediatek/mt8xxx/sepolicy/basic/file_contexts

diff --git a/alps/device/mediatek/mt8168/sepolicy/basic/file_contexts b/alps/device/mediatek/mt8168/sepolicy/basic/file_contexts
index d8999c3cad..79452f378e 100644
--- a/alps/device/mediatek/mt8168/sepolicy/basic/file_contexts
+++ b/alps/device/mediatek/mt8168/sepolicy/basic/file_contexts
@@ -3,6 +3,8 @@#/dev/block/platform/soc/[0-9]+\.mmc/by-name/proinfo u:object_r:nvram_device:s0/dev/block/platform/soc/[0-9]+\.mmc/by-name/nvram u:object_r:nvram_device:s0
+/dev/block/platform/soc/[0-9]+\.mmc/by-name/preloader(_[ab])? u:object_r:preloader_block_device:s0
+/dev/block/platform/soc/[0-9]+\.mmc/by-name/lk(_[ab])? u:object_r:lk_block_device:s0/dev/block/platform/soc/[0-9]+\.mmc/by-name/protect1  u:object_r:protect1_block_device:s0/dev/block/platform/soc/[0-9]+\.mmc/by-name/protect2 u:object_r:protect2_block_device:s0/dev/block/platform/soc/[0-9]+\.mmc/by-name/seccfg u:object_r:seccfg_block_device:s0
@@ -14,16 +16,25 @@/dev/block/platform/soc/[0-9]+\.mmc/by-name/frp u:object_r:frp_block_device:s0/dev/block/platform/soc/[0-9]+\.mmc/by-name/tee1 u:object_r:tee_block_device:s0/dev/block/platform/soc/[0-9]+\.mmc/by-name/tee2 u:object_r:tee_block_device:s0
+/dev/block/platform/soc/[0-9]+\.mmc/by-name/tee(_[ab])? u:object_r:tee_block_device:s0/dev/block/platform/soc/[0-9]+\.mmc/by-name/nvdata u:object_r:nvdata_device:s0/dev/block/platform/soc/[0-9]+\.mmc/by-name/metadata u:object_r:metadata_block_device:s0/dev/block/platform/soc/[0-9]+\.mmc/by-name/super u:object_r:super_block_device:s0/dev/block/platform/soc/[0-9]+\.mmc/by-name/system u:object_r:system_block_device:s0/dev/block/platform/soc/[0-9]+\.mmc/by-name/vendor(_[ab])? u:object_r:vendor_block_device:s0
+/dev/block/platform/soc/[0-9]+\.mmc/by-name/vbmeta(_system|_vendor)?(_[ab])? u:object_r:vbmeta_block_device:s0/dev/block/platform/soc/[0-9]+\.mmc/by-name/cache u:object_r:cache_block_device:s0/dev/block/platform/soc/[0-9]+\.mmc/by-name/userdata u:object_r:userdata_block_device:s0/dev/block/platform/soc/[0-9]+\.mmc/by-name/odmdtbo(_[ab])? u:object_r:dtbo_block_device:s0
+/dev/block/platform/soc/[0-9]+\.mmc/by-name/dtbo(_[ab])? u:object_r:dtbo_block_device:s0/dev/block/platform/soc/[0-9]+\.mmc/by-name/odm(_[ab])? u:object_r:odm_block_device:s0/dev/block/platform/soc/[0-9]+\.mmc/by-name/nvcfg u:object_r:nvcfg_block_device:s0
+/dev/block/platform/soc/[0-9]+\.mmc/by-name/boot(_[ab])? u:object_r:boot_block_device:s0
+
+/dev/block/platform/soc/[0-9]+\.mmc/by-name/vbmeta(_[ab])? u:object_r:lk_block_device:s0
+/dev/block/platform/soc/[0-9]+\.mmc/by-name/cam_vpu1(_[ab])? u:object_r:lk_block_device:s0
+/dev/block/platform/soc/[0-9]+\.mmc/by-name/cam_vpu2(_[ab])? u:object_r:lk_block_device:s0
+/dev/block/platform/soc/[0-9]+\.mmc/by-name/cam_vpu3(_[ab])? u:object_r:lk_block_device:s0

升级的时候可能会有bug

BUG1
校验preloader.img出错,增加下面的patch,patch_package/0001-ALPS07157008-8168-preloader-header.patch复制到下面的目录
vendor/mediatek/proprietary/bootable/bootloader/preloader/platform/mt8168/headerblock_for_ota_fastboot_emmc
这个,自己找MTK要

BUG2
Vbmeta.img校验错误 是因为在runtime是关闭了avb,加快开机速度,但这样 导致hash检验失败

1.build/make/core/Makefile
-ifeq (eng,$(filter eng, $(TARGET_BUILD_VARIANT)))
+#ifeq (eng,$(filter eng, $(TARGET_BUILD_VARIANT)))# We only need the flag in top-level vbmeta.img.BOARD_AVB_MAKE_VBMETA_IMAGE_ARGS += --set_hashtree_disabled_flag
-endif
+#endif2.external/avb/avbtool
@@ -46,6 +46,7 @@ AVB_FOOTER_VERSION_MAJOR = 1AVB_FOOTER_VERSION_MINOR = 0AVB_VBMETA_IMAGE_FLAGS_HASHTREE_DISABLED = 1
+AVB_VBMETA_IMAGE_FLAGS_VERIFICATION_DISABLED = 2 class AvbError(Exception):
@@ -3867,7 +3868,7 @@ class AvbTool(object):The modified arguments."""if args.set_hashtree_disabled_flag:
-      args.flags |= AVB_VBMETA_IMAGE_FLAGS_HASHTREE_DISABLED
+      args.flags |= AVB_VBMETA_IMAGE_FLAGS_VERIFICATION_DISABLEDreturn args

另附OTADemo

OTAdemo链接
https://download.csdn.net/download/xuyewen288/85801495

MTK AB分区修改相关推荐

  1. Android 系统(205)---MTK平台分区回读

    MTK平台分区回读 有时遇到各种开机卡死或重启问题,往往我们依靠分区回读的方法来验证是否为软件问题. 在MTK平台我们利用flash_tool工具来回读分区,简单归结为一下步骤. 1.首先选择Down ...

  2. Android 系统(123)---MTK android 常用修改点

    MTK android 常用修改点 1. *#06#等关键码判断文件 SpecialCharSequenceMgr.java 2.音效 ControlPanelEffect.java 3.版本号修改 ...

  3. android8.1新建分区并挂载,Android8.1 MTK Vendor分区大小调整无效分析

    最近想修改一下MTK Vendor分区大小,结果被 坑.只能说MTK真的太laji. 查找资料,正规的流程是: 1.  device/mediatek/build/build/tools/ptgen/ ...

  4. MTK android 常用修改点

    1. *#06#等关键码判断文件 SpecialCharSequenceMgr.java 2.音效 ControlPanelEffect.java 3.版本号修改 bulid/core/build_i ...

  5. Android MTK 音频通道修改

    Android MTK 音频通道修改 前言 一.修改系统配置 1.配置文件修改路径 2.更改配置 3.编译注意 二.修改DTS控制口 前言 在我们没有使用系统默认Speak通道的时候,可以使用耳机通道 ...

  6. android用命令查询是否支持ab分区

    安卓用命令查询是否支持ab分区 getprop |grep treble 如果返回不为空而且为true,那就是支持pt(project treble)分区

  7. oracle更改分区表结构,Oracle分区修改的语句

    Oracle分区修改的语句 1.增加一个分区 ALTER TABLE sales ADD PARTITION jan96 VALUES LESS THAN ( '01-FEB-1999' ) TABL ...

  8. MTK AB OTA升级代码及修改

    这里写目录标题 OTA代码下载 1.Android.mk增加编译 2.增加priv-app OTA的权限 3.新增se文件 4.添加系统能发送的广播,不然会报异常 5.MTK平台快霸增加白名单,不然如 ...

  9. MTK SN号修改失效

    MTK平台SN号修改失效 使用SN Write工具写入SN号时.adb devices或者×#06#查阅SN号,显示的还是默认的0-F.修改失效 按照如下方案排查问题 一. 工具写入是否成功? 1.通 ...

最新文章

  1. k8s v1.9.6 超详细搭建步骤
  2. 大一计算机课程excel,大学计算机EXCEL讲课ppt课件.ppt
  3. vb串口 任意波特率_C#与单片机串口通讯,实现简单的计数功能
  4. Android输出签名的 SHA1 值
  5. 【网】关于 Blog 和 RSS 的全面介绍
  6. getInvokeArg()和setParam配合使用
  7. ArcEngine中使用上下左右键移动地图
  8. 学会使用JDK API
  9. setwindowpos怎么改变z序_【情感问答】||朋友圈子小,沉默寡言嘴不甜,情商低,该怎么脱单?...
  10. java跟setattribute,java 中的request.setAttribute和session.setAttribute的区别
  11. HDU1285确定比赛名次(拓扑排序+优先队列)
  12. jquery 选择器 空格、大于、加号、波浪线区别
  13. html 单选框_HTML
  14. Lucene.NET----站内搜索引擎资料(推荐-arvin)
  15. vue框架如何将SPA项目改为SSR项目
  16. 用js实现背景颜色改变
  17. 使用sws_scale转换视频、使用swr_convert转换音频
  18. 课后自主练习(排序)1027. 极坐标排序 easy《编程思维与实践》个人学习笔记
  19. i9 9900k和i9 9900ks有什么区别
  20. neon浮点运算_ARM NEON指令集优化理论与实践

热门文章

  1. 【CKA考试笔记】十五、安全管理:验证与授权
  2. 分享一个日记软件ediary
  3. 计算机网络应用层--龙之介计算机网络学习(2)
  4. 计算机网络传输层UDP协议--龙之介计算机网络学习(3)
  5. 分享一些百度收录又快又好的平台,用好它们做推广有奇效!
  6. TypeScript基础教程
  7. 微信小程序 电子合同、电子签名 canvasToTempFilePath: fail canvas is empty
  8. CompletableFuture原理与实践-外卖商家端API的异步化
  9. Android进阶之路 - 软键盘中右下角的设置与监听
  10. z8350键盘主机刷linux,自动化运维之系统篇:cobbler批量安装系统主机搭建