当前位置:   article > 正文

rk3566-11.0新增device分区_parameter.txt rockchip修改分区

parameter.txt rockchip修改分区

1.增加块设备

2.修改根目录节点权限

3.开机启动自动挂载

增加块设备

1.修改parameter.txt文件,新增块设备大小及命名

device/rockchip/rk356x/rk3566_r/parameter.txt
FIRMWARE_VER: 11.0
MACHINE_MODEL: rk3566_r
MACHINE_ID: 007
MANUFACTURER: rockchip
MAGIC: 0x5041524B
ATAG: 0x00200800
MACHINE: rk3566_r
CHECK_MASK: 0x80
PWR_HLD: 0,0,A,0,1
TYPE: GPT
CMDLINE:mtdparts=rk29xxnand:0x00002000@0x00002000(security),0x00002000@0x00004000(uboot),0x00002000@0x00006000(trust),0x00002000@0x00008000(misc),0x00002000@0x0000a000(dtbo),0x00000800@0x0000c000(vbmeta),0x00014000@0x0000c800(boot),0x00030000@0x00020800(recovery),0x000c0000@0x00050800(backup),0x000c0000@0x00110800(cache),0x00008000@0x001d0800(metadata),0x00000800@0x001d8800(baseparameter),0x00614000@0x001d9000(super),0x00614000@0x007ed000(device),-@0x00e12000(userdata:grow)
//红色部分代表新增的块设备
@符号前是分区的大小
@符号后是分区的起始地址
括号中是分区的名字
单位都是 sector(512Bytes)
比如 uboot 起始地址为 0x2000 sectors (4MB)的位置,大小为 0x2000 sectors(4M)
另外 flash 最大的 block 是 4M(0x2000 sectors),所以每个分区需要 4MB 对齐,即每个分区必须为 4MB 的整数倍。
,0x00038000@0x00038000(backup)
backup 分区前的分区为固件区 uboot、trust、misc、resource、kernel、boot、recovery 。
后续升级时不能修改分区大小
backup 分区后的分区 cache、system、metadata、baseparamer、userdata
是可以读写的,可以调整分区大小。但是修改分区大小后需要进入 recovery 系统格式化 cache

