web-dev-qa-db-fra.com

Comment monter le fichier Android sous Linux?

Récemment, je me suis intéressé à la rom Android, je veux les modifier et les reconstruire.
Alors, j'ai fait quelques tests sur mon XOOM, il est très facile de faire clignoter quelque chose dans la machine.
J'ai quelques ROM de Motorola ( http://developer.Motorola.com/products/software/ ), Ce sont des fichiers img, et je veux savoir ce qu’il contient , J'espère les déballer.

J'ai essayé le unyaffs, il a dit broken img file.
J'essaie de les monter, cela fonctionne très bien sur le system.img, et je peux obtenir le fichier à l'intérieur.

Quand je veux monter userdata.img avec mount -o loop userdata.img /mnt/userdata (identique à system.img), il me dit mount: you must specify the filesystem type alors j’essaie le mount -t ext2 -o loop userdata.img /mnt/userdata, c’est mount: wrong fs type, bad option, bad superblock on...

Alors, comment obtenir le fichier depuis l'intérieur de userdata.img?

25
FrankDeng

Voir la réponse à l’adresse: http://omappedia.org/wiki/Android_eMMC_Booting#Modifying_.IMG_Files

Vous devez d’abord "décompresser" userdata.img avec simg2img, puis vous pouvez le monter via le périphérique de boucle.

27
Lajos Molnar

J'ai trouvé une solution simple: http://andwise.net/?p=403

Citation

(avec de légers ajustements pour une meilleure lisibilité)


Ceci est destiné à tous ceux qui souhaitent décompresser et modifier l'original system.img que vous pouvez flasher en utilisant la récupération . system.img (que vous obtenez par exemple à partir des images d'usine de Google) représente un système de fichiers fragmenté monté en boucle ext4 fragmentée . Il est monté dans / system de votre appareil. Notez que ce tutoriel concerne le système de fichiers ext4. Vous pouvez avoir une image système qui est yaffs2, par exemple.

La façon dont il est monté sur Galaxy Nexus:

/dev/block/platform/omap/omap_hsmmc.0/by-name/system /system ext4 ro,relatime,barrier=1,data=ordered 0 0

Conditions préalables:

  • Machine Linux ou machine virtuelle
  • fichiers binaires simg2img et make_ext4fs, qui peuvent être téléchargés ici http://andwise.net/?attachment_id=406 (windows), ou dans le paquet linux Android-tools-fsutils

Procédure:

Placez votre system.img et les 2 fichiers binaires dans un répertoire et assurez-vous qu'ils disposent de l'autorisation exec.

Partie 1 - Monter le système de fichiers

mkdir sys
./simg2img system.img sys.raw
Sudo mount -t ext4 -o loop sys.raw sys/

Ensuite, votre partition système est montée dans «sys /» et vous pouvez modifier ce que vous voulez dans «sys /». Par exemple, apks de-odex et pots de cadre.

Partie 2 - créer une nouvelle image système flashable

Sudo ./make_ext4fs -s -l 512M -a system new.img sys/
Sudo umount sys
rm -fr sys

Maintenant, vous pouvez simplement taper:

fastboot flash system new.img

20
Fatih

Dans le système de fichiers Android, "system.img" et "userdata.img" sont des exécutables VMS Alpha. "system.img" et "userdata.img" ont le contenu de/system et du répertoire/data sur le système de fichiers racine. Ils sont mappés sur des périphériques NAND avec le système de fichiers yaffs2. Maintenant, le fichier image yaffs2 ne peut pas être monté sur un PC Linux. Si vous le pouvez, vous avez peut-être des roms non inclus dans le système de fichiers yaffs2. Vous pouvez vérifier ces fichiers rom en exécutant la commande:

file <system.img/userdata.img>

S'il affiche "VMS Alpha exécutable", vous pouvez utiliser "unyaffs" pour l'extraire.

2
binhgreat

Une autre option serait d'utiliser l'explorateur de fichiers dans DDMS (Eclipse SDK), vous pouvez voir le système de fichiers complet et télécharger/télécharger des fichiers à l'emplacement souhaité. De cette façon, vous n'avez pas à monter et gérer des images. Rappelez-vous simplement de définir votre appareil comme débogable USB (à partir des outils de développement).

0
Stefan Malacu