Certified Cloud Developer


Seit meinem Einstieg in die Softwareentwicklung in den 80er-Jahren habe ich mich kontinuierlich in der jeweils aktuellen Technologie bewegt: von Assembler über C++ und Lisp/Common Lisp in den 1980er-Jahren, gefolgt von Java und Python in den 1990er-Jahren, später C# und .NET. Seit 2024 widme ich mich verstärkt wieder der Softwareentwicklung, nun im Kontext von KI-gestützten Systemen.

Als Anthropic-Certified Claude Developer setze ich moderne KI-Entwicklungsmethoden produktiv ein: Aufgaben, die früher Wochen an Entwicklungszeit beansprucht hätten, lassen sich heute in Stunden umsetzen. Aktuelles Beispiel ist Kontor, eine von mir entwickelte Handelsoberfläche mit Claude-API-Anbindung und einem eigenständigen Trader-Agent für KI-gestützte Marktanalyse, inklusive eines öffentlichen Wirtschaftskalenders mit allen Terminen.

Engineering is a Passion


Als System-Engineer (MCITP, CCP-V und AI Fluency & Claude Expert) betreue ich Netzwerkinfrastrukturen, führe Planungen durch, schule Mitarbeiter und führe Migrationen von Netzwerk, Server- als auch Client Infrastrukturen bis zum mittleren Enterprise Umfeld durch. Mein Aufgabengebiet umfasste der IT Support von mittelständischen Unternehmen als auch die Umsetzung von Projekten in Server und Clientnetzwerken unter den Betriebssystemen Microsoft, Mac OS und Linux resp. den Hypervisoren VMware, Hyper V und Citrix.

Mein Knowhow und Wissen sammelte ich in Projekten im Bereich öffentlicher und privater Auftraggeber.

 

MacroDroid auf dem Android-Tablet per ADB einrichten und steuern

Blog · 24.10.2026
BLG-1459-ch-de

MacroDroid ist eine Automatisierungs-App für Android mit über 350 Bausteinen aus Auslösern, Aktionen und Bedingungen. Der Artikel zeigt, wie du sie auf einem Tablet per ADB einrichtest: Installation, Sonderrechte mit pm grant, Ausnahme von der Akku-Optimierung, Makros von aussen per Webhook, lokalem HTTP-Server oder Intent starten und Makro-Dateien auf mehrere Geräte verteilen. Dazu kommen Vorschläge für ein Kiosk-Tablet (morgens Bildschirm an, nachts dimmen, nach dem Neustart die Kiosk-App) und ein Skript, das ein Mensch oder ein KI-Agent mit denselben Befehlen wiederholt ausführt. Im Text steht auch, was die Hersteller-Dokumentation belegt und was offen bleibt.

Zwei Hände halten ein Tablet mit Smart-Home-Symbolen vor einem Haus in der Abenddämmerung (Symbolfoto zu Automatisierung)
MacroDroid
per ADB steuern.
Foto: geralt / Pixabay

Mit 5 Makros und einem Befehl läuft ein Kiosk-Tablet von selbst. Ein Skript wiederholt die Einrichtung auf jedem weiteren Gerät, ob du es selbst ausführst oder einem KI-Agenten überlässt.

Dieser Artikel gehört zur Reihe „Android-Tablet per ADB“. Teil 1 zeigt den Nova Launcher, Teil 3 Shizuku.

Das Wichtigste in Kürze

  • Die kostenlose Version hat fünf Makros und Werbung. Laut Hersteller entfernt ein einmaliger Pro-Kauf beides, der Webhook-Auslöser funktioniert schon in der Gratisversion.
  • Ein einziger Befehl schaltet die Sonderrechte frei. pm grant … WRITE_SECURE_SETTINGS ersetzt die Handarbeit und überlebt Neustarts, nicht aber eine Neuinstallation.
  • Der Webhook trägt Aufträge aus dem Netz aufs Tablet. Eine URL mit Geräte-ID löst ein Makro aus, auch von einem Skript oder einem KI-Agenten.
  • Makros reisen als Datei. Die Wiki kennt .macro für ein einzelnes und .mdr für eine vollständige Sicherung, der Import per Aktion läuft ohne Bedienung.
  • Die Akku-Optimierung bleibt der häufigste Grund für Ausfälle. Nimm die App aus ihr heraus, sonst feuern Makros verspätet oder gar nicht.

