1 votes

W/ziparchive Zip : unable to allocate X bites at offset 0 : Il n'y a plus d'espace sur le périphérique lors du flashage de l'image d'usine sur l'angler (Nexus 6P)

J'essayais de faire flashage de l'image d'usine en pêcheur sur mon Nexus 6P. Il y a quelques No space left on device erreur :

./flash-all.sh # added set -x to script
+ fastboot flash bootloader bootloader-angler-angler-03.68.img
target reported max download size of 494927872 bytes
sending 'bootloader' (3544 KB)...
OKAY [  0.127s]
writing 'bootloader'...
OKAY [  0.208s]
finished. total time: 0.335s
+ fastboot reboot-bootloader
rebooting into bootloader...
OKAY [  0.022s]
finished. total time: 0.073s
+ sleep 5
+ fastboot flash radio radio-angler-angler-03.81.img
< waiting for any device >
target reported max download size of 494927872 bytes
sending 'radio' (48728 KB)...
OKAY [  1.283s]
writing 'radio'...
OKAY [  2.174s]
finished. total time: 3.457s
+ fastboot reboot-bootloader
rebooting into bootloader...
OKAY [  0.022s]
finished. total time: 0.072s
+ sleep 5
+ fastboot -w update image-angler-n2g48c.zip
extracting android-info.txt (0 MB)...
extracting boot.img (12 MB)...
target reported max download size of 494927872 bytes
archive does not contain 'boot.sig'
archive does not contain 'dtbo.img'
archive does not contain 'dt.img'
extracting recovery.img (17 MB)...
archive does not contain 'recovery.sig'
extracting system.img (2727 MB)...
W/ziparchive(66399): Zip: unable to allocate  2860210996 bytes at offset 0 : \
   No space left on device
failed to extract 'system.img': I/O error

(espace inséré par moi-même pour une meilleure lisibilité)

Je suppose que c'est le manque d'espace sur le téléphone.

shell@angler: $ df -h                                                  
Filesystem                Size      Used Available Use% Mounted on
tmpfs                     1.4G    484.0K      1.4G   0% /dev
tmpfs                     1.4G         0      1.4G   0% /mnt
/dev/block/dm-0           3.0G      1.8G      1.1G  62% /system
/dev/block/dm-1         196.6M    184.7M      8.0M  96% /vendor
/dev/block/platform/soc.0/f9824900.sdhci/by-name/cache
                         92.9M      1.8M     88.0M   2% /cache
/dev/block/platform/soc.0/f9824900.sdhci/by-name/persist
                          3.9M    740.0K      3.0M  20% /persist
/dev/block/platform/soc.0/f9824900.sdhci/by-name/modem
                         80.0M     47.5M     32.4M  59% /firmware
tmpfs                     1.4G         0      1.4G   0% /storage
/dev/block/dm-2          53.5G    132.9M     52.9G   0% /data
df: /mnt/runtime/default/emulated: Permission denied
/data/media              53.5G    132.9M     52.9G   0% /storage/emulated

Utilisation de fastboot version 1:8.1.0+r23-5 de Debian, Android est angler:8.1.0 .

Une idée de ce qui pourrait être le problème ?

En cherchant dans les sources, il échoue à static void* unzip_file(ZipArchiveHandle zip, const char* entry_name, int64_t* sz)

int error = ExtractToMemory(zip, &zip_entry, data, zip_entry.uncompressed_length);
if (error != 0) {
    fprintf(stderr, "failed to extract '%s': %s\n", entry_name, ErrorCodeString(error));
    free(data);
    return 0;
}

https://Android.googlesource.com/platform/system/core/+/Android-8.1.0_r73/fastboot/fastboot.cpp#505

ou dans static int unzip_to_file(ZipArchiveHandle zip, const char* entry_name)

int error = ExtractEntryToFile(zip, &zip_entry, fd);
if (error != 0) {
    fprintf(stderr, "failed to extract '%s': %s\n", entry_name, ErrorCodeString(error));
    return -1;
}

https://Android.googlesource.com/platform/system/core/+/Android-8.1.0_r73/fastboot/fastboot.cpp#628

UPDATE Le problème : on dirait que c'est vraiment le manque d'espace sur l'ordinateur portable. Auparavant, j'avais environ 8 Go, ce que je considérais comme suffisant. Après avoir dégagé 17GB et essayé de mettre à jour une image différente image-angler-nmf26f.zip j'ai eu une erreur différente (probablement liée /tmp être tmpfs ):

strace -o strace.log fastboot -w update image-angler-nmf26f.zip
extracting android-info.txt (0 MB)...
extracting boot.img (12 MB)...
target reported max download size of 494927872 bytes
archive does not contain 'boot.sig'
archive does not contain 'dtbo.img'
archive does not contain 'dt.img'
extracting recovery.img (17 MB)...
archive does not contain 'recovery.sig'
extracting system.img (2691 MB)...
archive does not contain 'system.sig'
archive does not contain 'vbmeta.img'
extracting vendor.img (194 MB)...
W/ziparchive(109113): Zip: unable to allocate  204079852 bytes at offset 0 : No space left on device
failed to extract 'vendor.img': I/O error
wiping userdata...
Couldn't parse erase-block-size '0x'.
Couldn't parse logical-block-size '0x'.
mke2fs 1.45.5 (07-Jan-2020)
/tmp/TemporaryFile-xaoMGH: Unimplemented ext2 library function while setting up superblock
/usr/lib/android-sdk/platform-tools/mke2fs failed with status 1
mke2fs failed: 1
error: Cannot generate image for userdata

2voto

Sam Points 121

Sous Linux, vous pouvez faire TMPDIR=<DIR WITH MORE SPACE THAN /tmp> ./flash-all.sh pour remplacer l'endroit où fastboot se dézippe pour.

0voto

pevik Points 206

Selon les autres est -w est en quelque sorte cassée et devrait être remplacée par fastboot erase <partition> par exemple :

fastboot oem unlock
fastboot erase boot
fastboot erase cache
fastboot erase recovery
fastboot erase system
fastboot erase userdata
fastboot flash bootloader bootloader-angler-angler-03.68.img
fastboot reboot-bootloader
sleep 5
fastboot flash radio radio-angler-angler-03.81.img

A la fin, j'ai suivi Suggestion de Firelord pour déballer image-angler-nmf26f.zip (au lieu de le flasher) et flasher toutes les partitions manuellement :

fastboot flash boot boot.img
fastboot flash recovery recovery.img
fastboot flash system system.img
fastboot flash vendor vendor.img

NOTE : les commandes en cours d'exécution fastboot erase <partition> n'est pas nécessaire car fastboot flash système d'effacement.

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