2.修改recovery

    修改recovery.fstab,使得recovery阶段处理新增分区
    device/rockchip/rk356x/recovery.fstab
  1. diff --git a/rk3566_r/recovery.fstab b/rk3566_r/recovery.fstab
  2. old mode 100644
  3. new mode 100755
  4. index 0856791..28c47f7
  5. --- a/rk3566_r/recovery.fstab
  6. +++ b/rk3566_r/recovery.fstab
  7. @@ -8,6 +8,7 @@
  8. /dev/block/by-name/product               /product             ext4             defaults                  defaults
  9. /dev/block/by-name/system_ext            /system_ext          ext4             defaults                  defaults
  10. /dev/block/by-name/cache                 /cache               ext4             defaults                  defaults
  11. +/dev/block/by-name/device                /device              ext4             defaults                  defaults
  12. /dev/block/by-name/metadata              /metadata            ext4             defaults                  defaults
  13. /dev/block/by-name/userdata              /data                f2fs             defaults                  defaults
  14. /dev/block/by-name/cust                  /cust                ext4             defaults                  defaults
    修改recovery.cpp,使得recovery阶段格式化新增分区
    bootable/recovery/recovery.cpp
  1. diff --git a/install/include/install/wipe_data.h b/install/include/install/wipe_data.h
  2. old mode 100644
  3. new mode 100755
  4. index c177f59..15cd951
  5. --- a/install/include/install/wipe_data.h
  6. +++ b/install/include/install/wipe_data.h
  7. @@ -30,5 +30,6 @@ bool WipeCache(RecoveryUI* ui, const std::function<bool()>& confirm);
  8. bool WipeData(Device* device, bool convert_fbe);
  9. void SureMetadataMount();
  10. +void SureDeviceMount();
  11. void WipeFrp();
  12. int ResizeData(Device* device);
  13. diff --git a/install/wipe_data.cpp b/install/wipe_data.cpp
  14. old mode 100644
  15. new mode 100755
  16. index a16e62c..bbc62dc
  17. --- a/install/wipe_data.cpp
  18. +++ b/install/wipe_data.cpp
  19. @@ -36,6 +36,7 @@
  20. constexpr const char* CACHE_ROOT = "/cache";
  21. constexpr const char* DATA_ROOT = "/data";
  22. constexpr const char* METADATA_ROOT = "/metadata";
  23. +constexpr const char* DEVICE_ROOT = "/device";
  24. /**
  25.   * reset hdmi after restore factory.
  26. @@ -164,6 +165,15 @@ bool WipeData(Device* device, bool convert_fbe) {
  27.    return success;
  28. }
  29. +void SureDeviceMount() {
  30. +  if (ensure_path_mounted(DEVICE_ROOT)) {
  31. +    printf("mount device fail,so formate...\n");
  32. +    reset_tmplog_offset();
  33. +    format_volume(DEVICE_ROOT);
  34. +    ensure_path_mounted(DEVICE_ROOT);
  35. +  }
  36. +}
  37. +
  38. void SureMetadataMount() {
  39.    if (ensure_path_mounted(METADATA_ROOT)) {
  40.      printf("mount metadata fail,so formate...\n");
  41. diff --git a/recovery.cpp b/recovery.cpp
  42. old mode 100644
  43. new mode 100755
  44. index eda573b..4f309a1
  45. --- a/recovery.cpp
  46. +++ b/recovery.cpp
  47. @@ -1170,6 +1170,8 @@ Device::BuiltinAction start_recovery(Device* device, const std::vector<std::stri
  48.    device->StartRecovery();
  49.    SureMetadataMount();
  50. +
  51. +  SureDeviceMount();
  52.    printf("Command:");
  53.    for (const auto& arg : args) {
  54.    .....

修改根目录节点权限

1.修改BoardConfig.mk,新增TARGET_FS_CONFIG_GEN  += device/rockchip/common/config.fs

device/rockchip/common/BoardConfig.mk
  1. diff --git a/BoardConfig.mk b/BoardConfig.mk
  2. index d642ffd..beb78c9 100755
  3. --- a/BoardConfig.mk
  4. +++ b/BoardConfig.mk
  5. @@ -132,6 +132,9 @@ BOARD_ODMIMAGE_FILE_SYSTEM_TYPE ?= ext4
  6. TARGET_COPY_OUT_VENDOR := vendor
  7. BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE ?= ext4
  8. +#test for fs_config
  9. +TARGET_FS_CONFIG_GEN  += device/rockchip/common/config.fs
  10. +
  11. # default.prop & build.prop split
  12. BOARD_PROPERTY_OVERRIDES_SPLIT_ENABLED ?= true

2.新增config.fs,指明根目录/device的权限状态

  1. # Copyright (C) 2018 The Android Open Source Project
  2. #
  3. # Licensed under the Apache License, Version 2.0 (the "License");
  4. # you may not use this file except in compliance with the License.
  5. # You may obtain a copy of the License at
  6. #
  7. #      http://www.apache.org/licenses/LICENSE-2.0
  8. #
  9. # Unless required by applicable law or agreed to in writing, software
  10. # distributed under the License is distributed on an "AS IS" BASIS,
  11. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12. # See the License for the specific language governing permissions and
  13. # limitations under the License.
  14. #
  15. # This file is used to define the properties of the filesystem
  16. # images generated by build tools (mkbootfs and mkyaffs2image) and
  17. # by the device side of adb.
  18. [AID_VENDOR_NEW_SERVICE]
  19. value: 2900
  20. [AID_VENDOR_NEW_SERVICE_TWO]
  21. value:2902
  22. [vendor/bin/service1]
  23. mode: 0755
  24. user: AID_SYSTEM
  25. group: AID_VENDOR_NEW_SERVICE
  26. caps: CHOWN DAC_OVERRIDE
  27. [device/]
  28. mode: 0777
  29. user: AID_SYSTEM
  30. group: AID_SYSTEM
  31. caps: 0
  32. [device/f7s/]
  33. mode: 0777
  34. user: AID_SYSTEM
  35. group: AID_SYSTEM
  36. caps: 0

开机启动自动挂载

修改init.rc和fstab.in,在init阶段创建/device目录并模拟/cache目录的挂载参数

device/rockchip/common/scripts/fstab_tools/fstab.in
device/rockchip/common/recovery/etc/init.rc
  1. diff --git a/recovery/etc/init.rc b/recovery/etc/init.rc
  2. old mode 100644
  3. new mode 100755
  4. index 2ed0ea6..7fb4d09
  5. --- a/recovery/etc/init.rc
  6. +++ b/recovery/etc/init.rc
  7. @@ -32,6 +32,7 @@ on init
  8.      mkdir /data
  9.      mkdir /cache
  10.      mkdir /sideload
  11. +       mkdir /device
  12.      mount tmpfs tmpfs /tmp
  13.      chown root shell /tmp
  14. diff --git a/scripts/fstab_tools/fstab.in b/scripts/fstab_tools/fstab.in
  15. index 10c3d2e..9a1d1e0 100755
  16. --- a/scripts/fstab_tools/fstab.in
  17. +++ b/scripts/fstab_tools/fstab.in
  18. @@ -10,6 +10,7 @@ ${_block_prefix}system_ext /system_ext  ext4 ro,barrier=1 ${_flags},first_stage_
  19. /dev/block/by-name/metadata /metadata ext4 nodev,noatime,nosuid,discard,sync wait,formattable,first_stage_mount,check
  20. /dev/block/by-name/misc         /misc               emmc      defaults     defaults
  21. /dev/block/by-name/cache          /cache              ext4      noatime,nodiratime,nosuid,nodev,noauto_da_alloc,discard                wait,check
  22. +/dev/block/by-name/device         /device             ext4      noatime,nodiratime,nosuid,nodev,noauto_da_alloc,discard                wait,check
  23. /devices/platform/*usb*   auto vfat defaults      voldmanaged=usb:auto

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/330330
推荐阅读
相关标签
  

闽ICP备14008679号