Was MacroDroid ist

MacroDroid automatisiert Aufgaben auf Android. Dabei besteht ein Makro aus drei Teilen: dem Auslöser (Trigger), der es startet, den Aktionen, die nacheinander laufen, und optionalen Bedingungen (Constraints), die den Lauf einschränken. Ein Auslöser kann die Uhrzeit sein, ein Neustart oder ein Aufruf aus dem Netz. Eine Aktion schaltet etwa den Bildschirm ein, setzt die Helligkeit oder startet eine App.

Zudem nennt der Hersteller auf macrodroid.com über 350 eingebaute Auslöser, Aktionen und Bedingungen sowie über 30 Millionen Downloads. Die Hilfeseiten stehen in der MacroDroid-Wiki. Dort steht auch, was die beiden Varianten unterscheidet: Die kostenlose Version sei voll funktionsfähig, auf fünf Makros begrenzt und zeige Werbung. Ein einmaliger Pro-Kauf hebt Grenze samt Anzeigen auf und schaltet Zusätze frei, etwa die Cloud-Sicherung und das Hochladen eigener Vorlagen. Das Paket heisst com.arlosoft.macrodroid, wie die Play-Store-Seite in der Adresse zeigt. Die Seite meldet „Contains ads“, In-App-Käufe und 10 Mio.+ Downloads (abgerufen am 24. Oktober 2026).

So reichen fünf Makros für ein Tablet mit einer Aufgabe. Wer mehr braucht oder eine Anzeige ohne Banner will, kommt um Pro nicht herum. Einen Preis nenne ich nicht, ihn zeigt der Store.

Das brauchst du

Auf dem Rechner läuft adb aus den Android-Plattform-Tools, und auf dem Tablet sind die Entwickleroptionen mit USB-Debugging oder Wireless Debugging aktiv. Wie du ADB koppelst und absicherst, steht im Artikel ADB erklärt, Teil 1. Die ADB-Dokumentation beschreibt adb pair für die Kopplung per Funk ab Android 11.

adb pair <ip>:<koppel-port>
adb connect <ip>:<port>
adb devices

Die Ausgabe von adb devices muss das Gerät als device zeigen. Steht dort unauthorized, bestätigst du die Freigabe auf dem Tablet.

MacroDroid installieren

Am bequemsten öffnest du die Play-Store-Seite per ADB direkt auf dem Tablet:

adb shell am start -a android.intent.action.VIEW -d "market://details?id=com.arlosoft.macrodroid"

Die Bestätigung im Store tippst du auf dem Gerät. Wer eine APK-Datei besitzt, installiert sie mit adb install -r macrodroid.apk. Nimm eine APK nur aus einer Quelle, der du vertraust. Ob die Hersteller-Seite selbst eine APK zum Download anbietet, habe ich nicht gefunden.

Danach prüfst du, ob das Paket vorhanden ist:

adb shell pm list packages com.arlosoft.macrodroid

Rechte per ADB statt Klickerei

Android reserviert einige Berechtigungen für Systemapps. Deshalb tauchen sie in keinem Dialog auf, doch ADB darf sie einer bestimmten App erteilen. Die Wiki-Seite ADB Hack des Herstellers nennt das einen Spitznamen für ein offiziell unterstütztes Verfahren, weil die App über ein Entwicklerwerkzeug zu ihren Rechten kommt und ohne Root auskommt. Die fünf Befehle, die auch der Dialog in der App anzeigt, lauten:

adb shell pm grant com.arlosoft.macrodroid android.permission.WRITE_SECURE_SETTINGS
adb shell pm grant com.arlosoft.macrodroid android.permission.READ_LOGS
adb shell pm grant com.arlosoft.macrodroid android.permission.SET_VOLUME_KEY_LONG_PRESS_LISTENER
adb shell pm grant com.arlosoft.macrodroid android.permission.CHANGE_CONFIGURATION
adb shell pm grant com.arlosoft.macrodroid android.permission.DUMP

