Aller au contenu

[TAB 852] Récupérer des inodes sur une partition system saturée


mike404

Recommended Posts

Après avoir suivi les tutoriels permettant d'installer le Google Play Store sur ma tablette Logicom TAB 852,
je me suis retrouvé confronté au même problène que " zrt22 " avec sa tablette Logicomm E1031.
La partition /system de ma tablette Logicom TAB 852 est pleine...
C'est grâce au topic "[Résolu] [E1031] Récupérer des inodes sur une partition system saturée" et au travail de " Lannig " que j'ai pu mieux comprendre le fond du problème.

Pour être plus précis, il s'avère que Logicom formate la partition /system des ses tablette à la taille exacte de ses éléments contenus.
En fait la partition d'origine est de 512Mo, mais Logicom la reformate pour qu'elle ne fasse que 333Mo.
C'est cela qui empèche que l'on puisse installer ce que l'on veut à l'intérieur des tablettes Logicom.

    c:\ADB>adb shell df /system
    File system    Size       Used       Free     Blksize
    /system        333.3Mo    331.2Mo    2.0Mo    1024

    c:\ADB>adb shell busybox df -hi /system
    File system            inodes   Used    Available  Use%   Mounted on
    /dev/block/mtdblock8    1,6k    1,4k    238        86%    /system
 

   
Techniquement, la partition /system intègre 1,6k inodes et elle est déjà remplie à 1,4k.
Cela veut dire que même si il reste de la place dans la partition /system, il est impossible de rajouter quoi que ce soit de plus quand on arrive à 1,6k inodes.
La solution simple, c'est de ne pas installer busybox et d'effacer un maximum de fichiers APK pour libérer de la place.

Mais c'est franchement dommage pour ces raisons:

- Impossible d'installer busybox car les liens vont saturer la partition inodes au delà de 1,6k.
- L'appareil photo n'est plus utilisable à cause de l'effacement de Gallery2.apk.
- On a potentiellement la possibilité d'installer jusqu'à 512Mo et 3k inodes dans la partition /system.
- Si on trouve une procédure commune à toutes les tablettes Logicom, cela peut être très utile à tous.

La solution semble alors toute trouvée... On va reformater la partition /system en 512Mo !
En principe cela ne semble pas trop compliqué:

    * On télécharge le package 'ADB.ZIP' à l'adresse: http://d-h.st/bKP
    On le décompresse et on le déplace dans le c:\ du disque dur de Windows.
    De manière à obtenir le fichier "adb.exe" à l'adresse: C:\ADB\ADB.EXE
    On active le mode "Déboguage USB" dans les paramêtres de la tablette.
    On la connecte ensuite avec le câble USB d'origine.
    On installe les pilotes de la tablette dans Windows (dans C:\adb\ADB Drivers\)
    En cas de besoin voir le topic "[Tuto] Installation de Google Play sur Logicom TAB 1052"


    * On commence par faire un dump complet de la tablette Logicom TAB 852.
    Il faut installer une carte microSD de 2Go minumum dans la tablette.
    Pensez à la formater en FAT32 avant de l'insérer dans la tablette.
    Il faut ouvrir la fenêtre "Invite de commandes" en mode administrateur.
    Ecrivons ces commandes dans la fenêtre de commandes:
 

    cd c:\adb
    adb devices
    adb remount
    adb shell mkdir /mnt/external_sd/dump
    adb shell busybox dd if=/dev/block/mtdblock0 of=/mnt/external_sd/dump/misc.img
    adb shell busybox dd if=/dev/block/mtdblock1 of=/mnt/external_sd/dump/kernel.img
    adb shell busybox dd if=/dev/block/mtdblock2 of=/mnt/external_sd/dump/boot.img
    adb shell busybox dd if=/dev/block/mtdblock3 of=/mnt/external_sd/dump/recovery.img
    adb shell busybox dd if=/dev/block/mtdblock4 of=/mnt/external_sd/dump/backup.img
    adb shell busybox dd if=/dev/block/mtdblock8 of=/mnt/external_sd/dump/system.img
    adb shell "cd /; busybox tar cf - system | busybox gzip >/mnt/external_sd/dump/system.tgz"
    md c:\adb\dump
    adb pull /mnt/external_sd/dump c:\adb\dump

    * Il faut maintenant reformater la partition /system en 512Mo.
    On télécharge le package 'LINUXLIVE USB CREATOR 2.8.27'.
    Il faut extraire toute l'archive et rechercher le fichier "mke2fs.exe".
    On déplace le fichier "mke2fs.exe" dans le c:\ du disque dur de Windows.
    De manière à obtenir le fichier "mke2fs.exe" à l'adresse: C:\ADB\MKE2FS.EXE
    Il faut ouvrir la fenêtre "Invite de commandes" en mode administrateur.
    Ecrivons ces commandes dans la fenêtre de commandes:
 

    adb shell mke2fs -T ext4 -I 256 -i 1024 /dev/block/mtdblock8

    *** AIE *** Cela ne fonctionne pas *** AIE ***

    En théorie, je pensais pouvoir reformater la partition /system comme une partition Windows.
    puis utiliser mon dump obtenu eu début en copiant le fichier "system.tgz" dans C:\ADB\SYSTEM.TGZ
    et en l'injectant à la manière d'un ghost avec la commande:
 

   adb shell su -c "busybox tar -C /system/ -zxvf /external_sd/system.tgz"

    Mais il semble qu'il me manque encore quelques éléments pour y arriver.
    Je n'ai pas le niveau d'expertise suffisant pour savoir comment le faire.

 

