|
|
Zeile 1: |
Zeile 1: |
| '''Datum:''' 18. Februar 2019
| |
|
| |
|
| '''Einlass:''' 19 Uhr
| |
|
| |
| '''Beginn:''' 19:30 Uhr
| |
|
| |
| '''Vortragende(r): [[Benutzer:Schabi|Schabi]]'''
| |
|
| |
| === Wichtige pfade ===
| |
|
| |
| {| class="wikitable"
| |
| | /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 <code>/data/user/10</code> die
| |
| App Heimverzeichnisse der Apps von Nutzer 10. Das Heimverzeichnis des Systemadministrators <code>/data/user/0</code>
| |
| ist ein Symlink auf <code>/data/data</code>
| |
| |-
| |
| | /data/app
| |
| | Hier liegen die Executables bsp. die .apk Dateien der vom Nutzer installierten Apps.
| |
| |-
| |
| | /data/app/<app_name-base64foo>/oat/<cpu_architektur>/
| |
| | Hier liegt die binere ELF Datei welche mit dex2ota aus der app erstellt wurde (base.odex)
| |
| |-
| |
| | /data/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 [https://developer.android.com/ndk NDK]
| |
| entwickelt wurde (häufig bei Games). Es handelt sich dabei um .so Dateien die via [http://openbook.rheinwerk-verlag.de/java7/1507_21_001.html JNI] aufgerufen werden.
| |
| Hier liegen beispielsweise bei [https://visualstudio.microsoft.com/de/xamarin/ Xamarin] die .net vm, oder Qt die eigentliche app.
| |
| |}
| |
|
| |
| === Wichtige Programme ===
| |
| {| class="wikitable"
| |
| | [https://source.android.com/devices/tech/dalvik/configure /system/bin/dex2ota]
| |
| | Compiler welcher den android byte code in natieven byte code übersetzt
| |
| |-
| |
| | [https://elinux.org/Android_Dalvik_VM /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
| |
| |-
| |
| | [https://elinux.org/Android_Zygote_Startup /system/bin/app_process]
| |
| | app_process started die Android Runtime und läd Zygote. Welches als erste task den [https://android.googlesource.com/platform/frameworks/base/+/7d276c3/services/java/com/android/server/SystemServer.java SystemServer]
| |
| läd, welcher sich wiederum darum kümmert den Rest der Android Apps zu starten.
| |
| |-
| |
| | /init
| |
| | Android Init befehl
| |
| |-
| |
| | /system/bin/sm
| |
| | Disk managmenet.
| |
| |-
| |
| | /system/bin/svc
| |
| | Funk und USB managment.
| |
| |-
| |
| | /system/bin/bmgr
| |
| & /system/bin/bu
| |
| | Android backup manager
| |
| |-
| |
| | /system/bin/appops
| |
| | App Berechtigungen hinzufügen entziehen
| |
| |-
| |
| | /system/bin/logcat
| |
| | Zeigt systemlog an
| |
| |-
| |
| | /system/bin/cmd
| |
| | Schweizer Taschenmesser für Komandozeilen Benutzung.
| |
| |}
| |
|
| |
| Weiter Programme können [https://android.googlesource.com/platform/frameworks/base/+/ebed7d6e35f7f960e6e6add2b8ab7c7a31a511c3/cmds heier] gefunden werden.
| |
|
| |
| === Nützliche Commandos ===
| |
|
| |
| {| class="wikitable"
| |
| | <code>am start-activity org.schabi.newpipe/.MainActivity</code>
| |
| | Started NewPipe app.
| |
| |-
| |
| | <code>pm install some_app.apk</code>
| |
| | Installiert eine apk
| |
| |-
| |
| | <code>pm uninstall com.package.name</code>
| |
| | Deinstalliert ein packet
| |
| |-
| |
| | <code>pm create-user schabi</code>
| |
| | Erstellt neuen Nutzer mit dem Namen schabi
| |
| |-
| |
| | <code>pm remove-user 10</code>
| |
| | Löscht Nutzer mit der id 10
| |
| |-
| |
| | <code>svc wifi off</code>
| |
| | Schaltet Wifi ab
| |
| |-
| |
| | <code>kill main</code>
| |
| | tötet den Approcess und sorgt dafür das die Android Runtime neu startet.
| |
| |-
| |
| | <code>logcat -C</code>
| |
| | Farblicher output vom Systemlog
| |
| |-
| |
| | <code>bootanimation</code>
| |
| | Bootanimation anzeigen :P
| |
| |-
| |
| | <code>cmd package compile -m everything org.schabi.newpipe</code>
| |
| | Re compiliert die .odex Datei von NewPipe mit dem Compiler Filter everything
| |
| |-
| |
| | <code>cmd package list packages</code
| |
| | Zeigt alle installierten Packete an.
| |
| |-
| |
| | <code>cmd -l</code>
| |
| | Zeigt eine liste an Kommandos für verschiedene Interfaces an, auf die cmd befehle absetzen kann.
| |
| Leider können nicht alle diese Interfaces verwendet werden, da cmd bei den meisten anzeigt, das keine
| |
| Kommandozeilen Implementierung dafür existiert. Durch komplexes Kommandozeilen getue, und krasses gehacke habe ich
| |
| allerdings diese Liste an funktionierende Interfaces gefunden auf die cmd funktioniert:
| |
| activity
| |
| appops
| |
| autofill
| |
| battery
| |
| deviceidle
| |
| devicestoragemonitor
| |
| gpu
| |
| input
| |
| jobscheduler
| |
| netpolicy
| |
| notification
| |
| otadexopt
| |
| overlay
| |
| package
| |
| power
| |
| settings
| |
| shortcut
| |
| statusbar
| |
| uimode
| |
| user
| |
| vibrator
| |
| webviewupdate
| |
| wifi
| |
| Tippt man <code>cmd <interfacename></code> eine Hilfe davon was man damit tun kann.
| |
| |}
| |
|
| |
|
| |
| === Wichtige Konfig Dateien ===
| |
|
| |
| {| class="wikitable"
| |
| | /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.
| |
| |-
| |
| | [https://source.android.com/devices/architecture/vintf/objects#framework-manifest-file /system/manifest.xml]
| |
| | Framework manifest definiert System interfaces bsp für DisplayService und anderes.
| |
| |}
| |
|
| |
| === Nüzliche apps ===
| |
| {| class="wikitable"
| |
| | [https://f-droid.org Fdroid]
| |
| | Freies App repository für andorid. Funktioniert ähnlich wie typische packet repositories für Linux.
| |
| Enthält nur OpenSource/Freie Apps.
| |
| |<pre style="color: green">Kein Root</pre>
| |
| |-
| |
| | [https://f-droid.org/de/packages/com.termux/ Termux]
| |
| | Terminal app die ein eigenes apt repository mit bringt. Hiermit lassen sich
| |
| eine reihe nützlicher Linux Kommandos nachinstallieren
| |
| | <pre style="color: green">Kein Root</pre>
| |
| |-
| |
| | [https://search.f-droid.org/?q=xmouse&lang=de xmouse]
| |
| | Kann den Scotty fernsteuern.
| |
| |<pre style="color: green">Kein Root</pre>
| |
| |-
| |
| | [https://search.f-droid.org/?q=blokada&lang=de Blokada]
| |
| | DNS basierter Werbung und Tracking filter. Erlaubt auch einen anderen DNS Server ein zu stellen.
| |
| Verwendet die VPN Funktion von Android.
| |
| |<pre style="color: green">Kein Root</pre>
| |
| |-
| |
| | [https://f-droid.org/de/packages/exa.lnx.ae AnLinux]
| |
| | Installiert ein Glibc basiertes Linux Environment (bsp. Ubuntu) innerhab des Termux Environments.
| |
| |<pre style="color: green">Kein Root</pre>
| |
| |-
| |
| | [https://play.google.com/store/apps/details?id=x.org.server XSDL]
| |
| | X11 Server für Android
| |
| | <pre style="color: green">Kein Root</pre>
| |
| |-
| |
| | [https://virtualxposed.com/ Virtual Xposed]
| |
| | Started ein Virtuelles App environment in dem Apps installiert werden können (ja das ist eine app in der apps laufen).
| |
| Auf die in diesem environment laufenden apps kann nun Xposed angewendet werden, obwohl das phone nicht gerootet ist.
| |
| ACHTUNG!!! Die App ist nicht vollkommen frei, und enthält leider einige Tracker. Ich habe sie noch nicht Trackerfrei compiliert bekommen :/
| |
| | <pre style="color: green">Kein Root</pre>
| |
| |-
| |
| | [https://f-droid.org/de/packages/ru.meefik.busybox/ busybox]
| |
| | Installiert Busybox und einige andere nützliche commandos in den /system/xbin ordner. Coole comandos sind unter
| |
| anderem strace oder ldd
| |
| | <pre style="color: yellow">Benötigt Root</pre>
| |
| |-
| |
| | [https://f-droid.org/de/packages/dev.ukanth.ufirewall AFWall+]
| |
| | UI Frontend für IP tables. Damit lassen sich auf gerooteten Geräten Netzwerk Berechtigungen oder der Default DNS für das Mobielfunknetz
| |
| setzen.
| |
| | <pre style="color: yellow">Benötigt Root</pre>
| |
| |-
| |
| | [https://f-droid.org/de/packages/org.adaway Adaway]
| |
| | Kann auf gerooteten geräten die Hosts Datei Überschreien. Damit lassen sich viele Tracker und viel Werbung blockieren.
| |
| | <pre style="color: yellow">Benötigt Root</pre>
| |
| |-
| |
| | [https://magiskmanager.com/ 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).
| |
| |<pre style="color: red">Muss geflascht werden</pre>
| |
| |-
| |
| | [https://f-droid.org/de/packages/de.robv.android.xposed.installer 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.
| |
| |<pre style="color: red">Muss geflascht werden</pre>
| |
| |-
| |
| | [https://f-droid.org/de/packages/org.schabi.stethox/ 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.
| |
| |<pre style="color: yellow">Setzt xposed voraus</pre>
| |
| |-
| |
| | [https://microg.org/ microg]
| |
| | Freie alternative zu den Google play services. Setzt entweder Xposed voraus, kann aber auch mit Tingle installiert werden. Wenn das
| |
| Gerät allerdings Lineage unterstützt empfehle ich die [https://lineage.microg.org/ Preperierte Lineage] Version des Projekts dabei handelt
| |
| es sich um ganz normales Lineage welches von den Servern der Microg Leute noch mal modifiziert wurde.
| |
| |<pre style="color: yellow">Setzt xposed voraus</pre>
| |
| |-
| |
| | [https://anbox.io/ Anbox]
| |
| | Macht ein Ubuntu basiertes System Android kompartiebel, so das sich die meisten Android Apps darauf ausführen lassen (NewPipe nicht der scheiß).
| |
| |<pre style="color: green">Leuft eh nicht auf dem Smarthphone</pre>
| |
| |}
| |