Dabei brauchst du nur die Rechte, die deine Automatik benötigt. Welches Recht wofür gilt, listet die Wiki-Seite:

Recht Schaltet frei (Auswahl) Bemerkung
WRITE_SECURE_SETTINGS Flugmodus, mobile Daten, Akkusparmodus, dunkles Design, System-Einstellung (Secure und Global) Das wichtigste Recht, alle anderen sind optional
READ_LOGS Auslöser „Logcat Message“, Zwischenablage per Logcat Nur für Makros, die auf das Systemprotokoll reagieren
CHANGE_CONFIGURATION Aktion „Set language“ Für Kioske mit wechselnder Sprache
DUMP Aktion „Demo Mode“ (zusammen mit WRITE_SECURE_SETTINGS) Selten nötig
SET_VOLUME_KEY_LONG_PRESS_LISTENER Auslöser „Volume Button Long Press“ Nur mit Hardware-Tasten sinnvoll

So gibt ein erfolgreicher Befehl nichts aus. Die Prüfung läuft über das Paket:

adb shell dumpsys package com.arlosoft.macrodroid | grep "WRITE_SECURE_SETTINGS: granted"

Steht dort granted=true, hat es geklappt. Laut Wiki speichert die Android-Paketverwaltung das Recht, es überlebt also Neustarts und normale Updates. Eine Neuinstallation oder das Löschen der App-Daten entfernt es. Mit pm revoke statt pm grant nimmst du es zurück. Dass ADB diese Rechte vergeben darf, liegt am Manifest der Shell im Android-Quelltext. Es führt WRITE_SECURE_SETTINGS, READ_LOGS, DUMP und CHANGE_CONFIGURATION auf. Die AOSP-Hilfe des Paketmanagers beschreibt grant und revoke mit PACKAGE PERMISSION.

Daneben führen zwei Wege am Computer vorbei. Auf gerooteten Geräten erteilt MacroDroid das Recht selbst. Ist Shizuku installiert, bietet der Dialog zusätzlich „Grant with Shizuku“ an. Die Funktionsweise erklärt Teil 3 der Reihe.

Akku-Optimierung ausnehmen

Dazu bremst Android Apps im Hintergrund aus. Die Fehlersuche der MacroDroid-Wiki nennt die Optimierung als erste Ursache für Makros, die nicht oder zu spät feuern. In den App-Einstellungen führt die Option „Ignore Battery Optimisations“ zum Systemdialog. Per ADB gibt es den Weg über den Doze-Dienst:

adb shell dumpsys deviceidle whitelist +com.arlosoft.macrodroid
adb shell dumpsys deviceidle whitelist

Dabei nimmt der erste Befehl das Paket in die Ausnahmeliste auf, der zweite zeigt die Liste. Die Hilfe im Quelltext des Doze-Dienstes beschreibt whitelist [package ...]: Ein vorangestelltes Plus fügt Pakete hinzu, ein Minus entfernt sie. Die Android-Seite zu Doze und App Standby listet nur force-idle und unforce. Den Weg über whitelist ist deshalb Quelltext-Wissen und keine zugesagte Schnittstelle. Hersteller wie Samsung bauen eigene Stromsparer ein, die ADB nicht kennt. Prüfe dort die „Issues Identified“-Liste in der Fehlersuche der App.

Makros von aussen auslösen

So sind für ein Tablet im Netz drei Wege interessant. Alle starten ein Makro, das du vorher mit dem passenden Auslöser angelegt hast.

Weg Reichweite Voraussetzung Belegt
Webhook (URL) Internet, von überall Google-Play-Dienste, Internetverbindung Wiki, auch in der Gratisversion
HTTP Server Request nur dasselbe Netz Geräteadresse im LAN, Port 8080 vorgegeben Wiki
Intent Received Broadcast auf dem Gerät Aktion als Text, zum Beispiel per am broadcast Auslöser im Wiki, ADB-Aufruf nicht

