Comment créer un lien symbolique avec un chemin complet court?

Je suis en train d'éditer des chemins sur certains binaires à défaut de les recompiler.

Je souhaite remplacer /lib/ld-linux-armhf.so.3 , que je ne peux pas créer, par un chemin de même longueur, que je peux créer sans enrayer le téléphone. Il devrait s'agir de la même longueur parce que je modifie les binaires. J'ai choisi le chemin /data/data/com.clk/.so.3 , après les différentes possibilités énumérées ci-dessous. Ce que j'essaie de faire, c'est créer /data/data/com.clk/.so.3 , qui devrait être un lien symbolique vers /data/data/com.spartacusrex.spartacuside/gentoo_armv6l/lib/ld-linux-armhf.so.3

  • Combien d'activités contre les fragments?
  • La clé invalide d'Android et Facebook Connect
  • Est-il possible de «aimer» une «page de fan» à l'aide du SDK de Facebook?
  • Programmation orientée vers l'aspect dans Android
  • Android YouTube api v3 - orientation
  • L'application Android FacebookSDK avec l'application Facebook native installée demande des autorisations même après que l'utilisateur les a déjà donné
  • J'ai d'abord utilisé /proc/5781/cwd/rmhf.so.3 , mais cela n'est pas lisible par d'autres applications (qui sont d'autres comptes linux).

    J'ai ensuite essayé /data/.tmp , mais c'est spécifique à mon téléphone, et non documenté selon @ChrisStratton. Identique à /data/logcat_log .

    /sdcard est exclue car les options de fusibles rw,nosuid,nodev,relatime,user_id=1015,group_id=1015,default_permissions,allow_other restrict links and exectuables et /lib/ld-linux-armhf.so.3 doivent être exécutées.

    Quelqu'un sait-il comment je peux accomplir cela?

    2 Solutions collect form web for “Comment créer un lien symbolique avec un chemin complet court?”

    Avez-vous envisagé d'utiliser PatchELF plutôt que de rouler votre propre édition binaire? Il prétend être assez intelligent pour insérer une page supplémentaire dans l'en-tête ELF si nécessaire pour faire place à des interprètes plus longs ou à des champs RPATH. Cela vous permettrait d'utiliser la valeur de l'interprète réel plutôt que d'avoir besoin d'un lien symbolique.

    Je suis finalement tombé sur un fabricant d'apk qui n'a pas besoin d'ordinateur x86 et fonctionne sur le téléphone lui-même. Sans payer quoi que ce soit, en vingt minutes, j'ai créé mon premier apk et j'ai pu l'installer après avoir temporairement autorisé des sources inconnues. C'était mon premier programme java. J'ai choisi un nom court mais instructif pour l' com.symli , com.symli (semblait nécessaire).

    Ensuite, j'ai modifié l'onglet MainActivity.java de l'éditeur pour obtenir:

     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); } } 

    Ensuite, j'ai simplement cliqué sur le bouton "exécuter", et BOOM le lien symbolique est maintenant là pour de bonnes:

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

    La partie env n'a pas fonctionné mais je m'en fous. J'ai téléchargé le .apk résultant vers http://sf.net/projects/gentooandroid/files/symlinksForStackoverflowQuestion20459834.apk (autorisations: NON! SHA256sum: 63dcc7553ae5f033ec81ff535fa4648665753675663af0e9f37f02eecdc945b6 MD5sum: a269ebdfeb1f08d0c632947a30f2764d)

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.