功能:解决设备在恢复出厂设置进行擦除数据的时候卡住问题。

1.修改userdata分区为ext4格式
diff --git a/device/rockchip/common/scripts/fstab_tools/fstab.in b/device/rockchip/common/scripts/fstab_tools/fstab.in
index 583e75579d..036336835d 100755
--- a/device/rockchip/common/scripts/fstab_tools/fstab.in
+++ b/device/rockchip/common/scripts/fstab_tools/fstab.in
@@ -23,6 +23,6 @@ ${_block_prefix}system_ext /system_ext  ext4 ro,barrier=1 ${_flags},first_stage_
 # For sdmmc
 /devices/platform/${_sdmmc_device}/mmc_host*        auto  auto    defaults        voldmanaged=sdcard1:auto
 #  Full disk encryption has less effect on rk3326, so default to enable this.
-/dev/block/by-name/userdata /data f2fs noatime,nosuid,nodev,discard,reserve_root=32768,resgid=1065 latemount,wait,check,fileencryption=aes-256-xts:aes-256-cts:v2+inlinecrypt_optimized,keydirectory=/metadata/vold/metadata_encryption,quota,formattable,reservedsize=128M,checkpoint=fs
+#/dev/block/by-name/userdata /data f2fs noatime,nosuid,nodev,discard,reserve_root=32768,resgid=1065 latemount,wait,check,fileencryption=aes-256-xts:aes-256-cts:v2+inlinecrypt_optimized,keydirectory=/metadata/vold/metadata_encryption,quota,formattable,reservedsize=128M,checkpoint=fs
 # for ext4
-#/dev/block/by-name/userdata    /data      ext4    discard,noatime,nosuid,nodev,noauto_da_alloc,data=ordered,user_xattr,barrier=1    latemount,wait,formattable,check,fileencryption=software,quota,reservedsize=128M,checkpoint=block
+/dev/block/by-name/userdata    /data      ext4    discard,noatime,nosuid,nodev,noauto_da_alloc,data=ordered,user_xattr,barrier=1    latemount,wait,formattable,check,fileencryption=software,quota,reservedsize=128M,checkpoint=block

diff --git a/device/rockchip/rk356x/rk3568_tes/recovery.fstab b/device/rockchip/rk356x/rk3568_tes/recovery.fstab
index 08567914fd..c63acdce45 100644
--- a/device/rockchip/rk356x/rk3568_tes/recovery.fstab
+++ b/device/rockchip/rk356x/rk3568_tes/recovery.fstab
@@ -9,7 +9,8 @@
 /dev/block/by-name/system_ext            /system_ext          ext4             defaults                  defaults
 /dev/block/by-name/cache                 /cache               ext4             defaults                  defaults
 /dev/block/by-name/metadata              /metadata            ext4             defaults                  defaults
-/dev/block/by-name/userdata              /data                f2fs             defaults                  defaults
+#/dev/block/by-name/userdata              /data                f2fs             defaults                  defaults
+/dev/block/by-name/userdata              /data                ext4             defaults                  defaults
 /dev/block/by-name/cust                  /cust                ext4             defaults                  defaults
 /dev/block/by-name/custom                /custom              ext4             defaults                  defaults
 /dev/block/by-name/radical_update        /radical_update      ext4             defaults                  defaults
diff --git a/device/rockchip/rk356x/rk3568_tes/recovery.fstab_AB b/device/rockchip/rk356x/rk3568_tes/recovery.fstab_AB
index bbfcba9ad0..dc4f67b5aa 100644
--- a/device/rockchip/rk356x/rk3568_tes/recovery.fstab_AB
+++ b/device/rockchip/rk356x/rk3568_tes/recovery.fstab_AB
@@ -18,4 +18,5 @@ system_ext    /system_ext    ext4 ro,barrier=1 wait,slotselect,logical,first_sta

 /dev/block/zram0                                none                swap      defaults                                              zramsize=50%

-/dev/block/by-name/userdata              /data                f2fs             defaults                  defaults
+#/dev/block/by-name/userdata              /data                f2fs             defaults                  defaults
+/dev/block/by-name/userdata              /data                ext4             defaults                  defaults
2.设备擦除的时候改为non-sd卡模式

diff --git a/system/extras/ext4_utils/wipe.cpp b/system/extras/ext4_utils/wipe.cpp
index c2db335378..34798551f4 100644
--- a/system/extras/ext4_utils/wipe.cpp
+++ b/system/extras/ext4_utils/wipe.cpp
@@ -47,7 +47,7 @@ int wipe_block_device(int fd, s64 len)

        range[0] = 0;
        range[1] = len;
-       ret = ioctl(fd, BLKSECDISCARD, &range);
+       ret = ioctl(fd, BLKDISCARD, &range);
        if (ret < 0) {
                range[0] = 0;
                range[1] = len;

3.ext4格式在设备不带电池的时候更适合使用,可以降低掉电数据丢失问题。


 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