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.

  • "Android Asset Studio" fügt zusätzlichen Platz hinzu, wenn ich meine .png Symbole hochlade, aber nicht, wenn es seine internen Cliparts verwendet. Warum?
  • BottomSheetDialog bleibt nach dem Entlassen durch Herunterziehen ausgeblendet
  • XMPP FileTransfer - Warum schlägt das Bytestreams-Protokoll fehl?
  • Warum wird getCount so oft in PagerAdapter aufgerufen?
  • Projekt aus Android Studio entfernen
  • Wählen Sie aus autoCompleteTextView in uiautomator aus
  • 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.

  • Android Material Design Inline Datepicker Problem
  • Erkennung von AC (Ein / Aus) und Fenster (Öffnen / Schließen) von CAR mit OBD
  • Internetverbindungsprobleme über Mobilfunk
  • Override-Dialog auf BackPressed ()?
  • Android Studio 1.2.1.1 - Fehler beim Finden von Style 'textViewStyle'
  • NoSuchMethodError getChildFragmentManager ()
  • 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.