J'aimerais bien trouver le moyen d'appliquer un protocole à toutes les tablettes Logicom qui sont configurées de manière similaire.

Lien vers le commentaire
Partager sur d’autres sites

Réponse rapide, je développerai (et peut-être Zrt22 aussi) plus par la suite :

- le partitionnement d'une tablette est gérée par une table qui est inaccessible depuis une commande s'exécutant sous Android. Autrement dit pas de "fdisk" possible pour retailler la partition. Seuls les outils de flashage constructeur (RKBatchTool, RKAndroidTool pour une tablette Rockchip comme -je suppose- celle-ci) peuvent modifier la table de partitions

- formater /system ne fera rien pour sa taille. Il ne peut pas le faire plus grand que sa partition ! à la rigueur cela aurait un intérêt pour augmenter le nombre d'inodes.

- on ne peut pas formater /system depuis Android, pour la même raison qu'on ne peut pas faire un FORMAT C: sous Windows.

Lien vers le commentaire
Partager sur d’autres sites

En fait je maîtrise très bien le système Windows, mais Linux m'est bien plus étrangé.

 

En lisant les informations du site www.logicom-interactive.com/#support

Ils expliquent qu'il y a un recovery en appuyant sur "Retour" et le branchement USB et qui permet d'utiliser RKAndroidTool pour reinitialiser la tablette quoi qu'il arrive.

Partant de cette option, peut-on faire une modification simple du dump Recovery.img et l'injecter avec RKAndroidToo.

Puis redémarrer la tablette en mode recovery avec: adb rebbot recovery

Pour permettre d'utiliser la commande: adb shell mke2fs -T ext4 -I 256 -i 1024 /dev/block/mtdblock8

 

Voici les spécifications de la tablette Logicom TAB 852:

 

Ecran :    8’’ multipoint capacitif, multi-touch 5 points, 16:9, 800x480
Processeur :   Dual-core Cortex A9 - GPU Mali 400, 1,6Ghz
Mémoire :   1Go (RAM), 4Go* (ROM)
OS :   Android 4.1
Communication :   WiFi 802.11 b/g/n
Equipement :   haut parleur, micro, caméra avant et arrière
Technologie :    Accéléromètre (G-Sensor 360°),
Connectique :   1x Jack 3,5mm, 1x micro HDMI, 1x mini, USB 2.0, 1x microSD (max 32Go)
Formats vidéo :    AVI, MPG, MKV, MP4, MOV, VOB, TS, 3GP,WEBM
Formats audio :   MP1, MP2, MP3, WMA, WAV, OGG, APE, FLAC, AAC, M4A, 3GPP
Formats photo :    JPG, JPEG, BMP, GIF, PNG
Batterie :   3,7V 3500 mAh, 6h en vidéo, 350h en veille
Accessoires fournis :  Notice, câble USB, chargeur secteur
Dimensions :   203 x 165 x 115 mm
Poids :   450 gr
Lien vers le commentaire
Partager sur d’autres sites

@Lannig : Si sa tablette est comme la mienne, et cela semble être le cas : /system n'exploite pas toute la taille de la partition où il se trouve. Je suis passé de 2xx Mo à 500 Mo en plus du gain en inodes après reformatage. Pas grande différence au final à part ne pas devoir effacer quelques applications systèmes pour installer Google Play et finaliser le root, mais bon.

 

@mike404 : La procédure que tu indiques est bien différente de celle qu'on a fait sur l'autre sujet (et ne marchera pas pour la raison que Lannig a indiquée). À quoi sert ce mke2fs.exe en passant ? :)

 

