Antecedentes:
Dispositivo: Yu Yureka | CM 12.1(5.1)
https://www.gsmarena.com/yu_yureka-6987.php
Ha pasado un tiempo desde que Cyanogen murió y estaba pensando en pasarme a una ROM más nueva. Resulta que Resurrection Remix tiene una ROM personalizada para Tomato (mi nombre de compilación) con soporte para Nougat: https://sourceforge.net/projects/resurrectionremix/files/tomato/ cortesía del Sr. Abhishek, el mantenedor de la ROM para Yureka.
De todos modos, seguí adelante, cambié mi recuperación de Cyanogen a TeamWin e instalé la nueva ROM, siendo la única parte pendiente la instalación de GApps, excepto que al instalar GApps me dio el famoso Error 70: https://tech.chandrahasa.com/2017/03/09/error-70-gapps-fix/
En mi caso, quería reparticionar /system para solucionar el problema, así que utilicé una herramienta (construida específicamente para mi dispositivo) para hacerlo. Funcionó y terminó formateando /system, /dalvik, /cache, /data
.
Problema:
Cuando revisé el tamaño de la partición, mostraba 2.5GB tal como se prometió en este punto. Seguí adelante e instalé la nueva ROM y de alguna manera, la partición terminó siendo de 1.15GB como lo estaba originalmente. Sospecho que el script de instalación de la ROM restablece el tamaño de la partición como una verificación de integridad de manera predeterminada, después de todo - esta nueva ROM es un fork de la ROM CM 12.1 que originalmente vino con el teléfono. O quizás hay algún tipo de límite en el tamaño de la partición /system (no estoy seguro realmente...).
Pregunta: ¿Cómo puedo mantener este nuevo tamaño de repartición y evitar que la ROM lo restablezca a 1.15GB (si es que ese es el caso)?
Para su referencia:
Aquí está el script de actualización para la ROM:
assert(getprop("ro.product.device") == "YUREKA" || getprop("ro.build.product") == "YUREKA" || abort("E3004: Este paquete es para el dispositivo: YUREKA; este dispositivo es " + getprop("ro.product.device") + "."););
assert(cm.verify_trustzone("TZ.BF.3.0.R2-00034") == "1");
ui_print("Objetivo: YU/YUREKA/YUREKA:5.1.1/LMY49J/YOG4PAS8A4:usuario/llaves-lanzamiento");
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(" Parche de seguridad: 2017-06-05");
ui_print("");
ui_print(" Versión SDK: 25");
ui_print("");
ui_print(" Estado de root: Habilitado");
ui_print("");
ui_print(" ID de compilación: NJH47B");
ui_print("");
ui_print(" Fecha de compilación: Mié Jun 21 18:23:54 IST 2017");
ui_print("");
ui_print(" Tipo de compilación: OFFICIAL-VoLTE");
ui_print("");
ui_print(" Anfitrión de compilación: DeadlyMachine");
ui_print("");
ui_print(" Mantenedor: Men_in_black007");
ui_print(" **************** Hardware *****************");
ui_print(" Nombre en clave del dispositivo: tomato");
ui_print("");
ui_print(" Fabricante: 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("No se puede instalar este paquete sobre datos incompatibles. Por favor, intente con otro paquete o realice un restablecimiento de fábrica");
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("No se puede instalar este paquete sobre datos incompatibles. Por favor, intente con otro paquete o realice un restablecimiento de fábrica");
unmount("/data");
endif;
show_progress(0.750000, 0);
ui_print("Aplicando parche a la imagen del sistema incondicionalmente...");
block_image_update("/dev/block/bootdevice/by-name/system", package_extract_file("system.transfer.list"), "system.new.dat", "system.patch.dat") ||
abort("E1001: Error al actualizar la imagen del sistema.");
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);
1 votos
Solo conjeturando por la parte del script que has incluido: Es probable que la partición en sí no se haya redimensionado de nuevo. Pero el script escribió una imagen por bloques (
block_image_update
), por lo que el sistema de archivos piensa que tiene esos 1,15 GB. Si estoy en lo cierto con eso, todo lo que sería necesario es ajustar o expandir el sistema de archivos (no conozco los pasos para eso, pero estoy seguro de que es posible: lo mismo se hace, por ejemplo, con Raspberry Pis después de flashear una imagen de 2 GB en una tarjeta SD mucho más grande).0 votos
@Izzy: Encontré una solución con un truco. Ver mi respuesta.
0 votos
Eso es aún más fácil, ¡buen descubrimiento (votado)! Aunque tú y yo (y probablemente muchos otros) sabemos que puede ser conveniente aclarar que fue una copia de seguridad de nandroid y que no estás hablando de "restauración de fábrica" sino de TWRP :) Y sí, con las versiones recientes de recoveries personalizados (TWRP seguro, CWM supongo lo mismo) Nandroid ya no significa una copia de seguridad basada en bloques, sino más bien un "archivo de contenido", lo que posibilitó este procedimiento en primer lugar.