Новая таблица разделов для Андроида

Материал из Toshiba AC100 wiki
Перейти к навигации Перейти к поиску

Изменение таблицы разделов для новых версий Андроида


Так как начиная с версии 4.1 андроида, в старую таблицу разделов уже система плохо влезает, нужно придумать новую разметку с запасом на будущее.

Новая разметка под GPT

Device name Partition Size GPT# FS Type
mmcblk0boot0 PT 1-2mb 1 raw
mmcblk0boot1 EBT 1-2mb 2 raw
mmcblk0p1 SOS RECOVERY 100mb 3 ext4
mmcblk0p2 BOOT LINUX 100mb 4 ext4
mmcblk0p3 ANDROID SYSTEM 512mb 5 ext4
mmcblk0p4 ANDROID CACHE 512mb 6 ext4
mmcblk0p5 ANDROID DATA 3gb 8 ext4
mmcblk0p6 LINUX ROOT 3.7gb 10 ext4

Нужно еще понять может GPT сделать последную партицию размером не на определенное кол-во секторов, а не до конца диска.

Новая разметка

  • Пока думаю оставим старое кол-во разделов для сохранения обратной совместимости.
  • Раздел /system он же APP, думаю надо расширить до 512Мб, это 536970912 байт.
  • Раздел /cache он же CAC, не понятно надо его делать больше или смысла нет.
[14:48] <saturn2000> По кэшу пишут смысла нет его увеличивать. Наоборот можно подрезать
  • MSC не трогаем, смысл его не ясен.
  • /userdata он же UDA, думаю можно расширить до 4гб, 4194304000 байт, т.к. теперь встречаются очень прожорливые игры.
  • все остальное место уходит под UDB.
  • Начиная с Андрода 4.2 UDB уже не используется, обратную совместимость можно сохранить только не использую это место.

Смысла в этом нет поэтому надо переходить на схему в 3 партиции.

    • /system 512mb
    • /cache прежний
    • /data все остальное место

Задачи

Встают несколько вопросов:

  • <range type="comment" id="370738318_1">что нужно писать в EM1 и EM2партиции</range id="370738318_1">, если мы меняем размер других и нужно ли писать вообще?
    • надо проверить
  • Набросать новый конфиг с разметкой
  • Потестить
  • Набросок конфига, разбивать коммандой:
nvflash --bl fastboot.bin --bct ac100-32gb.bct --setbct --configfile new-android.cfg --create --verifypart -1 --go
[device]
type=hsmmc
instance=3

[partition]
name=BCT
id=2
type=boot_config_table
allocation_policy=sequential
filesystem_type=basic
size=3145728
file_system_attribute=0
partition_attribute=0
allocation_attribute=8
percent_reserved=0

[partition]
name=PT
id=3
type=partition_table
allocation_policy=sequential
filesystem_type=basic
size=524288
file_system_attribute=0
partition_attribute=0
allocation_attribute=8
percent_reserved=0

[partition]
name=EBT
id=4
type=data
allocation_policy=sequential
filesystem_type=basic
size=2097152
file_system_attribute=0
partition_attribute=0
allocation_attribute=8
percent_reserved=0
filename=fastboot.bin

[partition]
name=SOS
id=5
type=data
allocation_policy=sequential
filesystem_type=basic
size=5242880
file_system_attribute=0
partition_attribute=0
allocation_attribute=8
percent_reserved=0

[partition]
name=LNX
id=6
type=data
allocation_policy=sequential
filesystem_type=basic
size=8388608
file_system_attribute=0
partition_attribute=0
allocation_attribute=8
percent_reserved=0

[partition]
name=MBR
id=7
type=data
allocation_policy=sequential
filesystem_type=basic
size=1048576
file_system_attribute=0
partition_attribute=0
allocation_attribute=8
percent_reserved=0

[partition]
name=APP
id=8
type=data
allocation_policy=sequential
filesystem_type=basic
size=537395200
file_system_attribute=0
partition_attribute=0
allocation_attribute=8
percent_reserved=0

[partition]
name=CAC
id=9
type=data
allocation_policy=sequential
filesystem_type=basic
size=419430400
file_system_attribute=0
partition_attribute=0
allocation_attribute=8
percent_reserved=0

[partition]
name=MSC
id=10
type=data
allocation_policy=sequential
filesystem_type=basic
size=2097152
file_system_attribute=0
partition_attribute=0
allocation_attribute=8
percent_reserved=0

[partition]
name=EM1
id=11
type=data
allocation_policy=sequential
filesystem_type=basic
size=524288
file_system_attribute=0
partition_attribute=0
allocation_attribute=8
percent_reserved=0

[partition]
name=UDA
id=12
type=data
allocation_policy=sequential
filesystem_type=basic
size=4194304000
file_system_attribute=0
partition_attribute=0
allocation_attribute=8
percent_reserved=0

[partition]
name=EM2
id=13
type=data
allocation_policy=sequential
filesystem_type=basic
size=524288
file_system_attribute=0
partition_attribute=0
allocation_attribute=8
percent_reserved=0

[partition]
name=UDB
id=14
type=data
allocation_policy=sequential
filesystem_type=basic
size=0xFFFFFFFFFFFFFFFF
file_system_attribute=0
partition_attribute=0
allocation_attribute=8
percent_reserved=0
    • В результате получается на 116ой следующая разметка:
PartitionId=2
Name=BCT
DeviceId=18
StartSector=0
NumSectors=1536
BytesPerSector=2048


PartitionId=3
Name=PT
DeviceId=18
StartSector=1536
NumSectors=256
BytesPerSector=2048


PartitionId=4
Name=EBT
DeviceId=18
StartSector=1792
NumSectors=1024
BytesPerSector=2048


PartitionId=5
Name=SOS
DeviceId=18
StartSector=2816
NumSectors=2560
BytesPerSector=2048


PartitionId=6
Name=LNX
DeviceId=18
StartSector=5376
NumSectors=4096
BytesPerSector=2048


PartitionId=7
Name=MBR
DeviceId=18
StartSector=9472
NumSectors=512
BytesPerSector=2048


PartitionId=8
Name=APP
DeviceId=18
StartSector=9984
NumSectors=262400
BytesPerSector=2048


PartitionId=9
Name=CAC
DeviceId=18
StartSector=272384
NumSectors=204800
BytesPerSector=2048


PartitionId=10
Name=MSC
DeviceId=18
StartSector=477184
NumSectors=1024
BytesPerSector=2048


PartitionId=11
Name=EM1
DeviceId=18
StartSector=478208
NumSectors=256
BytesPerSector=2048


PartitionId=12
Name=UDA
DeviceId=18
StartSector=478464
NumSectors=2048000
BytesPerSector=2048


PartitionId=13
Name=EM2
DeviceId=18
StartSector=2526464
NumSectors=256
BytesPerSector=2048


PartitionId=14
Name=UDB
DeviceId=18
StartSector=2526720
NumSectors=13103616
BytesPerSector=2048
    • Чтобы заработало надо создать скриптом новые mbr,em1 и em2 партиции и залить их.


Набросок алгоритма работы скрипта по смене размеров партиций

  • Слить с девайса нвфлешем partitiontable
  • Сделать бекап всех возможных партиций по запросу
  • Выбор партиция под линукс или под андроид?
  • Запусить нфлеш с нужным конфигом (конфиг включает сразу образы нужных партиций)
  • Прошить партиции которые надо вливать через rawdevicewrite (2,4)

Кто использует какие размеры

  • Google Nexus 7 aka asus grouper использует следующие размеры APP 650мб, UDA 6.2Гб