En somme, ce qu'on a fait sur la E1031 :

  • Un dump, évidemment, après avoir vérifié avec adb shell cat /proc/mtd qui était quoi au niveau des partitions (as-tu vérifié ?).
  • Faute d'avoir un CWM Recovery compatible, en "cuisiner" un à partir d'une base et du Recovery stock.
  • Installer ce CWM Recovery et le tester. (et faire un backup nandroid tant qu'on y est)
  • Depuis ce dernier, formater /system et y redescendre les fichiers concernés du dump ou backup nandroid.

Donc : il te faut un CWM Recovery. Tu sembles être sur RK3066 déjà, ça diffère de l'autre.

 

Autre idée : essayer de créer un system.img bien formaté à partir du /system live ou du system.tgz. C'est ce que Titi66200E a essayé là : https://forum.frandroid.com/topic/164652-r%C3%A9solu-e1031-r%C3%A9cup%C3%A9rer-des-inodes-sur-une-partition-system-satur%C3%A9e/page-3?p=2701295#entry2701295 avec make_ext4fs mais même si c'était flashable et que la tablette fonctionnait, il en avait perdu le wifi bizarrement. Je ne sais pas si on peut faire une chose de ce genre d'une autre façon (avec mke2fs ? depuis Linux ?) mais ça éviterait de passer par un CWM Recovery du coup.

 

Enfin, question globale : Es-tu sûr de vouloir faire ça ? C'est plus "parce qu'on peut" que pour un réel résultat je trouve. Les problèmes que tu as cités peuvent être contournés autrement sans grand impact final.

Lien vers le commentaire
Partager sur d’autres sites

OK pour la partition /system formatée à moins que la taille de sa partition. Ca m'avait échappé à l'époque.

Les gens de Logicom font vraiment n'importe quoi...

 

C'est beaucoup plus compliqué de faire un CWM Recovery sous RK30xx que sur Allwinner. Je n'y suis pas arrivé pour ma MPMAN MPDC88. A ma connaissance personne ici ne l'a encore fait, donc à moins de le trouver tout prêt... c'est mal barré.

 

Théoriquement on pourrait :

- faire un dump de la partition system

- en faire deux copies

- en monter un en loopback sur un système Linux

- refaire le filesystem ext4 sur le 2eme

- le monter

- faire la copie : cd /source; tar cf - . | (cd /cible && tar xpf -)

- les démonter

- reflasher le 2eme avec RkAndroidTool

 

Mais comme tu le dis, Zrt22, c'est beaucoup de complexité et des risques majeurs pour des problèmes contournables autrement.

Lien vers le commentaire
Partager sur d’autres sites

Et faire un CWM Recovery pour RK30xx est très différent d'en faire un pour RK29xx ? Sinon il y en a pour un paquet de tablettes et un générique pour jouer les cuisiniers là : http://androtab.info/clockworkmod/rockchip/rk3066/

J'étais parti du générique pour RK2928 de ce site, mais aucune idée si j'ai eu la chance de tomber sur un cas qui ne pose pas de problème particulier ou autre.

Lien vers le commentaire
Partager sur d’autres sites

Dans l'état actuel de mes connaissances, oui, c'est beaucoup plus difficile.

Je suis bien sûr parti de cette page pour essayer de construire un CWM Recovery pour ma MPDC88 (cf. le sujet dans la section MPMAN à partir du post #23 et un paquet de posts...) et ça n'a pas marché, y compris en y remettant le kernel d'origine de la tablette.

Deux difficultés majeures :

1) le mode graphique de l'écran : HxV + profondeur + mappage des plans (555/565 etc.). Cela semble varier fortement d'un modèle à l'autre il semble-t-il qu'il faut que le binaire ./sbin/recovery soit adapté précisément. Ces tablettes n'ont pas une partition bootloader avec un script.bin qui définit tout cela clairement. A vrai dire je ne comprends toujours pas à ce jour où c'est défini sur RK3066

2) l'écriture dans la flash. Il semble que suivant le driver NAND utilisé, le recovery doive utilise telle ou telle méthode pour écrire et/ou effacer des blocks de la flash. Ce n'est pas aussi transparent que sur Allwinner. Cf. ce sujet, très enrichissant mais un peu décourageant.

Lien vers le commentaire
Partager sur d’autres sites

