Posible idea para "arreglar" el lío de sdcard y sdcard2

jman0

VIP
Mensajes
4.898
Puntos
3.648
Móvil
POCO X4 GT
Esto es sólo una idea, y no la he podido probar, ya que el x310e que yo tengo no tiene tarjeta sd interna y externa, sino que en /sdcard me monta la externa.

En Unix, y por tanto en Linux, y en Android, es posible crear lo que se llama "enlace simbólico". Un enlace simbólico, bien sea a un archivo o a un directorio, es algo similar a lo que en Windows se conoce como "acceso directo", aunque con algunas diferencias que ahora no vienen al caso.

El caso es que pensando en esto y en los problemas que mucha gente tiene con aplicaciones de gps y juegos, que buscar sus archivos en /sdcard y no en /sdcard2, donde lo normal es tener más espacio, se me ha ocurrido lo siguiente:

Supongamos que queremos instalar varias aplicaciones o juegos que usan muchos datos (varios cientos de Mb en el caso de gps y juegos complejos). Si el teléfono monta parte de la rom en /sdcard y la sd externa en /sdcard2, por defecto, la mayoría de aplicaciones meterán sus datos en /sdcard/Android/data/xxxxx, donde xxxx es la carpeta específica de cada aplicación. Como ese espacio es bastante limitado, nos podría interesar que estuviera en /sdcard2/Android/data/xxxxx, pero la mayoría de aplicaciones no soporta esto. Ya hay algunas que sí, porque han proliferado los teléfonos con esta estructura de archivos, pero muchas otras no lo soportan.

Entonces, se me ocurría como posible solución, crear en /sdcard una carpeta Android que sea un enlace simbólico a /sdcard2/Android, de modo que todas las aplicaciones crean estar escribiendo y leyendo sus datos de /sdcard/Android/data, cuando en realidad, lo estarían haciendo de /sdcard2/Android/data. Lo bueno de esta solución es que si dicha tarjeta de memoria se llevara posteriormente a un teléfono que no distinga entre /sdcard y /sdcard2, los datos de las aplicaciones seguirían estando en la ruta correcta, y al instalarlas, los reconocerían sin problemas. Por ejemplo, un juego complejo no pediría que se volvieran a descargar los datos.

Como ya he dicho, yo no lo puedo probar ahora, ya que no tengo ese problema, pero quizá alguien con un teléfono que sí lo tenga, como el B79 o los ZP100/200/300 con la rom que viene por defecto, y que sepa algo de Linux, pueda probar si esto funcionaría.

Para quien quiera probarlo, el comando a utilizar (habría que usarlo desde alguna aplicación de emulación de terminal, aunque igual hay aplicaciones en Google Play que lo hagan) es ln. Creo que hay que ser root, pero no pondría la mano en el fuego.

En fin, es sólo una sugerencia y algo que de momento, sólo está como concepto en mi cabeza, pero podría funcionar. De hecho, está inspirado en la forma en que Link2SD "engaña" a Android para que crea que las aplicaciones enlazadas a la sd están en la memoria principal, y no en la tarjeta.

Y, por cierto, se me ocurre que esto mismo, se podría usar con la carpeta DCIM, donde generalmente se guardan las fotos y vídeos de la cámara.
 
Muy buena idea @jman0 :smile:

También funciona bien "engañar" a Android editando el archivo "vold.fstab" que está en la ruta: /system/etc/
Se puede conseguir que el sistema monte sdcard2 como si fuera sdcard, así quedaría accesible la SD Externa para de forma nativa poder instalar aplicaciones en ella (las que lo soportan), y la SD Interna aparecería como si fuera la Externa.

Con el ZP200 lo hemos probado en 2.3.6 y en ICS (4.0.3), y funciona bien.

Lo que tú propones es menos "parche" y más completo. En las 2.3.6 sí que había un enlace simbólico "sdcard2": /mnt/sdcard/sdcard2 , Pero con la ICS voló: /mnt/sdcard y /mnt/sdcard2 .

Gracias & un saludo!

Zen
 
