0 votes

Question de base sur le flashage des sauvegardes nandroid

Je veux savoir que lorsque nous flashons des images de partition spécifiques (disons system.img, data.img, cache.img, etc.), alors comment le logiciel sait-il où exactement mettre ces octets de partition ? Par exemple, si je flashe system.img, quel secteur CHS/LBA va-t-il considérer comme le début de ce bloc ? Si c'est basé sur les tables MBR/EBR1, que se passera-t-il si je flashe aussi le MBR/EBR1 ?

La raison de ma question est que je veux modifier légèrement le partitionnement dans EBR1, de façon à ce que plus d'espace soit alloué à l'utilisateur. /data au lieu de /sdcard . J'ai un vieux smartphone MediaTek (MTK-6577) en bon état appelé Karbonn-A30 qui est excellent en termes de qualité de construction et de presque tous les autres aspects, mais il n'a que 500 Mo de stockage interne ( /data dans le jargon Linux), ce qui n'est pas suffisant pour les applications. Actuellement, les partitions MBR et EBR1 sont ainsi :

$disktype MBR
--- MBR
Regular file, size 512 bytes
DOS/MBR partition map
Partition 1: 2.000 TiB (2199023255040 bytes, 4294967295 sectors from 1024)
  Type 0x05 (Extended)
Partition 2: 10 MiB (10485760 bytes, 20480 sectors from 18432)
  Type 0x83 (Linux)
Partition 3: 10 MiB (10485760 bytes, 20480 sectors from 38912)
  Type 0x83 (Linux)
Partition 4: 650 MiB (681574400 bytes, 1331200 sectors from 113152)
  Type 0x83 (Linux)

$disktype EBR1
--- EBR1
Regular file, size 512 bytes
DOS/MBR partition map
Partition 1: 376 MiB (394264576 bytes, 770048 sectors from 1443328)
  Type 0x83 (Linux)
Partition 2: 1.293 GiB (1388314624 bytes, 2711552 sectors from 2213376)
  Type 0x83 (Linux)
Partition 3: 1.998 TiB (2196501691904 bytes, 4290042367 sectors from 4924928)
  Type 0x83 (Linux)

Pourquoi cette dernière partition qui correspond à /sdcard est laissé si grand (1,998 TiB) dépasse mon entendement ! Étant donné qu'il y a un bon 2,5 Go d'espace disponible sur mon disque dur actuel. /sdcard Je me disais que si je pouvais modifier l'EBS1 et changer l'adressage LBA de façon à ce que la troisième partition démarre à partir de 2097152 secteurs supplémentaires (ce qui revient à 1024MB ou 1GB, ce qui est suffisant pour moi), est-ce que cela augmentera automatiquement ma capacité de stockage ? /data de 1 Go et diminuez la taille de la partition /sdcard par 1GB en conséquence ? Sur XDA et d'autres forums, j'ai lu que des gens ont réussi à faire ce mod et à obtenir le changement de taille des partitions, mais je veux d'abord comprendre comment cela se produit.

1voto

lewsid Points 749

Comme j'ai un téléphone MTK-6577 et que j'ai dû me plonger dans la réparation d'une table de partition cassée récemment, j'ai pensé que je pourrais tenter de répondre à cette question.

Je veux savoir que lorsque nous flashons des images de partition spécifiques (disons (disons system.img, data.img, cache.img, etc.), comment le logiciel peut sait où exactement mettre ces octets de partition ?

Si vous flashez sur des points de montage connus /system, /data, /cache vous n'avez pas besoin de connaître la structure sous-jacente, il suffit qu'il y ait suffisamment d'espace et qu'il soit au bon format (par exemple ext4). Les points de montage sont spécifiés dans vold.fstab .

Cependant, si vous utilisez un outil de flashage de bas niveau tel que SP Flash vous devrez également modifier l'application associée fichier de dispersion à la nouvelle disposition des partitions, car il accédera directement aux adresses mémoire des partitions.

Un exemple de points de montage de système de fichiers pour le MT-6577 (copié à partir de /tmp/recovery.log ) :

CWM-based Recovery v6.0.2.8
recovery filesystem table
=========================
  0 /tmp ramdisk (null) (null) 0
  1 /boot emmc /dev/bootimg (null) 0
  2 /cache ext4 /dev/block/mmcblk0p4 (null) 0
  3 /data ext4 /dev/block/mmcblk0p5 (null) 0
  4 /misc emmc /dev/misc (null) 0
  5 /recovery emmc /dev/recovery (null) 0
  6 /emmc vfat /dev/block/mmcblk0p6 (null) 0
  7 /system ext4 /dev/block/mmcblk0p3 (null) 0
  8 /sdcard vfat /dev/block/mmcblk1p1 /dev/block/mmcblk1 0
  9 /sd-ext auto /dev/block/mmcblk1p2 (null) 0

Pourquoi cette dernière partition qui correspond à /sdcard est laissée si grande (1,998 TiB) est au-delà de ma compréhension.

C'est le résultat de l'utilisation de GPT vs plus vieux MBR les tables de partition. Il s'agit d'une partition étendue spéciale qui correspond à la plage d'adresses maximale de 32 bits (2 To). Elle permet de charger le MBR sur n'importe quel périphérique, quelle que soit la taille de sa mémoire interne. Ensuite, vous avez des EBR1 (et EBR2 ) adaptés à chaque modèle.

Je pensais que si je pouvais modifier l'EBS1 et changer l'adressage LBA pour que la troisième partition commence à partir de 2097152 secteurs supplémentaires (ce qui revient à 1024MB ou 1GB ce qui est suffisant pour moi), est-ce que cela augmentera automatiquement ma partition /data de 1GB et diminuera la /sdcard de 1GB en conséquence ?

Je ne suis pas tout à fait sûr des détails.

A la place, j'ai utilisé l'échange des tailles de partition de /data y /emmc avec un EBR1 fourni sur xda-developers.com . Ensuite, dans Android, utilisez Link2SD qui utilise une partition ext4 de 2 Go sur la carte SD externe et déplace les applications volumineuses.

J'ai juste pensé ajouter que si les choses tournent mal de façon spectaculaire, comme ce fut le cas pour moi à l'origine, vous pouvez récupérer en utilisant des sauvegardes de l'original. MBR y ERB1 des fichiers pour adb shell en se connectant à votre téléphone en mode récupération.

Restaurer les détails de la partition :

dd if=/tmp/MBR of=/dev/block/mmcblk0
dd if=/tmp/EBR1 of=/dev/block/mmcblk0p1

Oh et pour créer manuellement une sauvegarde en premier lieu :

dd if=/dev/block/mmcblk0 of=/tmp/MBR bs=512 count=1
dd if=/dev/block/mmcblk0p1 of=/tmp/ERB1 bs=512 count=1

Montez une carte SD externe à partir de CWM et vous pouvez copier le fichier vers/depuis. /sdcard .

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X