¿Cómo crear un enlace simbólico con shortpath?

Estoy editando rutas en algunos binarios, a excepción de recompilarlos.

Quiero reemplazar /lib/ld-linux-armhf.so.3 , que no puedo crear, por una ruta de la misma longitud, que puedo crear sin enraizar el teléfono. Debe ser algo de la misma longitud porque estoy editando binarios. He elegido la ruta /data/data/com.clk/.so.3 , después de las diferentes posibilidades que se enumeran a continuación. Lo que estoy tratando de hacer es crear /data/data/com.clk/.so.3 , que debería ser un enlace simbólico a /data/data/com.spartacusrex.spartacuside/gentoo_armv6l/lib/ld-linux-armhf.so.3

Inicialmente utilicé /proc/5781/cwd/rmhf.so.3 , pero esto no es legible por otras aplicaciones (que son otras cuentas Linux).

Entonces intenté /data/.tmp , pero es específico a mi teléfono, y no documentado según @ChrisStratton. Lo mismo acerca de /data/logcat_log .

/sdcard se excluye porque se deben ejecutar las opciones de fusible rw,nosuid,nodev,relatime,user_id=1015,group_id=1015,default_permissions,allow_other restrict links y exectuables y /lib/ld-linux-armhf.so.3 .

¿Alguien sabe cómo puedo lograr esto?

¿Ha pensado en usar PatchField en lugar de rodar su propia edición binaria? Afirma ser lo suficientemente inteligente como para insertar una página extra en el encabezado ELF según sea necesario para dar cabida a campos de interpretación o RPATH más largos. Eso le permitiría utilizar el valor del intérprete real en lugar de necesitar un enlace simbólico.

Finalmente tropecé con un fabricante de APK que no necesita ninguna computadora x86 y funciona en el teléfono sí mismo. Sin pagar nada, en veinte minutos, creé mi primer apk, y pude instalarlo después de autorizar temporalmente fuentes desconocidas. Ese fue mi primer programa java. Elegí un nombre corto aunque informativo para el apk, com.symli ( com. Parecía necesario).

Luego modifiqué la pestaña MainActivity.java del editor para obtener:

 package com.symli; import android.app.*; import android.os.*; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { try { Runtime.getRuntime().exec("ln -s /data/data/com.spartacusrex.spartacuside/com.symli /data/data/com.symli/n ; env > /data/data/com.symli/getRuntimeExecEnv"); } catch (java.io.IOException e) { } super.onCreate(savedInstanceState); setContentView(R.layout.main); } } 

Entonces simplemente hice clic en el botón "ejecutar", y BOOM el enlace simbólico ahora está aquí para siempre:

 lrwxrwxrwx 1 10150 10150 50 Nov 3 13:17 /data/data/com.symli/n -> /data/data/com.spartacusrex.spartacuside/com.symli 

La parte env no funcionó pero ya no me importa. He subido el .apk resultante a http://sf.net/projects/gentooandroid/files/symlinksForStackoverflowQuestion20459834.apk (permisos: NINGUNO! SHA256sum: 63dcc7553ae5f033ec81ff535fa4648665753675663af0e9f37f02eecdc945b6 MD5sum: a269ebdfeb1f08d0c632947a30f2764d)

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.