1. Hast Du Lust, bei uns mitzuarbeiten und das AH-Team zu verstärken? Alle Details zu dieser aktuellen Herausforderung findest Du hier.
  1. Oebbler, 06.01.2017 #1
    Oebbler

    Oebbler Threadstarter Fortgeschrittenes Mitglied

    Hallo,

    ich nutze auf meinem PC einige Programme, die ich auf meinem Android-Smartphone auch gerne hätte, wie z.B. youtube-dl.
    Wenn ich mir jedoch youtube-dl für ARMv7-Prozessoren herunterlade, funktioniert dies auf meinem Raspberry Pi 2 und auf meinem Cubieboard, nicht jedoch auf meinem Android-Smartphone. Gibt es einen Weg, diese und anere ARMv7-Binaries auf Android laufen zu lassen, ohne eine Linux-Distribution virtuell am Smartphone zu installieren?
     
  2. magicw, 06.01.2017 #2
    magicw

    magicw Super-Moderator Mitarbeiter

    Andoid ist nicht gleich Linux. Es setzt zwar insbesondere den Kernel drauf auf, aber die Anwendungsumbebung basierend auf Apps ist ja schon anders gelöst als über Linux-Distributionen. Insofern müsste das Programm als App verfügbar sein, damit es auf Android läuft.
     
  3. rudolf, 06.01.2017 #3
    rudolf

    rudolf Android-Lexikon

    Google mal "chroot debian android". Wenn du mit einer Raspberry klarkommst bekommst du vielleicht auch das geschaukelt. Eine Warnung, nicht jedes Android ist korrekt mit loop ausgestattet, daran kann es hängen falls das nicht funktionieren will.
    -- Dieser Beitrag wurde automatisch mit dem folgenden Beitrag zusammengeführt --
    Hier noch zwei links:
    F-Droid
    F-Droid
     
    Oebbler gefällt das.
  4. Oebbler, 07.01.2017 #4
    Oebbler

    Oebbler Threadstarter Fortgeschrittenes Mitglied

    Sicher? Programme wie z.B. die Busybox laufen auch ohne App direkt im Terminal. Ich nutze CM13.0 und kann daher direkt auf das Terminal zugreifen...
    -- Dieser Beitrag wurde automatisch mit dem folgenden Beitrag zusammengeführt --
    Das würde nichts machen. Da ich ohnehin meinen eigenen Kernel nutze, kann ich das ja noch implementieren, wenn es das nicht schon ist.
     
  5. magicw, 07.01.2017 #5
    magicw

    magicw Super-Moderator Mitarbeiter

    Naja in der busybox laufen Scripte. Das sind für mich eine spezielle Art von Programmen ggü. denen, die auf systemspezifisch compilierten Binaries laufen. (exe-Files in Windows oder die files im /bin von Linux.
    Der dahinter liegende "Interpreter" aka busybox, der die Script-Befehle ausführt, ist aber wiederum eine App.

    Pauschale Frage gibt hatl erst mal pauschale Antwort^^
     
  6. Oebbler, 07.01.2017 #6
    Oebbler

    Oebbler Threadstarter Fortgeschrittenes Mitglied

    Der Busybox-Installer schon, aber die Busybox selbst, die im "/system/bin"- oder "/system/xbin"-Verzeichnis liegt (bei einigen Kernels, wie z.B. bei meinem Elite-Boeffla-Kernel, ist sie schon in der Ramdisk enthalten), ist eine speziell für Android kompilierte Linux-Binary. Als Kernel-Entwickler sollte ich wissen, dass die Busybox selbst keine App, sondern eine ausführbare Binary ist. Bitte nicht mit Apps verwechseln, die die Busybox installieren.
    Meine ürsprüngliche Frage war, wie man Linux-Binaries, die nicht speziell für Android kompiliert sind (wie es bei der Busybox, die ich über die Shell aufrufe, der Fall ist) trotzdem auf Android laufen lassen kann. Das mit der chroot-Umgebung, die rudolf vorgeschlagen hat, geht sehr stark in die richtige Richtung. Vielleicht ist diese chroot-Umgebung sogar so gut in Android integriert, dass ich von dieser aus auf meine Dateien auf der Speicherkarte zugreifen kann.
     
  7. vetzki, 07.01.2017 #7
  8. Oebbler, 08.01.2017 #8
    Oebbler

    Oebbler Threadstarter Fortgeschrittenes Mitglied

    Ja, dieses Programm meine ich. Wenn ich es auf meinem Smartphone ausführen will, dann bekomme ich die Meldung, dass es nicht gestartet wird, weil Python fehlt. Nur läuft Python (die Linux-Version davon) auf meinem Smartphone nicht, obwohl ich es für die ARM-Architektur (armhf) heruntergeladen habe.
     
  9. vetzki, 08.01.2017 #9
    vetzki

    vetzki Android-Ikone

    das enthält ein brauchbares python (2 oder 3) Termux – Android-Apps auf Google Play, musst du dort nur nachinstallieren, dann sollte es auch funktionieren (bzw. evtl. läst es sich sogar mit pip installieren)
    (termux gibt es alternativ auch bei f-droid)

    edit:
    geht, einfach mit
    pip install --upgrade youtube-dl
    installieren
     
    Zuletzt bearbeitet: 08.01.2017
    rudolf und Oebbler gefällt das.
  10. Oebbler, 08.01.2017 #10
    Oebbler

    Oebbler Threadstarter Fortgeschrittenes Mitglied

    Danke! Diese App ist genau das, wonach ich suche! Sie sollte standardmäßig in CM enthalten sein.
     
  11. rudolf, 09.01.2017 #11
    rudolf

    rudolf Android-Lexikon

    Screenshot_2017-01-09-04-44-43.png

    Busybox-static auf Raspberry installiert, von dort auf das Android Tablet kopiert, und es läuft :)
    Die Stericson Busybox von meinem Tablet läuft genauso auch auf dem Raspberry. Sind halt beide statisch gelinked.
     
    Zuletzt bearbeitet: 09.01.2017
  12. hmpffff, 09.01.2017 #12
    hmpffff

    hmpffff Fortgeschrittenes Mitglied

    Gibt es ein fertiges Stericson-Busybox-ZIP, was ich via TWRP installieren kann? Ich würde gerne einige Schritte beim Installieren von Nightlies. Ich wüsste auch gerne einen Meta-Installer haben, mit dem ich mehrere ZIPs unangetastet zusammenfassen kann.
     
  13. rudolf, 09.01.2017 #13
    rudolf

    rudolf Android-Lexikon

  14. hmpffff, 09.01.2017 #14
    hmpffff

    hmpffff Fortgeschrittenes Mitglied

    Ach f… ich hatte danach gesucht, aber darüber bin ich nicht gestolpert. Super, danke. Wenn es jetzt noch eine Lösung für den Meta-Installer gibt…
     
  15. Oebbler, 09.01.2017 #15
    Oebbler

    Oebbler Threadstarter Fortgeschrittenes Mitglied

    Heißt das, dass eine statisch kompilierte Busybox für die ARM-Architektur auf Linux-Boards mit ARM-Prozessor und auch auf Android läuft?
    Wenn ja, gilt das auch für andere Linux-Programme wie z.B. python oder ffmpeg?
    Dann könnte ich mir theoretisch Termux sparen, das doch recht viel Speicherplatz frisst...
     
  16. rudolf, 10.01.2017 #16
    rudolf

    rudolf Android-Lexikon

    Hast du dir den screenshot nicht angesehen? Da läuft die Raspbian busybox auf Android. Schau mal genau auf die Versionsmeldung! Ich hab damit auch dinge wie top, ps, ifconfig getestet, geht.

    Ein Linux besteht aus einem Kernel, einem Dateisystem, und mindestens einer shell. Du bekommst mit einem kernel, einer Ramdisk und einer Busybox bereits ein laufendes Linux zustande. Somit ist Android auch nur eine Linux Distibution. Aber:

    1. Android nutzt für graphische Anwendungen nicht wie alle anderen den X-Server sonder seine eigene Mimik. Daher laufen graphische Linuxanwendungen nicht auf Android.

    2. Android nutzt nicht die uas dem klassischen Unix entwickelte Ordnerhierarchie Filesystem Hierarchy Standard – Wikipedia , sondern eine eigene. Daher finden Linux Programme Dateien die sie brauchen oft nicht.

    3. Fast alle Linux Distributionen sind mit GCC kompiliert und nutzten die gleichen DLL's (dynamic link libs), während Android seinen eigenen hat. Daher läuft die statisch gelinkte Busybox von Raspbian auch auf Android, die dynamisch gelinkte nicht.

    Wenn du also auf Rasbian kompilierte und dynamisch gelinkte binaries unter Android nutzen willst, dann musst du auch die passsenden libs auf Android haben. Du kannst mit ldd schauen welche Libs ein binary will, diese libs können jedoch auch wieder andere nutzen. Bei Android musst du die libs dann irgendwo unterbringen, am besten eine zweite Partition auf der SD und die dann mounten. Auch das binary muss irgendwo hin. Bei meinem Screenshot könnte jemandem auffallen, dass ich ohne root die busybox aus /date/local/tmp aufrufe:) Das geht aber ab 5.0 nicht mehr. Da Android eigentlich alles noexec mounted, wirst du auch für die binaries einen Platz schaffen müssen.

    Statisch gelinkte binaries gehen, aber sind sehr gross. Du solltest ruhig mal eine kompilieren um zu sehen was das ausmacht. Die Raspbian busybox ist z.B. statisch 1,55 MB aber dynamisch nur 0,68 MB gross.

    So, jetzt hab ich dir mal eine Kurzanleitung geschrieben, ich bitte dich dir dann auch die Zeit zu nehmen und hier zu berichten was wie bei dir geklappt hat und was nicht.
     
    Zuletzt von einem Moderator bearbeitet: 10.01.2017
    Oebbler gefällt das.
  17. rudolf, 12.01.2017 #17
    rudolf

    rudolf Android-Lexikon

    @Oebbler

    Hier hat einer genauer beschrieben was ich mit dem chroot Linux meinte:
    Lidroid OS
     
    Oebbler gefällt das.
  18. Oebbler, 12.01.2017 #18
    Oebbler

    Oebbler Threadstarter Fortgeschrittenes Mitglied

    Danke für diese ausfühliche Erklärung!
    Ich habe das jetzt probiert und bemerkt, dass eine normal für Linux kompilierte Busybox tatsächlich ohne Anpassungen auf Android läuft, wenn ich sie statisch kompiliere. Mit ffmpeg ist es zum Glück dasselbe.
    Um das auch starten zu können, habe ich ein init.d-Script erstellt, das die /system-Partition als exec remounted, weil dort diese beiden Binaries sind. Warum trotz des noexec-Flags die Binaries, die im System standardmäßig integriert sind, laufen, verstehe ich allerdings nicht.
     
    Zuletzt von einem Moderator bearbeitet: 12.01.2017
