Schreibbare und ausführbare Position auf Android

Ich habe eine Binärdatei mit dem Android NDK Toolchain kompiliert und versuche, es auf einem Gerät zu implementieren. Eine Anwendung, die mit dem NDK mit JNI erstellt wurde, führt diese Binärdatei dann über nativen Code aus. Ich hoffe, das Gerät nicht zu verwurzeln.

Die Binärdatei wird von mehreren Anwendungen verwendet werden, so dass ich es gerne in einem freigegebenen Ort speichern würde, anstatt einmal pro Anwendung.

  • PhoneGap für Android akzeptiert nicht die 9-Taste
  • Wie man eine Android-Anwendung von einem anderen Android-Anwendung aufrufen
  • Ist es ok, sendBroadcast () aus einem anderen Thread zu rufen?
  • Listview-Scrolling-Bug auf 5.1
  • Größenänderung von DatePicker in Android
  • Button Bildgröße in Android
  • Ich kann keinen passenden Ort finden, um diese Binärdatei einzusetzen – das sind die Orte, die ich ausprobiert habe:

    1. / Mnt / sdcard – mit getExternalStoragePublicDirectory () aus dem SDK, aber die SD-Karte wird als noexec montiert, was bedeutet, dass ich es nicht ausführen kann.

    2. / System / bin – read-only Dateisystem, also kann nicht kopieren. Ich kann die Datei mit Adb-Push, wenn ich remount / System auf dem Emulator mit:

      mount -o rw,remount -t yaffs2 /dev/block/mtd3 /system 

      Allerdings möchte ich das vermeiden, da das Gerät verwurzelt sein müsste.

    3. / Data / local – mit adb push, kann ich die Binär an diesen Ort drücken. Allerdings kann ich nicht scheinen, einen Weg zu finden, dies in Code (mit dem Android SDK) zu tun. Der interne Speichermechanismus weist auf / data / data / package hin .

    Ich habe nativen Code kompiliert, der diese ausführbare Datei nennt, indem man Arm-linux-androideabi-g ++ mit der NDK-Toolchain versendet. Dies funktioniert mit der binären in / system / bin und / data / local .

    Zusammenfassend suche ich nach einem Standort im Android-Dateisystem, auf das ich eine Datei aus dem Projekt- / Assets-Ordner kopieren kann, welche Welt-ausführbare Berechtigungen möglich sind.

  • Kann ich die Anwesenheit / Abwesenheit von 'LED-Benachrichtigung' auf einem Android-Gerät erkennen?
  • Datepicker: Wie Popup Datepicker bei Klick auf Button und speichern Wert in Variable
  • J2ME VS Android VS iPhone VS Symbian VS Windows CE
  • Übergeben von Daten zwischen einem Fragment und seiner Containeraktivität
  • Wie kann ich auf eine vorhandene sqlite-Datenbank in Android zugreifen?
  • So zeigen Sie Karte Scale Bar auf Android v2 Karte
  • 3 Solutions collect form web for “Schreibbare und ausführbare Position auf Android”

    Wenn du das Wurzeln des Geräts vermeiden willst, dann ist im Grunde die SD-Karte der einzige Ort, den du annehmen kannst, ist weltbeschreibbar ( BEARBEITUNG : jüngste Änderungen im Android-Framework ab 2014/2015!). Es ist besser, dass Ihr binärer Teil der installierbaren APK, die dann extrahieren diese binäre aus APK in private Speicher, machen es Welt ausführbare etc und irgendwie kündigen binäre Lage, aber im Allgemeinen erwarten einige Probleme je nach OS-Version und Anbieter

    /data/local/tmp/ und "/data/data/" + packageName + "/files"

    Zum direkten testen Du Binär, zuerst empfiehlt man sich.

    Wenn Sie adb verwenden können, können Sie Verzeichnis / data / local / bin mit 777 Berechtigungen vorbereiten.

    Alternativ können Sie eine Datei im privaten App-Verzeichnis (/data/data/your.package.unique.name/files) erstellen und die Dateiberechtigungen auf 777 755 setzen.

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.