Webhook. Die Wiki-Seite Webhooks beschreibt das Format https://trigger.macrodroid.com/[Geräte-ID]/[Kennung]. Den zweiten Teil wählst du selbst. Ruft jemand die URL auf, schickt der Server des Herstellers eine Push-Nachricht über Firebase Cloud Messaging an das Gerät, und das Makro startet. Per Query-Parameter setzt du Variablen, etwa ?message=Hallo. Die Variable muss vorher existieren. Aus einem Skript heraus genügt ein Aufruf:

curl "https://trigger.macrodroid.com/<geraete-id>/kiosk_an?modus=tag"

Behandle die URL wie ein Passwort. Wer sie kennt, kann das Makro starten. Die Wiki-Seite nennt dafür zwei Schutzmassnahmen: eine Positivliste für IP-Adressen und eine für Variablen. Die Geräte-ID ändert sich nach einer Neuinstallation oder nach dem Löschen der App-Daten, alte URLs laufen dann ins Leere. Das Webhook-Tutorial Trigger Your Phone from Anywhere baut ein vollständiges Beispiel auf.

Deshalb ist das für einen KI-Agenten der sauberste Weg. Er erhält statt einer ADB-Verbindung eine Handvoll URLs mit klarer Bedeutung: tag_modus, nacht_modus, kiosk_start. Mehr kann er nicht, und das Tablet entscheidet selbst, was dahinter passiert. Die Variante „Webhook (with response)“ liefert eine Antwort zurück, braucht aber Pro und hat eine Rate-Grenze von höchstens einem Aufruf pro Minute im Dauerbetrieb.

HTTP Server Request. Der Auslöser startet einen kleinen Webserver auf dem Tablet, laut Wiki standardmässig auf Port 8080. Er funktioniert ohne Google-Dienste, ist aber nur im selben Netz erreichbar. Vergibt der Router die Adresse per DHCP neu, ändert sich auch die URL. Eine feste Zuteilung hilft.

Broadcast. Der Auslöser Intent Received wartet auf einen Broadcast mit einer frei wählbaren Aktion und kann Extras in Variablen speichern. Auf der ADB-Seite sendet am broadcast ihn, wie der AOSP-Quelltext des Activity Managers belegt:

adb shell am broadcast -a de.beispiel.kiosk.START --es modus tag

Allerdings beschreibt die Wiki das Zusammenspiel beider Hälften nicht ausdrücklich für ADB, und ich habe es auf dem Tablet auch nicht getestet. Die Aktion de.beispiel.kiosk.START ist ein frei erfundener Name. Der Weg ist plausibel, gilt aber als offen, bis du ihn an einem Testgerät ausprobiert hast.

Makros als Datei verteilen

Ein Makro lässt sich laut Wiki-Seite Share macros als .macro-Datei exportieren. Eine Gesamtsicherung heisst .mdr, verschlüsselt .emdr. Variablen, die als geheim markiert sind, leert der Export, Geofence-Zonen bleiben ausgespart. Rechte und Apps reisen nicht mit, das Zielgerät braucht sie selbst. Auch der ADB-Schritt von oben gehört dazu.

Damit gelangt eine einzelne .macro-Datei aufs Tablet, sobald du sie dort öffnest oder in der Export/Import-Kachel wählst. Der Import landet laut Wiki als ungespeichertes Makro im Editor, du bestätigst ihn mit dem Haken. Für eine unbeaufsichtigte Verteilung gibt es die Aktion Import Macros. Sie liest eine .mdr-Datei aus einem Ordner ohne Rückfrage und kennt die Modi „Merge“, „Overwrite by ID“ und „Replace all“. Ein Auslöser „File Changed“ kann den Import starten, sobald eine neue Datei liegt. Damit klappt eine Verteilung in zwei Schritten:

adb push kiosk.mdr /sdcard/Download/
curl "https://trigger.macrodroid.com/<geraete-id>/import_start"

Voraussetzung ist ein Makro auf dem Tablet, das auf import_start hört und Import Macros ausführt, mit Zugriff auf den Ordner. Dieses Anfangsmakro legst du einmal von Hand an. Die Gratisversion lässt höchstens fünf Makros zu. Beim Import ausserhalb der Grenze meldet MacroDroid „Macro limit reached“.

