0 votes

Pourquoi ma partition /system serait-elle réinitialisée après avoir été redimensionnée ?

Le contexte :


Appareil : Yu Yureka | CM 12.1(5.1)

https://www.gsmarena.com/yu_yureka-6987.php


Cela fait un moment que Cyanogen est mort et j'avais hâte de migrer vers une ROM plus récente. Il s'avère que Resurrection Remix a une ROM personnalisée pour Tomato (mon nom de construction) avec le support de Nougat : https://sourceforge.net/projects/resurrectionremix/files/tomato/ la courtoisie étant de M. Abhishek, le mainteneur de ROM pour Yureka.

Quoi qu'il en soit, je suis allé de l'avant, changé ma récupération de Cyanogen à TeamWin et flashé la nouvelle ROM, la seule partie restante étant le flashage de GApps sauf que le flashage de GApps m'a donné l'infâme erreur 70 : https://tech.chandrahasa.com/2017/03/09/error-70-gapps-fix/

Dans mon cas, je voulais repartitionner /system pour résoudre le problème et j'ai donc utilisé un fichier outil ( construit spécifiquement pour mon appareil ) pour le faire. Cela a fonctionné et a permis de formater /system, /dalvik, /cache, /data .

Problème :

Lorsque j'ai vérifié la taille de la partition, elle affichait 2,5 Go, comme promis à ce stade. Je suis allé de l'avant et flashé la nouvelle ROM et d'une certaine manière, la partition a fini par être de 1,15 Go comme il était là à l'origine. Je soupçonne le script d'installation de la ROM de réinitialiser la taille de la partition comme un contrôle de sanité par défaut après tout - cette nouvelle ROM est un fork de la ROM CM 12.1 qui est venu à l'origine avec le téléphone. Ou, il pourrait y avoir une sorte de limite sur la taille de la partition /system.(pas sûr vraiment...)

Question : Comment puis-je conserver la taille de cette nouvelle répartition et empêcher la ROM de la réinitialiser à 1.15GB (si c'est le cas) ?


Pour votre référence,

Voici le script de mise à jour de la ROM :

assert(getprop("ro.product.device") == "YUREKA" || getprop("ro.build.product") == "YUREKA" || abort("E3004: This package is for device: YUREKA; this device is " + getprop("ro.product.device") + "."););
assert(cm.verify_trustzone("TZ.BF.3.0.R2-00034") == "1");
ui_print("Target: YU/YUREKA/YUREKA:5.1.1/LMY49J/YOG4PAS8A4:user/release-keys");
ifelse(is_mounted("/system"), unmount("/system"));
package_extract_dir("install", "/tmp/install");
set_metadata_recursive("/tmp/install", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0644);
set_metadata_recursive("/tmp/install/bin", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0755);
mount("ext4", "EMMC", "/dev/block/bootdevice/by-name/system", "/system", "");
run_program("/tmp/install/bin/backuptool.sh", "backup");
unmount("/system");
ui_print(" ");
ui_print(" ");
ui_print(" ");
ui_print(" RRRRRRRRRRRRRRRRR     RRRRRRRRRRRRRRRRR   ");
ui_print(" R::::::::::::::::R    R::::::::::::::::R  ");
ui_print(" R::::::RRRRRR:::::R   R::::::RRRRRR:::::R ");
ui_print(" RR:::::R     R:::::R  RR:::::R     R:::::R");
ui_print("   R::::R     R:::::R    R::::R     R:::::R");
ui_print("   R::::R     R:::::R    R::::R     R:::::R");
ui_print("   R::::RRRRRR:::::R     R::::RRRRRR:::::R ");
ui_print("   R:::::::::::::RR      R:::::::::::::RR  ");
ui_print("   R::::RRRRRR:::::R     R::::RRRRRR:::::R ");
ui_print("   R::::R     R:::::R    R::::R     R:::::R");
ui_print("   R::::R     R:::::R    R::::R     R:::::R");
ui_print("   R::::R     R:::::R    R::::R     R:::::R");
ui_print(" RR:::::R     R:::::R  RR:::::R     R:::::R");
ui_print(" R::::::R     R:::::R  R::::::R     R:::::R");
ui_print(" R::::::R     R:::::R  R::::::R     R:::::R");
ui_print(" RRRRRRRR     RRRRRRR  RRRRRRRR     RRRRRRR");
ui_print(" ");
ui_print(" ");
ui_print(" **************** Software *****************");
ui_print(" OS ver: RR-N-v5.8.3-20170621-tomato-OFFICIAL-VoLTE");
ui_print("");
ui_print(" Android ver: 7.1.2");
ui_print("");
ui_print(" Security patch: 2017-06-05");
ui_print("");
ui_print(" SDK ver: 25");
ui_print("");
ui_print(" Root status: Enabled");
ui_print("");
ui_print(" Build ID: NJH47B");
ui_print("");
ui_print(" Build date: Wed Jun 21 18:23:54 IST 2017");
ui_print("");
ui_print(" Build type: OFFICIAL-VoLTE");
ui_print("");
ui_print(" Build host: DeadlyMachine");
ui_print("");
ui_print(" Maintainer: Men_in_black007");
ui_print(" **************** Hardware *****************");
ui_print(" Device codename: tomato");
ui_print("");
ui_print(" Manufacturer: YU");
ui_print("");
ui_print(" *******************************************");
if is_mounted("/data") then
package_extract_file("META-INF/org/lineageos/releasekey", "/tmp/releasekey");
run_program("/tmp/install/bin/otasigcheck.sh") != "31744" || abort("Can't install this package on top of incompatible data. Please try another package or run a factory reset");
else
mount("f2fs", "EMMC", "/dev/block/bootdevice/by-name/userdata", "/data", "");
package_extract_file("META-INF/org/lineageos/releasekey", "/tmp/releasekey");
run_program("/tmp/install/bin/otasigcheck.sh") != "31744" || abort("Can't install this package on top of incompatible data. Please try another package or run a factory reset");
unmount("/data");
endif;
show_progress(0.750000, 0);
ui_print("Patching system image unconditionally...");
block_image_update("/dev/block/bootdevice/by-name/system", package_extract_file("system.transfer.list"), "system.new.dat", "system.patch.dat") ||
  abort("E1001: Failed to update system image.");
show_progress(0.020000, 10);
mount("ext4", "EMMC", "/dev/block/bootdevice/by-name/system", "/system", "");
run_program("/tmp/install/bin/backuptool.sh", "restore");
unmount("/system");
show_progress(0.050000, 5);
package_extract_file("boot.img", "/dev/block/bootdevice/by-name/boot");
show_progress(0.200000, 10);
set_progress(1.000000);

1voto

Je l'ai fait avec une astuce. J'ai d'abord flashé la ROM avec une partition de 1,15 Go seulement. Ensuite, j'ai basculé en mode récupération, j'ai fait une sauvegarde de la ROM sur la carte SD puis j'ai lancé le script de repartitionnement, elle est devenue 2,5 Go, en flashant /system, /data, /cache et /dalvik.

Ensuite, au lieu de flasher la ROM à nouveau, j'ai restauré la sauvegarde dans cette partition.

Voila ! Ça a marché !

Je suis maintenant un heureux utilisateur d'une ROM personnalisée avec Android Nougat (le stock était Lollipop) et seulement les applications Google que je considère utiles.

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