3 votes

Qu'est-ce que la partition "logo" sur un téléphone Lenovo ?

Ne supprimez pas cette question, s'il vous plaît, elle a déjà été supprimée d'un forum de programmation et je ne sais pas où la poser.

Qu'est-ce qu'une partition logo et quel est son format ?

L'en-tête de la partition de 8Mo :

00000000   88 16 88 58  C2 8A 0A 00  ...X....
00000008   4C 4F 47 4F  00 00 00 00  LOGO....

Je suppose que c'est une image d'écran de démarrage, non ? Quel est le format de cette image ?

2voto

Scott Points 3238

1. Qu'est-ce que la partition "logo" sur un téléphone Lenovo ?

La partition logo (d'après mon expérience avec les appareils Mediatek) contient :

  • Le tout premier logo de démarrage (pas l'animation de démarrage)
  • Séquences de chargement de la batterie (nombreuses images en png).
  • Deuxième logo de démarrage (fichier boot_logo).
  • Chiffres de charge de la batterie et signe de pourcentage (chaque chiffre ou signe a sa propre image).
  • (Pour les appareils prenant en charge la charge rapide) Séquences de charge rapide (plusieurs images en png)

2. Je suppose que c'est une image d'écran de démarrage, non ?

Il ne s'agit pas seulement du logo de la botte, mais de nombreuses images.

3. Quel est le format de cette image ?

Pas une seule image, toutes sont des fichiers PNG.

4. Détails supplémentaires

88 16 88 58 est la partition décalage .

C2 8A 0A 00 est la partition taille c'est ordre des octets little endian .

4C 4F 47 4F est la partition nom .

I can't confirm if this is Mediatek specific or not.

Editeur de logo Mediatek MT65xx/MT67xx

Si vous souhaitez modifier le tout premier logo de démarrage (pas l'animation de démarrage) de votre appareil basé sur les plateformes MT65xx/MT67xx. Essayez LogoBuilder .

LogoBuilder peut décompresser et reconditionner votre fichier logo.bin qui contient :

  • Logo de la botte
  • Séquences de charge de la batterie.
  • Deuxième logo de démarrage (fichier boot_logo).

LogoBuilder est simple à utiliser :

  • Décompressez votre fichier logo.bin.
  • Modifiez ce que vous voulez.
  • Remballez-la.

Le LogoBuilder peut créer un update.zip pour flasher votre nouveau fichier logo.bin avec une récupération personnalisée.

Editar:

0 votes

Joli ! Existe-t-il une spécification ou un code source de ce "logobuilder" ? Où se trouvent l'adresse du premier octet et les métadonnées "png" ? Parce que je ne vois pas d'en-tête png reconnaissable à l'intérieur...

0 votes

Vous ne les voyez pas parce que le fichier est emballé/chiffré, comment le décompresser, demandez au développeur.

0 votes

Mais "demander au développeur" ne répond pas à la question de savoir quel est le format de la partition :)

2voto

jcomeau_ictx Points 141

Les images dans la partition logo sont des données brutes en pixels 32 bits, éventuellement bgra ou rgba, compressées avec zlib mais avec pas d'en-tête de compression .

Passez l'en-tête de 512 octets, et voici ce que vous voyez (le vôtre sera différent, ceci provient d'un téléphone BLU Dash X2).

00000200: 2700 0000 f929 1300 a400 0000 012e 0000  '....)..........
00000210: 3b36 0d00 05bb 0d00 4e07 0e00 4a09 0e00  ;6......N...J...
00000220: d709 0e00 b20b 0e00 060e 0e00 8f0f 0e00  ................
00000230: ac11 0e00 0814 0e00 3c15 0e00 d517 0e00  ........<.......
00000240: 451a 0e00 2b1d 0e00 d82b 0e00 763b 0e00  E...+....+..v;..
00000250: f84a 0e00 a959 0e00 4d67 0e00 3874 0e00  .J...Y..Mg..8t..
00000260: 1382 0e00 4f91 0e00 f6a0 0e00 6bb0 0e00  ....O.......k...
00000270: f90b 0f00 0068 0f00 bcc3 0f00 9b1c 1000  .....h..........
00000280: d573 1000 9cca 1000 6223 1100 647e 1100  .s......b#..d~..
00000290: c8da 1100 f536 1200 ae89 1200 658b 1200  .....6......e...
000002a0: 9cfc 1200 78da ecdd 3daf e458 42c7 e1fe  ....x...=..XB...

Les nombres sont des entiers de 32 bits, et le premier à l'offset 0x200 est 0x27, ou 39, images dans la partition logo. 0x1329f9 est la longueur totale des données ; le reste de la partition sera probablement rempli de zéros. Les 39 entiers suivants sont les décalages de chaque image, par exemple la première est au décalage 0xa4, plus 0x200 pour tenir compte de l'en-tête, et vous avez 0x2a4. Vous pouvez donc voir les 12 premiers octets de données dans la sortie xxd ci-dessus, 0x78 0xda 0xec 0xdd...

La taille de l'image sera le décalage suivant moins "ce" décalage : dans ce cas, 0x2d01 - 0xa4 = 0x2d5d, ou 11613 décimal.

Vous avez maintenant ce dont vous avez besoin pour extraire la première image : dd if=/tmp/logo.bin of=/tmp/img1.z bs=1 skip=$((0x2a4)) count=11613

Pour le décompresser, puisqu'il n'a pas d'en-tête, vous devez en ajouter un : printf "\x1f\x8b\x08\x00\x00\x00\x00\x00" | cat - /tmp/img1.z | gzip -dc >/tmp/img1.dat .

Vous pouvez ensuite l'afficher en utilisant ImageMagick : display -size 360x$(($(stat -c %s /tmp/img1.dat)/$((360*4)))) rgba:/tmp/img1.dat

Les informations proviennent de rigacci.org . Niccolo inclut un script Python qui extrait toutes les images pour vous.

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