Merci pour les liens et infos, je n'avais pas deviné que ça causait CWM Recovery dans le topic des firmwares. Il y en a eu des soucis et tentatives de build soldées par des [non fonctionnel], je vois. Le workaround dans le Recovery original à reproduire sur CWM / TWRP n'est pas mal non plus sur le deuxième lien... J'aurais presque envie de me prendre un RK3066 pour faire mumuse avec, moi aussi ! Presque.

Pour revenir au sujet, l'approche "créer un system.img bien formaté à flasher" me semble bien plus faisable du coup, compte tenu de l'objectif présent. (c'est quand même pratique un CWM Recovery)

Lien vers le commentaire
Partager sur d’autres sites

Bonsoir,

Je réalise que le problème est bien plus compliqué qu'il n'y parraissait au premier abord.

Je condidérais les partitions du stockage de la tablette comme un équivalence aux partitions sur le disque dur d'un ordinateur.

C'est pourquoi il me semblait assez simple d'utiliser un logiciel comme RKAndroidTool en mode Recovery avec les pilotes RockUSB pour remettre la partition /system après avoir fait un reformatage en 512Mo de la partition.

 

Les tablettes Logicom ont un recovery qui n'affiche rien, l'écran ne s'allume même pas, mais il semble accépter RKAndroidTool pour restaurer le /system

 

Je réalise qu'en fait le seul moyen d'y arriver serait de modifier la structure du dump system.img que j'ai préalablement faite pour ensuite remplacer la partion /system avec un logiciel comme RKAndroidTool, après s'être assuré que la structure d'origine de la partition est bien de 512Mo.

 

En principe, si la partition /system d'origine utilise 333Mo, elle est forcément crée sur la base d'une partition de 512Mo.

 

Je pense que la question qui subsiste est:

Pensez-vous que modifier la structure d'un dump system.img soit facilement réalisable et que l'on puisse trouver un moyen de l'appliquer a la majeur partie des produits Logicom qui ont ce problème ?

Lien vers le commentaire
Partager sur d’autres sites

Bonsoir,

 

Tu confonds le mode Recovery et le mode flashage qu'utilise RKAndroidTool et autres. Pour flasher un system.img, c'est le second que tu utiliseras et il ne dépend pas de l'état de la tablette ni d'à quoi tu as accès.

Ne généralise pas non plus les tablettes Logicom, elles varient énormément en hardware, au mieux quelques unes vont par paires. Si tu as un Recovery qui n'affiche pas de menu, il y a peut-être une combinaison pour le faire apparaître, c'est fréquent. cf. FAQ tablettes low-cost, question 5.

 

Lannig t'a donné une démarche au message #6 pour essayer de créer un system.img bien formaté.

 

Quant à créer une méthode générique : je l'ai dit au dessus, le hardware varie beaucoup d'une tablette à une autre... Ajoute à cela que ça ne concerne que 4 ou 5 tablettes voire builds, que c'est un risque énorme à prendre, et que cela n'apporte basiquement rien pour la plupart du monde : c'est probablement se donner beaucoup de mal pour rien. (et encore faudrait-il avoir les autres tablettes pour tester)

Lien vers le commentaire
Partager sur d’autres sites

Pour être plus précis, voici ce que je ferais. Mais un système Linux est nécessaire (Ubuntu 12.04 recommandé) :

- utiliser l'outil rkflashtool sous Linux pour dumper la partition /system et générer le fichier parameter : voir cet excellent post chez nos confrères d'Arctablet : http://www.arctablet.com/blog/forum/firmware-development/dumping-firmware-on-arnova-g2-arnova-g3-and-other-rockchip-based-tablets/

- utiliser la méthode du post #6 ci-dessus pour reconstruire le filesystem. Plus précisément il est impératif d'utiliser la commande make_ext4fs compilée pour Android (comme je l'ai appris ce dimanche à mes dépends dans mes tentatives de regénérer une image Livesuit pour tablette A10/A13 ... mais je m'égare). Je peux fournir les binairies 32 et 64b pour Ubuntu 12.04 (et sans doute d'autres distribution aussi, mais sans garantie)

- reflasher l'image modifiée de la partition /system avec RkAndroidTool en utilisant le fichier parameter généré ci-dessus

Lien vers le commentaire
Partager sur d’autres sites

Ok...

Comme le dit zrt22, cela représente une grande dépense d'énergie pour un résultat assez relatif.

Le seul truc dommage c'est que l'installation de busybox sera incomplete, mais il semble qu'il n'y a pas beaucoup d'app qui l'utilise.

Donc on peut s'en passer...

 

Merci pour vos conseils zrt22 et Lannig.

 

A bientôt.

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...