Última edición por un moderador:
@zen_usuario, tampoco me felicites tanto, porque me acabo de dar cuenta hace un rato de que no es posible :(

La tarjeta sd interna se monta como FAT32, para que sea visible cuando conectas el móvil a un pc, pero (y esto es insalvable) no se pueden crear enlaces simbólicos en particiones FAT32, sólo en ext2, ext3 ó ext4

Va a ser mejor lo de modificar el vold.fstab, y la única opción.

Y lo de /mnt/sdcard/sdcard2 de las roms 2.3.6 (yo también lo vi, cuando probé un 2.3.6 en el x310e) en realidad no es un enlace simbólico, sino un punto de montaje, para la sd externa, creado dentro del punto de montaje de la sd interna, por lo que no es el mismo concepto. Por eso funciona lo del vold.fstab, porque lo que se hace es intercambiar los punto de montaje de las 2 tarjetas.

De todos modos, tiene que haber algún otro archivo que deberíamos poder tocar. Lo digo porque en el caso de la rom que tengo ahora en el x310e (en este caso sacada del zp100) tengo la sd externa en /sdcard, pero no tengo ninguna sd interna, sino que toda la ROM disponible (2,5 Gb) aparece como almacenamiento interno.

Lástima. De momento, dejaré el tema abierto, por si a alguien se le ocurre algo, aunque no lo veo posible.
 
Última edición por un moderador:
@zen_usuario, qué "vold.fstab" ponéis?
Abrí un hilo hace tiempo sobre esto pero no me aclaro mucho con estos conceptos.
(Tutorial) Sobre el montaje de las SDCard en MTK6575

Hola @pauete, @jman0

En el tema: Zopo (zhuopu) zp200 - reviews externas- > AÑADIDOS DE INTERÉS: > ALGUNAS SOLUCIONES:

Post #671

INSTALAR APP's EN LA SD EXTERNA (SDCARD2):

* Este "truco" lo consigue "engañando" al sistema, montando la SD Externa como "sdcard" y la SD Interna como "sdcard2".

* Los cambios se efectúan en el fichero "vold.fstab" que se encuentra en la ruta: /system/etc , recomiendo hacer una copia de seguridad de éste.

* 2 versiones: una para 2.3.6, y otra para ICS (4.0.3).

* Créditos: Me he limitado a modificar el ".zip" para la versión ICS, tomando como base el de la 2.3.6, de la cual no recuerdo la fuente. El "vold.fstab" para la ICS, gracias usuario Samezrp del foro: http://forum.xda-developers.com/show...655630&page=17

* Se instala con el recovery (Install zip).

LINKS:
ZP200 2.3.6.patch.sdcard-sdcard2-switched.signed.zip
ZP200 4.0.3.patch.sdcard-sdcard2-switched.signed.zip



REPARTICIONADO ROM:

Son parches publicados por SGG, del foro ruso. En principio fueron preparados para 2.3.6 y en el THL v9.
Hacer copias de seguridad antes de instalar.

1- ReParted-tool.(by_sgg.im).signed.zip
Queda eliminada "sdcard", y se redistribuye "/data" ocupando el nuevo espacio liberado. Modifica "vold.fstab".
He intentado instalarla en ICS, pero no lo he conseguido, aún modificando en el ".zip" el "scatter.txt" (poniendo el de ICS), y probando diferentes cosas con "vold.fstab". En principio funciona con 2.3.6.

2- ReParted-tool.data-sd.(by_sgg.im).signed.zip
Queda disminuída "sdcard" hasta un tamaño configurable (por defecto, 1500MB), el espacio liberado queda asignado a "/data". Para modificar el tamaño de la partición "sdcard", hay que editar el fichero "sd-size-mb.txt", en la carpeta "reparted". No se modifica "vold.fstab". Funciona en 2.3.6 y en ICS.

3- ReParted-tool.data-512sd.ICS (SGG Based).signed.zip
Es la máxima disminución que he conseguido de "sdcard" (con 256MB no funcionó), en ICS, 512MB. Es igual que el ".zip" anterior, salvo que modifiqué el "scatter.txt" por el de ICS, y edité el valor de "sd-size-mb.txt" a 512.

shot_000003.jpg shot_000004.jpg shot_000005.jpg shot_000006.jpg * En estas fotos: + "switch sd-sd2"

* En ocasiones he tenido que hacer varios intentos y repetidas instalaciones + "wipe cache" para conseguir que funcionaran. Al final parece que funcionó instalar > esperar un poco > reiniciar el recovery CWM > esperar 2 minutos > "reboot system"....
Ya instalado y funcionando el reparticionado (el que "disminuye" el tamaño de "sdcard"), pude hacer un "restore" CWM de "data" ("Advanced restore"), con CWM, sin problemas. No recuerdo (probé tantas cosas...) si llegué a hacer un "restore" completo, y si se mantuvo el reparticionado...Aunque supongo que no, pues también se recupera "boot.img"...Por cierto: ¿"boot.img" afecta sólo a los directorios, o también al particionado? ¿Un "restore" CWM del sistema reparticionado, modificaría las particiones de un sistema "original"?

La que sería más interesante, en mi opinión, quizás la primera (sin "sdcard"),...en ICS...

Supongo que podemos ir experimentando...A ver si suena la flauta en una de estas :roll-eyes:


Un saludo!

Zen

shot_000006.jpg


shot_000003.jpg


shot_000004.jpg


shot_000005.jpg
 
Última edición por un moderador:
Probado en mi GT-G70 con ICS. El parche resiste a un FULL-WIPE

He probado la opcion 3 (2GB de interna y 512 de sdcard2)

A lo mejor, la mejor opcion seria 1GB de interna y 1,5 para el Link2sd :wink: asi utilizariamos los 2,5Gb de nuestros telefonos para las aplicaciones con la velocidad de la memoria interna y el ext4

Voy a intentarlo y os cuento

Por cierto, ¿esto esta puesto como un manual? deberia de estar puesto y chincheteado en el foro de MT6575
 
COMO APROVECHAR LOS 2,6 GB DE MEMORIA INTERNA PARA INSTALAR APLICACIONES


NECESITAMOS:

* Teléfono rooteado y con CWM recovery
* Root Explorer
* Link2sd
* 1 Tarjeta con 2 particiones (Ver tutorial Link2sd)
* Descargar el parche aquí ** FUNCIONA EN 6575 CON ANDROID 4.0 **


INSTRUCCIONES:

- Hacer backup del telefono por lo que pueda pasar
- Descomprimimos el parche "Patch_MT6575_Link2sd.rar" y metemos los 2 archivos en la microsd
- Apagamos el telefono y retiramos las SIM (Evitamos meter los PIN porque se va a reiniciar el telefono un par de veces)
- Entramos en modo recovery y aplicamos el parche "ReParted-tool.data-1500sd.ICS (SGG Based).signed.zip"
- Reiniciamos el telefono, vamos a AJUSTES, APLICACIONES y comprobamos que todo ha ido correcto y tenemos cerca de 1Gb para las aplicaciones

Aplicaciones.jpg

- Con la microsd particionada en 2 descargamos el Link2sd de la PlayStore
- Abrimos el Link2sd y hacemos el script de montaje indicando como sistema de archivos FAT32, seguimos los pasos y reiniciamos
- Abrimos el Root Explorer y en la raiz del telefono buscamos algo parecido a esto:

Particion.jpg

- Nos aseguramos que la particion de nuestro MTK6575 corresponde con "mmcblk0p4" si no es asi nos tocara modificar el archivo "install-recovery.sh"
- Si nuestra particion es "mmcblk0p4" con el Root Explorer copiamos el archivo "install-recovery.sh" descargado
- Vamos a /system/etc, montamos la carpeta como R/Wy le damos a PEGAR sustituyendo el original que ha creado el Link2sd
- IMPORTANTISIMO Dejamos pulsado el archivo unos segundos y elegimos PERMISOS, le damos los permisos necesarios:

permisos.jpg

- Volvemos a marcar la carpeta /system/etc como R/O con el Root Explorer

Si todo ha ido bien deberiamos ver esto cuando entremos al LINK2SD, menú INFORMACION DE ALMACENAMIENTO:

link2sd.jpg

Ya tenemos toda la memoria interna del telefono disponible para nuestras aplicaciones :wink: facil, sencillo y para toda la familia


APUNTES:

* Hay que recordar que cuando conectamos el telefono al PC por USB el ordenador sigue reconociendo la SDCARD2 como una particion y el telefono la monta al estar en FAT32. He probado a ejecutar un juego mientras el telefono estaba conectado en modo USB y el juego funcionaba sin problema en el telefono, pero hay que recordar que algunas aplicaciones puede que se paren hasta que desconectemos el modo USB.

* EDITADO: MUY IMPORTANTE Mientras le demos los permisos necesarios al archivo "install-recovery.sh" no hay problema si volvemos a introducir una microsd particionada, el LINK2SD seguira usando la memoria interna del telefono porque asi se lo indica el script modificado. Si el archivo "install-recovery.sh" no cuenta con los permisos necesarios e introducimos una microSD particionada, el LINK2SD la reconocerá y las aplicaciones que teniamos "movidas" a la memoria interna dejaran de funcionar hasta que saquemos la microSD o apliquemos los permisos correctamente :wink:

¡¡ ATENCIÓN !! DESDE LA VERSIÓN 2.2 EN ADELANTE DEL LINK2SD SI NUESTRA TARJETA MICROSD ESTÁ PARTICIONADA NO RECONOCE LA MEMORIA INTERNA DEL TELEFONO :(

Particion.jpg


permisos.jpg


link2sd.jpg


Aplicaciones.jpg
 
Última edición por un moderador:
@pauete pasate por aqui y si lo probais y os gusta lo metes en el MEGATUTORIAL :wink:
 
Última edición por un moderador:

Del blog

¿Ha terminado la locura de añadir tantas cámaras a los móviles?

  • Si

  • No

  • No lo se

  • Ya me gustaría...

  • Ya te gustaría...


Los resultados solo son visibles tras votar.
Atrás
Arriba