Die Seite wird geladen...
Ähnliche Themen Forum Datum
Android OS gelöscht und Partitionen weg Allgemeines zu Root, Kernel und Custom-Roms Gestern um 18:58 Uhr
Native Linux mit Android Virtualisierung Allgemeines zu Root, Kernel und Custom-Roms Freitag um 14:04 Uhr
LineageOS 15 Pixel Theme Aktivieren Allgemeines zu Root, Kernel und Custom-Roms 11.11.2017
Paranoid Android wird zu Open Source Allgemeines zu Root, Kernel und Custom-Roms 09.08.2017
Entfernen von Submenus in Settings... Allgemeines zu Root, Kernel und Custom-Roms 15.07.2017
Android Partitionen verändern?! Allgemeines zu Root, Kernel und Custom-Roms 30.06.2017
Liste der Geräte die LineageOS 15 (Android 8) bekommen veröffentlicht Allgemeines zu Root, Kernel und Custom-Roms 28.05.2017
Adblocker für Android 7.1.2 gesucht Allgemeines zu Root, Kernel und Custom-Roms 13.05.2017
Geht bestehender Root (Android 6) beim Wechsel auf Lineage OS verloren? Allgemeines zu Root, Kernel und Custom-Roms 20.04.2017
Was kann alles beim Root schiefgehen? Allgemeines zu Root, Kernel und Custom-Roms 13.04.2017

Benutzer fanden diese Seite durch die Suche nach:

  1. termux wiki

    ,
  2. termux kann meine compilierten programme nicht ausführen

Du betrachtest das Thema "Linux-Binaries auf Android ausführen" im Forum "Allgemeines zu Root, Kernel und Custom-Roms",