3 votos

Cómo hacer que los enlaces simbólicos funcionen dentro de /storage/emulated en 4.4.4

He creado un enlace simbólico desde /storage/sdcard1/somefolder a /data/media/0/somefolder pero las aplicaciones tratan el enlace simbólico como un archivo y no como una carpeta (y se bloquean porque están programadas para buscar archivos dentro de una carpeta en esta ruta).

Aplicaciones root que acceden al enlace simbólico desde /data/media/0/somefolder funciona y lo trata como una carpeta, las aplicaciones no Root utilizan el punto de montaje fusionado en /storage/emulated/0/somefolder en su lugar porque no tienen permiso para mirar dentro de /data/media .

No es posible establecer un enlace simbólico directo con el punto de fusión (error de enlace entre dispositivos). Los permisos de punto de Symlink en el punto fusionado son 770 para un app_ID:1028 en lugar de 777 para root:root como si fuera de /data/media no es posible cambiar los permisos usando Root en el punto fusionado. /storage/sdcard1/somefolder es 777 .

El exploit debuggerd debe evitarse en la medida de lo posible y los puntos de montaje no serán visibles en todo el sistema.

¿Qué hay que cambiar para que el enlace simbólico funcione desde el punto fusionado? ¿Cómo afectará al resto del sistema?

2voto

slugster Puntos 27178

Android guarda los puntos de montaje desde que salió Android 4.2. Usted ya ha mencionado el hack debuggerd, así que supongo que usted sabe acerca de esta restricción.

Esto puede parecer obvio, pero primero debe comprobar si el sistema de archivos que se utiliza en el almacenamiento externo emulado y en el almacenamiento externo real admiten enlaces simbólicos. Si tu tarjeta SD está formateada como FAT32, que no soporta enlaces simbólicos, no pasará nada y tendrás que formatear el almacenamiento externo a algo como ext2/3/4 o yaffs.

El error 'cross device link' puede solucionarse utilizando ln -s /data/media/0/somefolder /storage/sdcard1/somefolder en lugar de ln /data/media/0/somefolder /storage/sdcard1/somefolder . Esto creará un enlace simbólico en lugar de un enlace duro, por lo que puede abarcar varios sistemas de archivos y dispositivos de almacenamiento. Necesitas hacer esto como Root o de lo contrario no funcionará.

Si los permisos son un problema puede que tengas que solucionar el 'problema de la sdcard externa'. Este problema hace que la tarjeta SD externa real sea de sólo lectura en las versiones de Kitkat. Los detalles están en esta página . Se trata de editar /system/etc/permissions/platform.xml para que las aplicaciones con el WRITE_EXTERNAL_STORAGE permiso también puede escribir en el almacenamiento externo "real". Esto puede hacerse instalando esta aplicación o haciendo lo siguiente:

  1. Inicia tu gestor de archivos favorito con los derechos de acceso Root activados. Puedes utilizar cualquier aplicación que prefieras y que pueda ejecutarse en modo elevado en tu dispositivo. Por ejemplo, la aplicación "Root Explorer", "Total Commander" o "File Manager" de CyanogenMod.

  2. Navegue hasta el siguiente archivo:

/sistema/etc/permisos/plataforma.xml

  1. Encuentre las líneas Android.permission.WRITE_EXTERNAL_STORAGE y Android.permission.WRITE_MEDIA_STORAGE. Estas son secciones XML. Usted necesita hacer que se vean exactamente como las cadenas de abajo:
<permission name="android.permission.WRITE_EXTERNAL_STORAGE" >
<group gid="sdcard_r" />
<group gid="sdcard_rw" />
<group gid="media_rw" />
</permission>
<permission name="android.permission.WRITE_MEDIA_STORAGE" >
<group gid="sdcard_rw" />
<group gid="media_rw" />
</permission>

Guarde el archivo platform.xml. Es necesario establecer los permisos del archivo a 644 (rw-/r-/r-) antes de reiniciar el móvil. Ahora reinicie su dispositivo Android.

Créditos poolmaker@XDA

0voto

lamplighter Puntos 158

Lo siento, pero no te entiendo bien, pero si usted quiere decir que desea liberar más espacio en la memoria interna mediante la creación de enlaces simbólicos ¿Por qué no pruebas Link2SD ahora se puede vincular incluso los datos privados de cualquier aplicación a la tarjeta SD externa sin causar ningún problema, además de pero NO ENLACE NINGÚN APPS SISTEMA a la tarjeta SD externa, ya que causará efectos negativos a su teléfono. Es muy recomendable tener una tarjeta SD con alta velocidad de escritura y lectura.

0 votos

Link2SD engaña en debuggerd y no permite enlaces arbitrarios, de las últimas pruebas que hice con él, ¿podría mostrarme un ejemplo de cómo mover arbitrariamente /sdcard/carpeta_arbitraria a /storage/sdcard1/carpeta_arbitraria con Link2SD con archivos en esta carpeta que permanecen disponibles en ambas ubicaciones para aplicaciones codificadas para leer en esta ruta no convencional? ¿Cómo me permitirá link2sd hacer que los enlaces simbólicos funcionen en el punto de montaje fusionado?

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X