(last edit: 2019-07-08)
Linux-Rechner mit passendem USB-Kabel
# apt-get install adb
Achtung! Dazu muß der user Mitglied der Gruppe plugdev sein
# usermod -aG plugdev $LOGNAME
Anm.: $LOGNAME ist einfach der username, z.B. franz. - Kontrolle danach mit:
# id franz
Alle Gruppen, wo franz dabei ist, werden aufgelistet.
Sehr nützlich für Rettung und Debugging.
ACHTUNG! Der adb-Daemon sollte mit root-Rechten durch ein initscript gestartet werden:
/etc/init.d/adb: adb_initscript.tgz
ACHTUNG! Erst einmal ...
http://wiki.debian.org/LSBInitScripts und dann http://www.unix.com/man-page/Linux/8/insserv/ lesen & verstehen.
Der Kommentarheader im Initscript muß LSB-Anforderungen entsprechen.
Das tool „insserv“ legt dann die gewünschten Start- und Kill-Links in den /etc/rcx-Verzeichnisen an.
Trockenlauf:
# cd /etc/init.d; insserv -vn ./adb
Wenn Trockenlauf ok:
# cd /etc/init.d; insserv -v ./adb; ./adb start
Wenn alles funktioniert, kann nun ein normaler User ..
$ adb devices
.. aufrufen und sieht dann etwa das:
List of devices attached CSE_P729V device
Oder …
adb get-serialno
CSE_P729V
Sehr brauchbar auch:
adb shell
Offizielle Doku zu adb: http://developer.android.com/guide/developing/tools/adb.html
Aus dem SDK-Bundle zu rippen, es läuft auch standalone und kann u.a. benützt werden, um obskuren *.apk - Files Infos über ihren Inhalt zu entlocken.
$ aapt d badging "unknown.apk" | grep -Ev "label|icon|densit|main|other"
Damit die obige commandline in mc.ext (Extension-File des Midnight Commander) gute Dienste leisten kann, muß man Filenamen, die Whitespaces enthalten, mit sed nacharbeiten.
Der mc übergibt nämlich den Filenamen „my file.txt“ als „my\ file.txt“ an die Variable %f. Lösung für mc.ext daher wie folgt:
# *.apk regex/\.apk$ Open=%cd %p/uzip:// View=%view{ascii} aapt d badging "`echo "%f" | sed 's/\\\//g'`" | grep -Ev "label|icon|densit|main|other"
Oft findet man Apps mit Namen, die Herkunft oder Inhalt verschweigen.
Dieses Bash-script renamed solche Apps trickreich.
#!/bin/bash ################################################################### # # RenOrigApk: # Batch renaming for Android apps which lost their real name # # V0.02 by koarrl 2014-02-14 (Status: testing) # ################################################################### if [ -z "`which aapt`" ]; then echo aapt utility not found! echo This tool is provided by adt-bundle-linux-xxx/sdk/build-tools/.. echo Get it from http://developer.android.com/sdk/index.html exit 0 fi [ -d OLD ] || mkdir OLD # This strange construct below replaces the bash "for loop" .. # .. when filenames with blanks can be expected. # Thanks to Benjamin Schmidt & www.cyberciti.biz find *.apk | while read APKOLD do INFO=`aapt d badging "$APKOLD" | grep "package:"` PNAME=`echo $INFO|cut -d\' -f2` PVERS=`echo $INFO|cut -d\' -f6` # unnecesssary: # PVCOD=`echo $INFO|cut -d\' -f4` # APKNEW=$PNAME-$PVERS"("$PVCOD").apk" # better: truncate nnn.nn-blaaaaaah version strings SVERS=`echo $PVERS|cut -d- -f1` APKNEW=$PNAME"-"$SVERS".apk" if [ "$APKOLD" != "$APKNEW" ]; then cp "$APKOLD" "$APKNEW" mv "$APKOLD" OLD fi done
Bei Cyanogen sind schon einige apps beigepackt, alles Google-bezogene kommt aus legalen Gründen extra
Installation der Google-Apps (warum? siehe oben)
Advanced Task Killer Android System Info Blade Checker Dolphin Browser HashDroid Maverick: GPS Navigation NoTelURL RealCalc Samba Filesharing for Android (root required) Schneller Notizblock SENA BTerm Bluetooth Terminal TuneInRadio WiFi Manager Yaffs Explorer (root required)
ANMERKUNG 1: Die im Google-Extrapaket beigepackte Market-app ist bewußt und trickreich eine alte Version, die nicht upgedatet wird
ANMERKUNG 2: Die Einstellung "Installation von Nicht-Market-Anwendungen zulassen" muß NICHT angekreuzt werden, weil auch so weitere Pakete obskurer Herkunft per "adb install something.apk" installiert werden können.
ANMERKUNG 3: Bekanntlich kennt Google unsere geheimsten Wünsche und alle je getätigten app-Downloads, siehe ...
AdFree (feines Werbefilter, root required)
http://adfree.bigtincan.com/adfree.apk
Nativnux Installer (Midnight Commander, root required)) Es wird empfohlen, diesen mc per ssh-Zugang zu starten, "adb shell" geht aber genauso!
http://hex.ro/tracker/EasyTracker.php?id=45, siehe auch hier: http://forum.xda-developers.com/showthread.php?t=1243699
Kontakte synchronisieren (sofern man Google seine Kontaktliste übermittelt hat) Diese Liste läßt sich über das Gmail-Webinterface jedenfalls schön editieren bzw. zusammenführen. Paranoiker und Terroristen können stattdessen *.vcf-Files aus der Kontakte-App auf SD-Karte ex- bzw. davon importieren.
WICHTIG! Es entsteht ein Saustall, wenn lokal am Telefon gespeicherte Kontakte mit Googles Liste gemerged werden.
Das Löschen ALLER Kontakte im Telefonspeicher geht so:
„Menü“-„Einstellungen“-„Apps“-„Anwendungen verwalten“-„Alle“-„Kontakte-Speicher“-„Daten löschen“
Und dann neuerlich mit Google und dem NSA-Backupserver synchronisieren, danke im Namen von Freiheit und Demokratie!
Erste Möglichkeit: am lokalen PC einen „ringtones“-Ordner anlegen, dann auf den internen Speicher des Handys kopieren:
$ adb shell # mount -o remount,rw /system # exit
$ adb push ringtones /system/media/audio
$ adb shell # mount -o remount,ro /system # exit
Oder (zweite Möglichkeit, harmloserer Eingriff ins System) alle selbst gesammelten Signaltöne auf die SDcard kopieren, in systematisch benannte Unterordner in /sdcard/media/audio:
& dann:
reboot into recovery -> "advanced" -> "wipe Dalvik cache" -> "reboot recovery" -> "reboot system now" (das dauert länger als üblich, keine Angst ... =8-)
Alle Signaltonfiles werden damit beim Neustart zusamengesucht und scheinen dann im System-Auswahlmenü auf. ACHTUNG! Gleichnamige Files werden doppelt angezeigt, sofern sie an den 2 Speicherorten vorhanden sind.
Zunächst das ADT-Bundle von hier herunterladen (Betriebssystem - je nachdem): http://developer.android.com/sdk/index.html
Das Bundle enthält alle nötigen Dinge (außer dem leidigen adb-Startscript für Linuxer, siehe vorher).
Einfach das adt-bundle-*.zip ins Homedirectory expandieren.
Statt dem gerippten adb-Binary sollte man nun das aktuelle adb aus dem Bundle (in adt-bundle-*/sdk/platform-tools) nach /usr/local/bin kopieren und chown root:root nicht vergessen.
Und nicht vergessen: $PATH auf die …/platform-tools setzen!
Nach Reboot sollte nun der aktuelle adb-Daemon gestartet werden und eigentlich alles funktionieren.
Test auf der Commandline:
user@tux:~/adt-bundle-linux-x86-20130729/sdk$ adb devices List of devices attached CM7-Blade device
Beim Versuch, eine Eigenbau-app via Eclipse auf das reale Device zu installieren, verweigert adb möglicherweise den Zugriff:
user@tux:~/adt-bundle-linux-x86-20130729/sdk$ adb devices List of devices attached ???????????? no permissions
Abhilfen (ohne Erfolgsgarantie):
Wirksam, aber *igitt* … Berechtigungen von adb ändern auf suid-root:
-rwsrwx--- 1 root user 1231286 Jul 25 22:58 adb