Praxisbeispiele für ein Kiosk-Tablet

Die folgenden Makros sind Vorschläge. Sie stammen aus den Beispielen der Hersteller-Wiki und passen auf ein Tablet, das nur eine Anzeige liefert. Welche Makros auf meinem Tablet laufen, ist unten bewusst nicht aufgeführt.

Morgens: Bildschirm an, Kiosk-App starten.

  • Auslöser: Day/Time, werktags 07:30 (alternativ Webhook kiosk_start)
  • Aktionen: Screen On/Off („Screen On“), danach Launch Application mit dem Paketnamen der Kiosk-App

Hier verlangt Android ab Version 10 das Recht „Display over other apps“, damit MacroDroid Apps aus dem Hintergrund starten darf. Den Paketnamen der Kiosk-App liest du mit pm list packages.

Nachts: dimmen.

  • Auslöser: Day/Time, 22:00
  • Aktion: Brightness mit abgeschalteter Automatik und 10 Prozent

Das ist fast wörtlich das Beispiel der Brightness-Seite. Die Aktion braucht das Recht „Modify System Settings“, ab Android 10 zusätzlich „Display over other apps“. Mit einem zweiten Makro um 06:30 stellst du die Helligkeit zurück.

Nach dem Neustart: Kiosk wieder an.

  • Auslöser: Device Boot
  • Aktionen: Wait Before Next Action (30 Sekunden), danach Launch Application

Die Wiki-Seite zum Boot-Auslöser rät zu dieser Wartezeit und merkt an: Der Auslöser feuert erst nach dem ersten Entsperren. Ein Gerät mit gesetzter Bildschirmsperre bleibt also bis zur ersten Eingabe ruhig. Für ein reines Kiosk-Tablet ohne Sperre ist das unkritisch.

Mit der Keep-Device-Awake-Aktion hältst du den Bildschirm wach. Die Wiki warnt: Wer „Until Disabled“ wählt, muss das Ende selbst auslösen, sonst leert sich der Akku. Den Vorschlag, die Bildschirmzeit bei Bedarf über den Webhook zu verlängern, habe ich nicht gebaut.

Per Skript oder KI-Agent steuern

Die Schritte, die per ADB möglich sind, fasst dieses Skript zusammen. Es prüft vor jedem Schritt den Ist-Zustand und lässt sich deshalb beliebig oft starten:

#!/usr/bin/env bash
set -euo pipefail
GERAET="${1:?Aufruf: macrodroid-einrichten.sh <ip:port>}"
MD=com.arlosoft.macrodroid
A() { adb -s "$GERAET" "$@"; }

adb connect "$GERAET" >/dev/null
A get-state | grep -q device                                       # 1 Gerät erreichbar?
A shell pm list packages "$MD" | grep -q "$MD" || {                # 2 App da?
  A shell am start -a android.intent.action.VIEW -d "market://details?id=$MD"
  echo "MacroDroid fehlt: im Play Store auf Installieren tippen, dann erneut starten." >&2
  exit 1
}
A shell dumpsys package "$MD" | grep -q "WRITE_SECURE_SETTINGS: granted=true" \
  || A shell pm grant "$MD" android.permission.WRITE_SECURE_SETTINGS   # 3 Sonderrecht
A shell dumpsys deviceidle whitelist | grep -q "$MD" \
  || A shell dumpsys deviceidle whitelist "+$MD"                       # 4 Akku-Ausnahme
A push kiosk.mdr /sdcard/Download/                                 # 5 Makro-Sicherung bereitlegen
A shell am start -W -a android.intent.action.MAIN \
  -c android.intent.category.LAUNCHER -p "$MD"                     # 6 App öffnen

Ein KI-Agent arbeitet nach demselben Muster wie du. Er liest die Ausgabe jedes Befehls und entscheidet danach. Drei Regeln halten das sicher. Er erhält nur ein benanntes Gerät und nur die Befehle des Skripts. Root-Rechte und Geräte-ID ausserhalb der freigegebenen Webhooks bleiben bei dir. Und jeder Schritt prüft zuerst, ob er nötig ist.

