Event:2019/02/18 Android intern

Aus k4cg.org
Version vom 19. März 2019, 16:15 Uhr von Schabi (Diskussion | Beiträge) (noch ne post enderung)

Datum: 18. Februar 2019

Einlass: 19 Uhr

Beginn: 19:30 Uhr

Vortragende(r): Schabi

Wichtige pfade

/system System Verzeichnis (read only), hier liegen alle Android wichtigen System Dateien.
/vendor Ähnlich wie /system, allerdings liegen hier die Phone/Hersteller abhängigen System Dateien.
/data Hier liegen alle für die Benutzung wichtigen Dateien bsp. Apps und deren Heimverzeichnisse.
/firmware Hier liegt die Firmware des Smartphones
/storage Hier sind die externen Sotrages eingebunden.
/storage/emulated/0 Hier liegt der interne frei verwendbare speicher des 0ten Android Benutzers.
/storage/4829-2848 In diesem Verzeichnis ist die echte SD-Karte gemountet (nummern des Verzeichnis Namens nur ein Beispiel.
/system/bin Hier liegen die für android wichtigen Programme so wie befehle. Bsp. der dex2ota compiler
/system/xbin Hier liegen auf gerooteten Phones custom befehle. Bsp. Bussybox.
/system/app Hier liegen die von der Android rom mitgelieferten apps.
/system/priv-app Steht für Priviliged apps. Hier liegen Apps die erhöhte rechte haben. Zwar kein root, aber sie dürfen bsp im Hintergrund Apps installieren etc.
/system/media Hier liegen die System Klingeltöne der Bootscreen und weiteres.
/system/framework Hier liegen die .jar Dateien welchen bim Compilen durch dex2ota mit in die App eingebaut werden. (Hier liegt bsp. der App teil von Xposed oder den GSM services
/data/data Hier liegen die Heimverzeichnisse der einzelnen Apps des System Administrators (user 0).
/data/user/ Hier liegen die Heimverzeichnisse der Apps für jeden Android Nutzer. So liegen unter /data/user/10 die

App Heimverzeichnisse der Apps von Nutzer 10. Das Heimverzeichnis des Systemadministrators /data/user/0 ist ein Symlink auf /data/data

/data/app Hier liegen die Executables bsp. die .apk Dateien der vom Nutzer installierten Apps.
/app/app/<app_name-base64foo>/oat/<cpu_architektur>/ Hier liegt die binere ELF Datei welche mit dex2ota aus der app erstellt wurde (base.odex)
/app/app/<app_name-base64foo>/lib/<cpu_architektur>/ Hier liegt der native teil einer app, wenn diese nicht nur in Java sondern auch in C++ mit Hilfe der Android NDK

entwickelt wurde (häufig bei Games). Es handelt sich dabei um .so Dateien die via JNI aufgerufen werden. Hier liegen beispielsweise bei Xamarin die .net vm, oder Qt die eigentliche app.

Wichtige Programme

/system/bin/dex2ota Compiler welcher den android byte code in natieven byte code übersetzt
/system/bin/dalivkvm Dalivk vm die den android byte code (.dex) direkt ausführen kann
/system/bin/pm Android Packetmanager, zum de-/installieren von Apps und anlegen/löschen von android Nutzern
/system/bin/am Android Manager, zum starten von apps, oder um Nachrichten (Intends) an diese zu senden
/system/bin/app_process app_process started die Android Runtime und läd Zygote. Welches als erste task den SystemServer

läd, welcher sich wiederum darum kümmert den Rest der Android Apps zu starten. Mit der letzten app den App Launcher.

/init Android Init befehl
/system/bin/sm Disk managmenet.
/system/bin/svc Funk und USB managment.
/system/bin/bmgr

& /system/bin/bu

/system/bin/appops App Berechtigungen hinzufügen entziehen
/system/bin/logcat Zeigt systemlog an

Nützliche Commandos

am start-activity org.schabi.newpipe/.MainActivity Started NewPipe app.
pm install some_app.apk Installiert eine apk
pm uninstall com.package.name Deinstalliert ein packet
pm create-user schabi Erstellt neuen Nutzer mit dem Namen schabi
pm remove-user 10 Löscht Nutzer mit der id 10
svc wifi off Schaltet Wifi ab
kill main tötet den Approcess und sorgt dafür das die android runtime neustartet.
logcat -C Farblicher output vom Systemlog
bootanimation Bootanimation anzeigen :P


Wichtige Konfig Dateien

/system/build.prop Datei in der die Build configuration des Systems steht.

Ändert man diese kann man z.b. die virtuelle Navigationsleiste ein und ausschalten.

/init.rc Die Init datei die vom /init prozess als erstes aufgerufen wird. Diese Datei

Interludien im Anschluss alle anderen Datei.

/etc/init Hier liegen die meisten anderen init scripte die von /init.rc inkludiert werden
/data/data/<app_name>/shared_prefs Hier liegen die xml Datein der app Einstellungen.
/system/manifest.xml Framework manifest definiert System interfaces bsp für DisplayService und anderes.

Nüzliche apps

Fdroid Freies App repository für andorid. Funktioniert ähnlich wie typische packet repositories für Linux.

Enthält nur OpenSource/Freie Apps.

Kein Root
Termux Terminal app die ein eigenes apt repository mit bringt. Hiermit lassen sich

eine reihe nützlicher Linux Kommandos nachinstallieren

Kein Root
xmouse Kann den Scotty fernsteuern.
Kein Root
Blokada DNS basierter Werbung und Tracking filter. Erlaubt auch einen anderen DNS Server ein zu stellen.

Verwendet die VPN Funktion von Android.

Kein Root
AnLinux Installiert ein Glibc basiertes Linux Environment (bsp. Ubuntu) innerhab des Termux Environments.
Kein Root
XSDL X11 Server für Android
Kein Root
busybox Installiert Busybox und einige andere nützliche commandos in den /system/xbin ordner. Coole comandos sind unter

anderem strace oder ldd

Benötigt Root
Magisk Root tool das unter anderem Su hiding betreiben kann. D.h. Es versteckt su so, das ausgewählte Apps glauben das kein

root auf dem System existiert. (Ist die bei meinem Vortrag semtliche .so und .jar Datein gemountet hat :P, aber keine Angst die app ist open source).

Muss geflascht werden
XPosed Kann via Java Reflection das verhalten von Apps zur laufzeit ändern. Somit lassen sich mods für Apps oder dem System installieren.

Xposed Ist ein framework das sich unter anderem in den /system/framework Ordner installiert.

Muss geflascht werden
Stethox Xposed Module welches ich geschrieben hab. Damit lässt sich reverse enginering auf allen installierten apps anwenden.

VORSICHT! bitte nicht auf dem alltags Gerät benutzen. Reist reisen Sicherheitslücke ins System.

Setzt xposed voraus
Anbox Macht ein Ubuntu basiertes System Android kompartiebel, so das sich die meisten Android Apps darauf ausführen lassen (NewPipe nicht der scheiß).
Leuft eh nicht auf dem Smarthphone