Der Agent nutzt zwei Mittel: den Webhook-Aufruf für den Betrieb und das Skript für die Einrichtung. Ich habe es aus den dokumentierten Befehlen dieses Artikels zusammengestellt und nicht als Ganzes ausgeführt. Teste es zuerst an einem Gerät, das du verlieren kannst.

Zwei Schritte bleiben beim Menschen: das Tippen auf „Installieren“ und das Anlegen des Makros mit dem Webhook-Auslöser, denn nur die App selbst vergibt die Geräte-ID.

Meine Erfahrung

Ich betreibe zwei Samsung-Galaxy-Tablets im Heimnetz: ein Galaxy Tab A11 als Kiosk für Trading-Charts und ein älteres Modell (SM-T395). Beide richte ich per ADB über WLAN vom Mac aus ein. MacroDroid und der Nova Launcher sind auf beiden Tablets installiert.

Auf dem Tab A11 (SM-X230, Android 16) habe ich am 24. Oktober 2026 nachgesehen, was ADB dazu meldet. MacroDroid läuft dort in Version 6.0.11, das Recht WRITE_SECURE_SETTINGS steht auf granted=true, und das Paket steht auf der Doze-Ausnahmeliste. Von den fünf Rechten aus der Wiki hat nur dieses eine den Status „erteilt“. Auch die Shizuku-Schnittstelle von MacroDroid ist dort freigegeben. Der Befehl pm grant aus diesem Artikel ist auf dem Gerät also der Weg, den es nutzt.

Welche Makros dort laufen, kann ich per ADB nicht zuverlässig auslesen, und ich habe sie für diesen Artikel nicht dokumentiert. Die Beispiele oben sind deshalb Vorschläge aus der Hersteller-Wiki. Den Webhook, den am broadcast-Aufruf und das Skript habe ich nicht gemeinsam durchgespielt.

Einordnung: Was das für Admins und Kioskgeräte heisst

Für ein bis zehn Tablets ist MacroDroid mit ADB ein günstiger Weg: Ein Skript erteilt Rechte und Akku-Ausnahme, Makros reisen als Datei, und ein Webhook gibt dem Netz einen klar begrenzten Zugriff. Wer ein Gerät aus der Ferne steuern will, ohne eine ADB-Verbindung offen zu lassen, fährt mit dem Webhook besser, weil das Tablet jeden Auftrag selbst ausführt. Zwei Grenzen bleiben. Die Gratisversion deckelt bei fünf Makros und zeigt Werbung, ein Kiosk mit mehreren Aufgaben braucht also Pro. Und der Webhook läuft über Google-Dienste und den Server des Herstellers, was für ein internes Netz ohne Internet nicht passt, dort hilft der lokale HTTP-Server. Ab einer niedrigen zweistelligen Zahl von Geräten ist ein Mobile-Device-Management-System der bessere Weg, weil es Richtlinien zentral durchsetzt.

Fazit

MacroDroid lässt sich auf dem Tablet mit wenigen ADB-Befehlen einrichten: installieren, WRITE_SECURE_SETTINGS erteilen und die Akku-Optimierung ausnehmen. Makros startest du von aussen per Webhook, im lokalen Netz per HTTP-Server, und der Intent-Weg bleibt bis zu einem Test offen. Mit einer .mdr-Datei und der Import-Aktion verteilst du Makros auf mehrere Geräte. Das Skript wiederholt die Einrichtung für Mensch und KI-Agent. Als Nächstes zeigt Teil 3: Shizuku, wie Apps ADB-Rechte ohne Computer bekommen.

Quellen: macrodroid.com, MacroDroid-Wiki: Overview, ADB Hack, Webhooks, Troubleshooting, Share macros, Google Play, ADB-Dokumentation, Doze und App Standby, AOSP: Activity Manager. Stand: 24. Oktober 2026.

Geschrieben von · So arbeitet die Redaktion

Änderungshistorie

  • — Artikel veröffentlicht.