App Manager

Muntashir Al-Islam

image

App Manager

Nutzerhandbuch

v3.0.0-rc01

18 Mai 2022

Copyright © 2020–2022 Muntashir Al-Islam

“Weise und langsam. Wer schnell läuft, der stolpert.” — Bruder Lorenz, Romeo und Julia

1 Einleitung

App Manager ist ein fortschrittlicher Paketmanager für Android. Er bietet zahllose Funktionen und benötigt daher ein Benutzer- handbuch, um seine Benutzer zu unterstützen. Dieses Dokument fungiert als Benutzerhandbuch für App Manager in dem Sinne, dass es darauf abzielt, jede Funktion zu beschreiben, die App Manager zu bieten hat. Dieses Dokument kann auch als “offizieller” Leitfaden für App Manager betrachtet werden und stellt das erwartete Verhalten von App Manager dar. Übersetzungen können dieses Dokument (das in Englisch verfasst ist) falsch interpretieren. Daher sollte jeder befähigte Benutzer die englische Version des Dokuments lesen, um das Beste aus dem App Manager herauszuholen. Es kann auch andere inoffizielle oder Drittanbieter-Ressourcen wie Blog-Artikel, Videos, Chat- Gruppen usw. geben. Diese Ressourcen können zwar für viele Menschen nützlich sein, sind aber möglicherweise nicht auf dem neuesten Stand der aktuellen Version von App Manager. Wenn in App Manager Abweichungen von diesem Dokument festgestellt werden, sollten diese im App Manager Problembehandlung gemeldet werden.

1.1 Fachbegriffe

1.2 Unterstützte Versionen

Derzeit werden die Versionen v2.6.0 (stable) und v3.0.0 (alpha und Debug Versionen) unterstützt. Frühere Versionen von App Manager können Sicherheitslücken enthalten und sollten nicht verwendet werden.

1.3 Offizielle Quellen

1.3.1 Quellen der binären Verteilung

App Manager wird über die folgenden Quellen verbreitet. Inoffizielle Quellen können modifizierte Versionen von App Manager vertreiben, und niemand außer Ihnen ist für die Folgen der Verwendung solcher Distributionen verantwortlich.

  1. Offizielles F-Droid-Repository.1
    Link: https://f-droid.org/packages/io.github.muntashirakon.AppManager

  2. GitHub Repository.
    Normale Veröffentlichungen: https://github.com/MuntashirAkon/AppManager/releases
    Debug-Versionen: https://github.com/MuntashirAkon/AppManager/actions

  3. Telegram.
    Normale Veröffentlichungen: https://t.me/AppManagerChannel
    Debug-Versionen: https://t.me/AppManagerDebug

1.3.3 Übersetzungen

App Manager akzeptiert keine Übersetzungen direkt über Pull-/Merge-Anfragen. Übersetzungen werden automatisiert über Weblate realisiert. Um dem Übersetzungsteam beizutreten, besuchen Sie https://hosted.weblate.org/engage/app-manager/.

1.4 Mitwirkende

Es gibt mehrere Möglichkeiten, wie ein Benutzer einen Beitrag leisten kann, z. B. durch das Erstellen hilfreicher Fragen, die Teilnahme an Diskussionen, die Verbesserung von Dokumentationen und Übersetzungen, das Hinzufügen unbekannter Bibliotheken oder Tracker, die Überprüfung des Quellcodes sowie die Meldung von Sicherheitslücken.

1.4.1 Hinweise zur Erstellung

Bauanleitungen finden Sie in der Datei BUILDING, die sich im Stammverzeichnis des Quellcodes befindet.

1.4.2 Einreichen von Patches

Repositories, die sich an anderen Orten als GitHub befinden, werden derzeit als Spiegel betrachtet. Pull-/Merge-Anfragen, die an diesen Orten eingereicht wurden, werden nicht akzeptiert.2 Stattdessen können Patches (als .patch- Dateien) über E-Mail-Anhänge eingereicht werden. Die Signierung ist eine Voraussetzung. Weitere Informationen finden Sie in der Datei CONTRIBUTING, die sich im Stammverzeichnis des Quellcodes befindet.

Hinweis.

Wenn Sie Patches per E-Mail einreichen, kann die gesamte Konversation in Zukunft öffentlich zugänglich sein. Daher sollten Sie keine persönlich identifizierbaren Informationen (PII) außer Ihrem Namen oder Ihrer E-Mail-Adresse aufführen.

1.5 Spende & Förderung

Eine Spende oder ein Kauf ist keine Voraussetzung für die Nutzung von App Manager. App Manager unterstützt zwar keine Käufe, es können aber Spenden über Open Source Collective an den Entwickler von App Manager gesendet werden.

Open Source Collective ist ein Finanzdienstleister auf der Open Collective-Plattform, der Open-Source-Projekten bei der Verwaltung ihre Finanzen. Derzeit werden Zahlungen per Bankkonten, PayPal, Kredit- oder Debitkarten und Kryptowährungen unterstützt.

Link: https://opencollective.com/muntashir.

Mit der Überweisung von Spenden stimmen die Absender zu, dass sie die Spenden nicht als Druckmittel verwenden, um die von ihnen gewünschten Funktionen zu priorisieren. Für Feature-Anfragen sind keine Belohnungen oder Spenden erforderlich, und sie werden nach den Präferenzen des Entwicklers priorisiert.

App-Manager nimmt alle Angebote für Finanzierungen oder Zuschüsse an. Vertreter der interessierten Organisation können direkt den Entwickler über die in §[sec:Ansprechpartner] angegebenen Optionen kontaktieren.

1.6 Ansprechpartner

Muntashir Al-Islam3
Email: muntashirakon [at] riseup [dot] net
Key Fingerprint: 7bad37c2981e41f8f6abea7f58f0b4f26c346fce
GitHub: https://github.com/MuntashirAkon
Twitter: https://twitter.com/Muntashir

2 Seiten

2.1 Hauptseite

Die Hauptseite listet alle installierten, deinstallierten und gesicherten Anwendungen auf. Ein einfacher Klick auf ein installiertes Anwendungselement öffnet die entsprechende Seite App-Detailseite. Für die deinstallierten Systemanwendungen wird ein Dialogfeld angezeigt, das zur Neuinstallation der Anwendung verwendet werden kann. Mit der Option Sortierung aus den Listenoptionen können die App-Elemente auf verschiedene Weise sortiert und beim Beenden beibehalten werden. Es ist auch möglich, Elemente zu filtern mit Hilfe der Filter Option in den Listenoptionen. Die Filterung ist auch über die Suchleiste mit zusätzlicher Unterstützung für reguläre Ausdrücke möglich..

2.1.1 Stapelverarbeitung

Auf dieser Seite sind auch Stapeloperationen oder Operationen mit mehreren Anwendungen möglich. Der Mehrfachauswahlmodus kann aktiviert werden, indem man auf ein beliebiges Anwendungssymbol klickt oder indem man auf ein beliebiges Element in der Liste lange klickt. Einmal aktiviert, wählt ein einfacher Klick auf ein Listenelement ausgewählt, anstatt die Seite mit den Anwendungsdetails zu öffnen. In diesem Modus befinden sich die Stapeloperationen im Mehrfachauswahlmenü unten auf der Seite. Zu den Operationen gehören:

  • Hinzufügen der ausgewählten Anwendungen zu einem Profil

  • Sicherung, Wiederherstellung oder Löschung der Anwendungen

  • Blockieren der Tracker für die Anwendungen

  • Löschen von Daten oder Cache aus den Anwendungen

  • Aktivieren/Deaktivieren/Zwangsstoppen/Deinstallieren der Anwendungen

  • Exportieren der im App Manager gespeicherten Blockierungsregeln

  • Verhindern von Hintergrundoperationen der Anwendungen (Android 7 und höher)

  • peichern der APK-Dateien in App Manager/apks

  • Einstellen von Netzrichtlinien

Barrierefreiheit.

Nachdem der Mehrfachauswahlmodus aktiviert wurde, ist es möglich, mit der rechten oder linken Taste der Tastatur in das Menü mit der rechten oder linken Taste der Tastatur oder der Fernbedienung zu navigieren.

2.1.2 Farbcode

  • helles gräuliches Orange (Tag) / Dunkelblau (Nacht) – Die Anwendung ist für den Batchbetrieb ausgewählt

  • Hellrot (Tag) / Dunkelrot (Nacht) – Deaktivierte Anwendung

  • Yellow Star – Debuggingfähige Anwendung

  • Orange Datum – Die Anwendung hat Zugriff auf die Systemprotokolle

  • Orange UID – Die Benutzer-ID wird von mehreren Anwendungen gemeinsam genutzt

  • Orange SDK – Die Anwendung verwendet möglicherweise Klartextverkehr (z. B. HTTP)

  • Rot Paketname – Die Anwendung erlaubt keine Löschung ihrer Daten

  • Red backup – Die deinstallierte Anwendung mit einem oder mehreren Backups, die im App Manager

  • Orange backup – Veraltetes Backup, d.h. das Basis-Backup enthält eine ältere Version der installierten Anwendung

  • Dunkles Cyan backup – aktuelles Backup, d.h. Basis-Backup enthält die gleiche oder höhere Version der installierten Anwendung

  • Dark cyan package name – Erzwungener Anwendungsstopp

  • Dark cyan version – Inaktive Anwendung

  • Magenta – Persistente Anwendung, d.h. sie bleibt die ganze Zeit über aktiv.

2.1.3 Anwendungstypen

Eine Anwendung kann entweder eine Benutzer- oder eine System-Anwendung mit den folgenden Suffixen sein:

  • X – Unterstützt mehrere Architekturen

  • 0 – Keine Dex-Dateien in der Anwendung vorhanden

  • ° – Unterbrochene Anwendung

  • # – Die Anwendung hat das System aufgefordert, einen großen Heap, d. h. großen Laufzeitspeicher, zuzuweisen

  • ? – Die Anwendung forderte die virtuelle Maschine auf, in den sicheren Modus zu wechseln.

2.1.4 Infos zur Version

Auf den Versionsnamen folgen die nachstehenden Präfixe:

  • _ – Keine Hardware-Beschleunigung (was die In-App-Animationen oder Transparenzen beeinträchtigt)

  • ~ – Reine Testanwendung

  • debug – Debuggingfähige Anwendung

2.1.5 Menü Optionen

Das Menü Optionen bietet verschiedene Optionen zum Sortieren und Filtern der aufgelisteten Anwendungen sowie zum Navigieren zu verschiedenen Seiten innerhalb oder außerhalb des App Managers.

2.1.5.1 Anleitungen

Durch Klicken auf den Anleitung wird die Offline-Version des App Manager Benutzerhandbuchs geöffnet. Es kann auch die Online-Version öffnen, wenn die entsprechende Funktionsaufteilung, d. h. feat_docs, nicht installiert ist oder wenn kein WebView im System vorhanden ist, um das Handbuch zu laden.

2.1.5.2 Liste der Optionen

Listenoptionen enthalten die Optionen zum Sortieren und Filtern der Liste auf der Hauptseite.

2.1.5.2.1 Sortierung

Die auf der Hauptseite aufgeführten Anwendungen können auf folgende Weise sortiert werden:

  • Benutzeranwendungen zuerst. Die Benutzeranwendungen werden oben aufgelistet

  • App Label. Sortieren Sie die Liste in aufsteigender Reihenfolge nach ihren Anwendungsbezeichnungen (auch bekannt als Anwendungsnamen). Dies ist die Standardsortierpräferenz

  • Paketname. Sortiert die Liste in aufsteigender Reihenfolge nach den Paketnamen

  • Letzte Aktualisierung. Sortieren der Liste in absteigender Reihenfolge nach dem Datum der letzten Aktualisierung

  • Gemeinsame Benutzer-ID. Sortiert die Liste in absteigender Reihenfolge nach der Kernel-Benutzer-ID

  • Ziel-SDK. Sortieren der Liste in aufsteigender Reihenfolge nach dem Ziel-SDK

  • Signatur. Sortieren der Liste in aufsteigender Reihenfolge auf der Grundlage der Signierinformationen

  • Disabled first. Die deaktivierten Anwendungen werden zuoberst aufgeführt

  • Blocked first. Sortieren Sie die Liste in absteigender Reihenfolge nach der Anzahl der blockierten Komponenten jeder Anwendung hat

  • Backed up first. Die Anwendungen mit Sicherungskopien ganz oben anzeigen

  • Tracker. Sortieren Sie die Liste in absteigender Reihenfolge nach der Anzahl der Tracker-Komponenten jeder Anwendung hat

  • Last actions. Sortieren Sie die Liste in absteigender Reihenfolge nach der letzten Zeit und dem Datum der Aktionen, die an den Anwendungen im App Manager vorgenommen wurden.

Darüber hinaus gibt es die Option umgekehrt, die verwendet werden kann, um die Liste in umgekehrter Reihenfolge zu sortieren. Unabhängig von der Sortiereinstellungen werden die Anwendungen zunächst alphabetisch sortiert, um zufällige Sortierergebnisse zu vermeiden.

2.1.5.2.2 Filter

Die auf der Hauptseite aufgeführten Anwendungen können auf folgende Weise gefiltert werden:

  • Benutzeranwendungen. Nur die Benutzeranwendungen auflisten

  • Systemanwendungen. Nur die Systemanwendungen auflisten

  • Deaktivierte Anwendungen. Nur die deaktivierten Anwendungen auflisten

  • Anwendungen mit Regeln. Auflisten der Anwendungen mit einer oder mehreren Sperrregeln

  • Anwendungen mit Aktivitäten. Auflistung der Anwendungen mit einer oder mehreren Aktivitäten

  • Anwendungen mit Backups. Liste der Anwendungen mit einem oder mehreren Backups

  • Laufende Anwendungen. Auflisten der Anwendungen, die derzeit ausgeführt werden

  • Anwendungen mit Splits. Auflisten der Anwendungen mit einer oder mehreren geteilten APK-Dateien

  • Installierte Anwendungen. Nur die installierten Anwendungen auflisten

  • Deinstallierte Anwendungen. Nur die deinstallierten Anwendungen auflisten

  • Anwendungen ohne Backups. Listet die Anwendungen auf, von denen keine Backups vorhanden sind.

Anders als bei der Sortierung ist es möglich, mehr als eine Filteroption gleichzeitig anzuwenden. Zum Beispiel können die deaktivierten Benutzer- anwendungen aufgelistet werden, indem sowohl Benutzeranwendungen als auch Inaktivierte Anwendungen ausgewählt werden. Dies kann besonders nützlich sein für Batch-Operationen, bei denen das Filtern der Benutzeranwendungen notwendig sein kann, um bestimmte Operationen sicher auszuführen.

2.1.5.2.3 Profilname

Es ist auch möglich, die Anwendungen aufzulisten, die nur in einem Profil vorhanden sind. Dies kann nützlich sein, um bestimmte Vorgänge in einem Profil auszuführen (z. B. die Deinstallation aller Anwendungen in einem Profil), die nicht über die Seite Profile durchgeführt werden können.

2.1.5.3 1-Klick-Operationen

1-Click Ops steht für die Ein-Klick-Operationen. Es öffnet die entsprechende Seite in einer neuen Aktivität.

2.1.5.4 App Nutzung

App-Nutzungsstatistiken wie z. B. Bildschirmzeit, Datennutzung (sowohl mobil als auch Wi-Fi), die Haufigkeit, die eine App geöffnet wurde, können durch Klicken auf die Option App-Nutzung im Menü aufgerufen werden. Es erfordert jedoch die Berechtigung Nutzungszugriff. Dieser Menüpunkt wird nicht aufgeführt, wenn die Nutzungszugriffsfunktion in Einstellungen ausgeschaltet ist.

2.1.5.5 System-Konfiguration

Dieser Menüpunkt öffnet eine neue Seite, auf der verschiedene Systemkonfigurationen, Blacklists/Whitelists, die in Android durch den OEM, dem Hersteller, dem AOSP oder den Magisk-Modulen enthalten sind, angezeigt werden. Dazu ist Root erforderlich. Daher wird dieser Menüpunkt nicht angezeigt, wenn keine Root-Berechtigung für App Manager verfügbar ist.

2.1.5.6 Laufende Apps

Dieser Menüpunkt öffnet eine neue Seite, auf der eine Liste der laufenden Anwendungen oder Prozesse angezeigt wird. Er zeigt auch die aktuelle Speicher- und Cache-Nutzung (falls verfügbar) an. Wenn Root oder ADB für den App Manager nicht verfügbar ist, zeigt er sich nur in den neueren Versionen von Android. Die laufenden Anwendungen oder Prozesse können auf der Ergebnisseite auch zwangsgestoppt oder beendet werden. Ergebnisseite beendet werden. Die Protokolle für die einzelnen Prozess-IDs (PIDs) können auch im Log-Betrachter eingesehen werden. Darüber hinaus ist es möglich, Stapelverarbeitungsvorgänge auszuführen, indem Sie auf das Symbol klicken oder einen Langklick auf ein Element. Ein normaler Klick auf ein Element öffnet einen Dialog, in dem detailliertere Informationen angezeigt werden.

2.1.5.7 Profile

Dieser Menüpunkt öffnet die Seite Profile-Seite. Profile sind eine Möglichkeit zur Konfiguration regelmäßig verwendeter Aufgaben. Sie können auch über Tastenkombinationen aufgerufen werden.

2.1.5.8 Log-Anzeige

Dieser Menüpunkt öffnet die Log-Betrachter Seite, die Protokolle mit dem Befehl logcat anzeigen und verwalten kann. Unter Standardmäßig kann diese Seite nur die Aktivitäten des App Managers anzeigen. Sie kann jedoch Protokolle von allen Prozessen anzeigen Prozesse anzeigen, wenn android.permission.READ_LOGS gewährt wird. Diese Berechtigung wird automatisch erteilt, wenn die aktuelle Betriebsmodus entweder root oder ADB ist.

2.1.5.9 APK-Updater

Wenn die App APK Updater im System installiert ist, kann sie direkt über diesen Menüpunkt geöffnet werden. Die Option bleibt ausgeblendet, wenn die App nicht im System vorhanden ist.

2.1.5.10 Termux

Wenn die App Termux im System installiert ist, kann die laufende Sitzung (oder eine neue Sitzung) direkt über diesen Menüpunkt geöffnet werden. Die Option bleibt ausgeblendet, wenn die App nicht im System vorhanden ist.

2.1.5.11 Einstellungen

Dieser Menüpunkt öffnet die In-App-Hyperref[sec:settings-page]Einstellungsseite.

2.2 App-Detailseite

Die Seite App-Details besteht aus 11 (elf) Registerkarten. Sie beschreibt fast alle Informationen, die eine App haben kann, einschließlich aller Attribute aus dem Manifest, Anwendungsoperationen, Signier- Informationen, Bibliotheken, und so weiter.

2.2.1 Farbcodes

Liste der Hintergrundfarben, die auf dieser Seite verwendet werden, und ihre Bedeutung:

  • Rot (Tag) / Dunkelrot (Nacht) – Kennzeichnet alle App-OPs oder Berechtigungen mit dem Flag "Gefährlich" oder alle im App Manager blockierten Komponenten

  • Hellrot (Tag) / sehr Dunkelrot (Nacht) – Bezeichnet die außerhalb des App Managers deaktivierten Komponenten

    Hinweis.

    Eine Komponente, die als deaktiviert gekennzeichnet ist, bedeutet nicht immer, dass sie vom Benutzer deaktiviert wurde: Sie kann auch vom System deaktiviert werden oder in ihrem Manifest als deaktiviert gekennzeichnet sein. Die Komponenten einer deaktivierten Anwendung werden auch vom System (und App Manager) als deaktiviert betrachtet.

  • Kräftiges Orange (Tag) / sehr dunkles Orange (Nacht) – Bezeichnet die Tracker-Komponenten

  • Zartes Magenta (Tag) / sehr dunkles Violett (Nacht) – Bezeichnet die laufenden Dienste.

2.2.2 Registerkarte App-Info

App Info enthält allgemeine Informationen über eine Anwendung. Außerdem werden hier viele Aktionen aufgelistet, die auf dieser Registerkarte durchgeführt werden können.

2.2.2.1 Allgemeine Informationen

Die folgende Liste ist in der gleichen Reihenfolge wie auf der Registerkarte "App-Info" aufgeführt.

  • Anwendungssymbol Das Anwendungssymbol. Wenn die Anwendung kein Symbol hat, wird das Standardsymbol des Systems angezeigt. Es ist auch möglich, die APK-Signatur über SHA- oder MD5-Summen zu überprüfen, die in der Zwischenablage gespeichert sind, indem Sie einfach darauf klicken.

  • Anwendungskennzeichnung. Das Anwendungslabel oder der Name der Anwendung.

  • Paketname. Der Name des Anwendungspakets. Wenn Sie auf den Namen klicken, wird er in der Zwischenablage gespeichert.

  • Version. Die Anwendungsversion ist in zwei Teile unterteilt. Der erste Teil heißt Versions- name. Das Format dieses Teils variiert, besteht aber häufig aus mehreren durch Punkte getrennten Ganzzahlen. Der zweite Teil wird Versionscode genannt. Er wird von den ersten Klammern umschlossen. Der Versionscode ist eine ganze Zahl, die genutzt wird um zwischen Anwendungsversionen zu unterscheiden (da ein Versionsname für eine Maschine unlesbar sein kann). Generell gilt, hat eine neue Version einer Anwendung einen höheren Versionscode als die alten Versionen. Zum Beispiel, wenn 123 und 125 zwei Versionscodes einer Anwendung sind, kann man sagen, dass die letztere aktueller ist als die erstere weil der Versionscode der letzteren höher ist. Anwendungen, die verschiedene APK-Dateien für dieselbe Version auf verschiedenen Plattformen (Mobilgeräte, Tabs, Desktops usw.) oder Architekturen (32/64 Bit, ARM oder Intel) anbieten, können die Versionsnummern Nummern irreführend sein, da sie oft Präfixe für jede Plattform hinzufügen.

  • Tags. (Auch bekannt als Tag-Clouds) Tags enthalten die grundlegendsten, prägnantesten und nützlichsten Informationen über eine Anwendung, wie z. B..

    • Tracker info. Anzahl der Tracker-Komponenten in der Anwendung (z. B. 5 Tracker) Die Farbe des Tags erscheint orange, wenn die Tracker nicht blockiert sind, und dunkelcyan, wenn sie im App Manager blockiert sind. Ein Klick auf das Tag öffnet ein Dialogfeld mit der Liste der Tracker-Komponenten, die gesperrt oder freigegeben werden können wenn der App Manager über ausreichende Berechtigungen verfügt. Benutzeranwendung oder Systemanwendung. Wenn es sich um eine Systemanwendung handelt, ob die Anwendung eine aktualisierte Version der Systemanwendung ist oder ob die Anwendung systemlos installiert wurde über Magisk installiert wurde.

    • Split APK info. Anzahl der Splits in der APK mit Ausnahme der Basis-APK (z. B. 5 splits). Wenn Sie auf das Tag klicken, wird ein Dialogfeld mit den Informationen über die aufgeteilte APK, wie Typ und Größe, geöffnet.

    • Debuggable. Die Anwendung kann über ADBdebuggt werden. Debuggingfähige Anwendungen können bestimmte Funktionen nutzen, die einer normalen Anwendung nicht zur Verfügung stehen. Auf die Daten der Anwendung kann über ADB zugegriffen werden (z.B. unter Verwendung von run-as command) ohne zusätzliche Berechtigungen.

    • Test only. Die Anwendung ist eine reine Testanwendung. Reine Testanwendungen können bestimmte Funktionen nutzen Funktionen nutzen, die einer normalen Anwendung nicht zur Verfügung stehen. Auf die Daten der Anwendung kann über ADB zugegriffen werden (z. B. unter Verwendung von run-as command) ohne zusätzliche Berechtigungen.

    • Large heap. Die Anwendung hat eine große Heap-Größe angefordert, d.h. es wird mehr Platz im Speicher (RAM) für die dynamische Zuweisung angefordert. Es obliegt dem Betriebssystem zu entscheiden, ob es der Anwendung einen großen Speicherplatz für die Anwendung zugewiesen wird. Der App Manager zum Beispiel fordert eine große Heap-Größe an, weil er eine ganze APK in den Speicher laden muss. APK in den Speicher laden muss, während er eine APK vor Android 8 scannt. Code. Der Anwendung ist kein Code zugeordnet, d. h. es sind keine DEX-Dateien vorhanden. Bei einigen Systemanwendungen kann sich der eigentliche Code an einem anderen Ort befinden.

    • Running. Ein oder mehrere Dienste der Anwendung werden derzeit im Hintergrund ausgeführt. Ein Klick auf auf das Tag öffnet einen Dialog mit der Liste der laufenden Dienste. Durch Anklicken eines beliebigen Dienstes wird dieser in der Protokollanzeige geöffnet Viewer, sofern die Funktion des Log Viewers aktiviert ist. Die Anwendung wird zwangsweise gestoppt. Dies kann jedoch nicht verhindern, dass sie später automatisch später.

    • Disabled. Zeigt an, dass die Anwendung deaktiviert (vor dem Startprogramm verborgen) ist.

    • Suspended. Zeigt an, dass die Anwendung ausgesetzt ist (im Launcher ausgegraut).

    • Hidden. Zeigt an, dass die Anwendung versteckt ist (im Launcher ausgeblendet).

    • MagiskHide. MagiskHide ist aktiviert. Ein Klick auf das Tag öffnet einen Dialog mit der Liste der Prozessen innerhalb der Anwendung, die der MagiskHide-Liste hinzugefügt oder aus ihr entfernt werden können.

    • MagiskDenyList. Die Anwendung ist in MagiskDenyList vorhanden. Ein Klick auf das Tag öffnet einen Dialog mit der Liste der Prozesse innerhalb der Anwendung, die zu MagiskDenyList hinzugefügt oder daraus entfernt werden können. "KeyStore". Die Anwendung hat Elemente im Android KeyStore. Ein Klick auf das Tag öffnet einen Dialog mit allen KeyStore-Dateien, die zur Anwendung gehören.

      Die Anwendung wurde mindestens einmal unter Verwendung von App Manager gesichert. Ein Klick auf das Tag wird ein Dialog geöffnet, der alle verfügbaren Sicherungen zusammen mit den Metadaten enthält.

    • Keine Batterieoptimierung. Die Batterieoptimierung ist für die Anwendung deaktiviert. Es ist möglich ist es möglich, die Akku-Optimierung wieder zu aktivieren, indem Sie auf das Tag klicken.

    • Netzpolitik. Die Netzpolitik (z. B. die Datennutzung im Hintergrund) ist für die Anwendung. Wenn Sie auf das Tag klicken, wird ein Dialogfeld mit den unterstützten Richtlinien für die Plattform zusammen mit den Optionen zu deren Konfiguration.

    • SSAID. Ein Klick auf das Tag öffnet ein Dialogfeld mit der aktuellen SSAID, die der Anwendung zugewiesen ist. Es ist auch möglich, die SSAID bei Bedarf zurückzusetzen/neu zu generieren.

    • SAF. Gibt an, dass der Anwendung der Zugriff auf einen oder mehrere Speicherorte oder Dateien gewährt wurde. Dateien, d. h. URIs, über das Storage Access Framework (SAF). Ein Klick auf das Tag öffnet einen Dialog mit der Liste der gewährten URIs. . Zeigt an, dass die Anwendung möglicherweise von Google signiert ist.

  • Horizontales Aktionsfeld. Ein Aktionspanel mit verschiedenen Aktionen, die für die Anwendung durchgeführt werden können. die Anwendung. Siehe §2.2.2.2 für eine vollständige Liste der hier verfügbaren Aktionen. Zusätzliche Aktionen sind im Menü options menu verfügbar.

  • Pfade & Verzeichnisse. Enthält verschiedene Informationen zu Anwendungspfaden, einschließlich app Verzeichnis (wo sich die APK-Dateien befinden), Datenverzeichnisse (intern, gerätegeschützt und extern), geteilte APK-Verzeichnisse (zusammen mit den Split-Namen), und native JNI-Bibliothek (falls vorhanden). JNI Bibliotheken werden verwendet, um native Codes aufzurufen, die normalerweise in C/C++ geschrieben sind. Die Verwendung einer nativen Bibliothek kann die Anwendung schneller laufen lassen oder einer Anwendung helfen, Bibliotheken von Drittanbietern zu verwenden, die in anderen Sprachen als Java geschrieben wurden, wie in den meisten Spiele. Die Verzeichnisse können über Dateimanager von Drittanbietern geöffnet werden, sofern sie dies unterstützen und über die erforderlichen Die Verzeichnisse können über Dateimanager von Drittanbietern geöffnet werden, sofern sie diese unterstützen und über die erforderlichen Berechtigungen verfügen, indem Sie auf das Startsymbol auf der rechten Seite jedes Verzeichnisses klicken.

  • Datennutzung. Die von der Anwendung verwendete Datenmenge, wie vom Betriebssystem gemeldet. Je nach Android-Version kann dies eine breite Palette von Berechtigungen erfordern, einschließlich Nutzungszugriff und Telefonie Berechtigungen.

  • Storage & Cache. Zeigt Informationen über die Größe der Anwendung (APK-Dateien, optimierte Dateien), Daten und Cache. Bei älteren Geräten wird auch die Größe von externen Daten, Cache, Medien und OBB-Ordnern angezeigt. Dieser Teil bleibt ausgeblendet, wenn auf neueren Geräten die Berechtigung Nutzungszugriff nicht erteilt wird.

  • Weitere Informationen Zeigt weitere Informationen an, wie z. B..

    • SDK. Zeigt Informationen im Zusammenhang mit dem Android SDK an. Es gibt zwei (bei alten Geräten einen) Werte: Max bezeichnet das Ziel-SDK und Min bezeichnet das Mindest-SDK (letzteres ist in alten Geräten nicht verfügbar Geräten nicht verfügbar). Es ist empfehlenswert, Anwendungen mit dem maximalen SDK zu verwenden, das die Plattform derzeit unterstützt, um um sicherzustellen, dass die Anwendung nicht im Kompatibilitätsmodus ausgeführt wird, um datenschutzwidrige Funktionen zu verwenden. SDK wird auch als textbfAPI Level bezeichnet.

    • Flags. Die Anwendungsflags, die zum Zeitpunkt der Erstellung der Anwendung verwendet wurden. Für eine vollständige Liste der Flags und deren Funktion finden Sie auf der Seite offizielle Dokumentation.

    • Date Installed. Das Datum, an dem die Anwendung zum ersten Mal installiert wurde.

    • Date Updated. Das Datum, an dem die Anwendung zuletzt aktualisiert wurde. Dies ist dasselbe wie Date Installed wenn die Anwendung nicht aktualisiert wurde.

    • Installer App. Die Anwendung, die diese Anwendung installiert hat. Nicht alle Anwendungen liefern die Informationen, die der Paketmanager verwendet werden, um die Installer-Anwendung zu registrieren. Daher sollte dieser Wert nicht als selbstverständlich angesehen werden.

    • Benutzer-ID. Die eindeutige Benutzer-ID, die der Anwendung vom Android-System zugewiesen wurde. Bei gemeinsam genutzten Anwendungen wird dieselbe Benutzer-ID mehreren Anwendungen zugewiesen, die die gleiche Gemeinsame User ID haben.

    • Gemeinsame Benutzer-ID. Gilt für Anwendungen, die gemeinsam genutzt werden. Die gemeinsam genutzte Anwendung muss die gleichen Signaturen haben.

    • Primäres ABI. Von dieser Plattform unterstützte Architektur für diese Anwendung.

    • Zygote Preload Name. Verantwortlich für das Vorladen von Anwendungscode und Daten, die von allen isolierte Dienste, die die Anwendung Zygote verwenden.

    • Versteckte API-Durchsetzungsrichtlinie. Seit Android 9 sind viele Methoden und Klassen im Android-Framework durch eine versteckte API-Durchsetzungsrichtlinie für Drittanbieteranwendungen unzugänglich gemacht. Sie hat die folgenden Optionen:

    • SELinux. Obligatorische Zugriffskontrollrichtlinie (MAC), die vom Betriebssystem über SELinux festgelegt wurde.

    • Main Activity. Der Haupteinstiegspunkt in die Anwendung. Dies ist nur sichtbar, wenn die Anwendung über activities und jede dieser Aktivitäten kann vom Launcher aus geöffnet werden. Außerdem gibt es eine Start-Schaltfläche auf der rechten Seite, die verwendet werden kann, um diese Aktivität zu starten.

2.2.2.2 Waagerechte Aktionsfläche

Die horizontale Aktionsleiste, wie im vorherigen Abschnitt beschrieben, besteht aus verschiedenen anwendungsbezogenen Aktionen, wie z. B..

  • Starten. Starten Sie die Anwendung, sofern sie einen Starter Aktivität hat.

  • Deaktivieren. Deaktivieren Sie die Anwendung. Diese Schaltfläche wird nicht angezeigt, wenn sie bereits deaktiviert ist oder der Benutzer nicht über ausreichende Berechtigungen verfügt. Nachdem die Anwendung deaktiviert wurde, wird sie aus der Anwendungsschublade ausgeblendet. Verknüpfungen für die Anwendung können ebenfalls entfernt werden. Die Anwendung kann nur über den App-Manager oder ein anderes Tool, das dies unterstützt, wieder aktiviert werden. das sie unterstützt. In den Android-Einstellungen gibt es keine Option, um eine deaktivierte Benutzeranwendung zu aktivieren.

  • Deinstallieren. Deinstallieren Sie die Anwendung.

  • Aktivieren. Aktivieren Sie die Anwendung. Diese Schaltfläche wird nicht angezeigt, wenn sie bereits aktiviert ist oder der Benutzer nicht über ausreichende Berechtigungen verfügt.

  • Stopp erzwingen. Erzwingt das Anhalten der Anwendung.

  • Daten löschen. Löscht Daten aus der Anwendung. Dies schließt alle Informationen ein, die in den internen und neuerdings auch in den externen Verzeichnissen gespeicherten Informationen, einschließlich Konten (falls von der Anwendung festgelegt), Cache usw. Das Löschen von Daten aus dem App-Manager werden beispielsweise alle in der Anwendung gespeicherten Regeln entfernt (die Sperrung wird jedoch nicht aufgehoben). Anwendung gespeichert sind. Aus diesem Grund sollten Sie immer Sicherungskopien Ihrer Regeln erstellen. Diese Schaltfläche wird nicht angezeigt, wenn der Benutzer über ausreichende Rechte verfügt.

  • Cache löschen. Anwendungscache löschen. Es gibt keine Android-Möglichkeit, den Cache einer bestimmten Anwendung zu löschen. Daher sind Root-Rechte erforderlich, um den Cache des internen Speichers der Anwendung zu löschen.

  • Installieren. Aktion zur Installation einer Anwendung, die über eine Drittanbieteranwendung geöffnet wurde. Diese Schaltfläche wird nur angezeigt angezeigt, wenn die Anwendung noch nicht installiert wurde.

  • Was gibt’s Neues. Diese Schaltfläche wird für eine externe Anwendung angezeigt, wenn sie bereits installiert ist. Wenn Sie auf auf diese Schaltfläche wird ein Dialogfeld angezeigt, in dem die Unterschiede zwischen der geöffneten und der installierten Version im Sinne einer Versionskontrolle an. Die angezeigten Informationen umfassen Version, Tracker, Zulassungen, Komponenten, Signaturen (Prüfsummenänderungen), Merkmale, Gemeinsame Bibliotheken und SDK.

  • Update. Wird angezeigt, wenn die Anwendung einen höheren Versionscode hat als die installierte Anwendung.

  • Neuinstallation. Wird angezeigt, wenn die Anwendung denselben Versionscode hat wie die installierte Anwendung.

  • Downgrade. Wird angezeigt, wenn die Anwendung einen niedrigeren Versionscode hat als die installierte Anwendung.

  • Manifest. Wenn Sie auf diese Schaltfläche klicken, wird die Manifest-Datei der Anwendung auf einer separaten Seite angezeigt. Die Manifest-Datei kann über die entsprechende Schaltfläche (oben rechts) ein- oder ausgepackt oder über die Schaltfläche oder über die Schaltfläche "Speichern" im Speicher abgelegt werden.

  • Scanner. Scannt die Anwendung, um potenzielle Tracker und Bibliotheken aufzulisten. Es scannt auch die Datei unter Verwendung von VirusTotal, falls konfiguriert.

    See also: Scanner-Seite

  • Gemeinsame Voreinstellungen Wenn Sie auf diese Schaltfläche klicken, wird eine Liste der von der Anwendung verwendeten gemeinsamen Einstellungen angezeigt. Wenn Sie auf ein Einstellungselement in der Liste klicken, wird die Seite Gemeinsame Voreinstellungen Editor-Seite. Diese Option ist nur sichtbar, wenn der Benutzer über die erforderlichen Berechtigungen verfügt.

  • Datenbanken. Wenn Sie auf diese Schaltfläche klicken, wird eine Liste der Datenbanken angezeigt, die von der Anwendung verwendet werden. Diese Option ist nur sichtbar, wenn der Benutzer über die erforderlichen Berechtigungen verfügt.

  • F-Droid. Öffnet die Anwendung in Ihrem bevorzugten F-Droid-Client.

  • Store. Öffnet die Anwendung in Aurora Store. Die Option ist nur sichtbar, wenn Aurora Store installiert ist.

2.2.2.3 Menü Optionen

Das Menü "Optionen" befindet sich in der oberen rechten Ecke der Seite. Eine vollständige Beschreibung der dort vorhandenen Optionen finden Sie unten angegeben:

  • Teilen. Die Schaltfläche Teilen kann verwendet werden, um die APK-Datei zu teilen, oder die APKS-Datei (wenn die App mehrere Splits hat) kann in SAI importiert werden. Sie können sie mit Ihrem bevorzugten Dateimanager freigeben, um die Datei in Ihrem gemeinsamen Speicher zu speichern.

  • Auffrischen. Aktualisiert die Registerkarte App-Info.

  • In Einstellungen anzeigen. Öffnet die App in den Android-Einstellungen.

  • Sichern/Wiederherstellen. Öffnet den Sicherungs-/Wiederherstellungsdialog.

  • Blockierungsregeln exportieren. Exportiert Regeln, die für diese App im App Manager konfiguriert wurden.

  • Öffnen in Termux. Öffnet die App in Termux. Dabei wird su - user_id ausgeführt, wobei user_id die Kernel-Benutzer-ID der Anwendung bezeichnet (beschrieben in der Abschnitt Allgemeine Informationen). Diese Option ist nur sichtbar für den root-Benutzer. Unter §2.2.2.4 erfahren Sie, wie Sie Termux so konfigurieren, dass Befehle von Drittanbieteranwendungen ausgeführt werden.

  • Ausführen in Termux. Öffnen Sie die Anwendung unter Verwendung von run-as package_name in Termux. Dies ist nur anwendbar für die debuggbaren Anwendungen und funktioniert sowohl für Root- als auch für ADB-Benutzer. Siehe §2.2.2.4 um zu erfahren, wie man Termux so zu konfigurieren, dass Befehle von Drittanbieter-Anwendungen ausgeführt werden.

  • Symbol extrahieren. Extrahieren und speichern Sie das Symbol der Anwendung an dem von Ihnen gewünschten Ort.

2.2.2.4 Termux

Standardmäßig lässt Termux die Ausführung von Befehlen aus Drittanbieteranwendungen nicht zu. Um diese Option zu verwenden, muss Termux v0.96 oder höher erforderlich und allow-external-apps=true muss in ~/.termux/termux.properties hinzugefügt werden.

Info.

Das Aktivieren dieser Option schwächt die Sicherheit von Termux nicht. Die Anwendungen von Drittanbietern müssen den Benutzer immer noch fragen, ob die Ausführung beliebiger Befehle in Termux zu erlauben.

2.2.3 Registerkarten der Komponenten

Aktivitäten, Dienste, Empfänger (d. h. Rundfunkempfänger) und Provider (d. h. Inhaltsanbieter) werden gemeinsam als Anwendungskomponenten bezeichnet. Der Grund dafür ist, dass sie sich in vielerlei Hinsicht ähnliche Merkmale aufweisen. Zum Beispiel haben sie alle einen Name, ein Label, ein Icon und werden über Absicht ausgeführt. Anwendungskomponenten sind die Bausteine einer Anwendung und müssen im dem Anwendungsmanifest deklariert werden. Das Anwendungsmanifest ist eine Datei, in der anwendungsspezifische Metadaten gespeichert werden. Das Android Betriebssystem lernt durch das Lesen der Metadaten, was es mit der Anwendung tun soll.

Die in diesen Registerkarten verwendeten Farben werden in §2.2.1 erklärt. Es ist auch möglich, die Liste der Komponenten so zu sortieren, dass blockierte oder Tracker-Komponenten ganz oben in der Liste angezeigt werden, und zwar über die Option Sortieren im Menü Überlauf-Menü.

2.2.3.1 Aktivitäten

Aktivitäten sind Fenster oder Seiten, die Sie durchsuchen können (z. B. Hauptseite und App-Detail- Seite sind zwei separate Aktivitäten). Mit anderen Worten, eine Aktivität ist eine Komponente der Benutzeroberfläche (UI). Jede Aktivität kann mehrere UI-Komponenten haben, die als Widgets oder Fragmente bekannt sind, und ebenso kann jede der letztgenannten Komponenten können mehrere von ihnen verschachtelt oder übereinander angeordnet sein. Eine Aktivität ist jedoch die Komponente Master: Es kann nicht zwei verschachtelte Aktivitäten geben. Ein Anwendungsautor kann sich auch dafür entscheiden, externe Dateien innerhalb einer Aktivität zu öffnen und dabei eine Methode namens Intent Filter verwenden. Wenn Sie versuchen, eine Datei mit Ihrem Dateimanager zu öffnen, sucht entweder Ihr Dateimanager oder das System nach Absichtsfiltern, um zu entscheiden, welche Aktivitäten diese bestimmte Datei öffnen können, und bietet Ihnen an die Datei mit diesen Aktivitäten zu öffnen (es hat also nichts mit der Anwendung selbst zu tun). Es gibt auch andere Intent- Filter.

Aktivitäten, die exportable sind, können in der Regel von jeder Drittanbieter-Anwendung geöffnet werden (einige Aktivitäten erfordern Wenn dies der Fall ist, kann nur eine Anwendung, die über diese Berechtigungen verfügt, sie öffnen). Auf der Registerkarte Aktivitäten, ist der Name der Aktivität (oben in jedem Listenelement) eigentlich eine Schaltfläche. Sie ist aktiviert für die exportable Aktivitäten aktiviert und für andere deaktiviert (Root-Benutzer können alle Aktivitäten öffnen). Sie können auf die Schaltfläche klicken, um die Aktivität direkt im App Manager zu öffnen. Sie können die Interceptor-Seite auch öffnen, indem Sie lange auf eine Aktivität klicken. Derzeit funktioniert dies nur für exportierbare Aktivitäten.

Hinweis.

Wenn Sie eine Aktivität nicht öffnen können, besteht die Möglichkeit, dass sie bestimmte Abhängigkeiten nicht erfüllt, z. B. können Sie App-Details-Aktivität nicht öffnen, weil dafür mindestens ein Paketname angegeben werden muss. Diese Abhängigkeiten können nicht immer programmatisch abgeleitet werden. Daher können Sie sie nicht mit dem App Manager öffnen.

Sie können auch eine Verknüpfung für diese ausführbare Aktivitäten erstellen (über die entsprechende Schaltfläche), und wenn Sie möchten, können Sie die Verknüpfung auch bearbeiten, indem Sie die Schaltfläche Verknüpfung bearbeiten verwenden.

Vorsicht.

Wenn Sie App Manager deinstallieren, gehen alle von App Manager erstellten Verknüpfungen verloren.

2.2.3.2 Dienste

Im Gegensatz zu Aktivitäten, die für die Benutzer sichtbar sind, werden mit Diensten Hintergrundaufgaben erledigt. Wenn Sie z. B. ein Video aus dem Internet herunterladen und dabei den Internetbrowser Ihres Telefons verwenden, verwendet der Internetbrowser einen Dienst im Vordergrund verwendet, um den Inhalt herunterzuladen.

Wenn Sie eine Aktivität beenden, wird sie in der Regel sofort gelöscht (dies hängt von vielen Faktoren ab, z. B. davon, wie viel freier Speicher Ihres Telefons hat). Dienste können jedoch auf Wunsch für unbestimmte Zeit laufen. Wenn mehr Dienste im Hintergrund ausgeführt werden Hintergrund laufen, wird Ihr Handy langsamer, weil der Speicher und/oder die Verarbeitungsleistung knapp wird, und der Akku des Handys kann schneller entladen werden. Bei neueren Android-Versionen ist die Funktion zur Akkuoptimierung standardmäßig für alle Apps aktiviert. Wenn diese Funktion aktiviert ist, kann das System willkürlich jeden Dienst beenden.

Übrigens werden sowohl Aktivitäten als auch Dienste im gleichen looper Hauptlooper genannt, was bedeutet, dass die Dienste nicht wirklich im Hintergrund ausgeführt werden. Es ist die Aufgabe der Anwendungsautoren dies sicherzustellen. Wie kommunizieren die Anwendungen mit den Diensten? Sie verwenden den Broadcast-Empfänger.

2.2.3.3 Empfänger

Empfänger (auch Broadcast Empfänger genannt) können für die Ausführung bestimmter Aufgaben für bestimmten Ereignissen verwendet werden. Diese Komponenten werden als Broadcast-Empfänger bezeichnet, da sie ausgeführt werden, sobald eine Broadcast-Nachricht empfangen wird. Diese Broadcast-Nachrichten werden mit einer Methode namens Intent gesendet. Intent ist eine spezielle Funktion für Android die verwendet werden kann, um Anwendungen, Aktivitäten und Dienste zu öffnen und Broadcast-Nachrichten zu senden. Daher verwenden, wie bei den Aktivitäten, Broadcast-Empfänger Intent-Filter, um nur die gewünschten Broadcast-Nachricht(en) zu empfangen. Broadcast-Nachrichten können entweder vom System oder von der App selbst gesendet werden. Wenn eine Broadcast-Nachricht gesendet wird, werden die entsprechenden Empfänger vom System geweckt, damit sie Aufgaben ausführen können. Zum Beispiel, wenn Sie wenig Speicherplatz haben, kann es sein, dass Ihr Telefon nach dem Aktivieren der mobilen Daten oder dem Herstellen einer Wifi-Verbindung für einen Moment einfriert oder verzögert wird. Haben Sie sich schon einmal gefragt, warum? Das liegt daran, dass Broadcast-Empfänger, die ‘android.net.conn.CONNECTIVITY_CHANGE‘ empfangen können vom System geweckt werden, sobald Sie die Datenverbindung aktivieren. Da viele Apps diesen Absichtsfilter verwenden, werden alle diese Apps fast sofort vom System geweckt, was das Einfrieren oder die Verzögerungen verursacht. Abgesehen davon können Empfänger verwendet werden für die Interprozesskommunikation (IPC) verwendet werden, d. h. sie helfen Ihnen bei der Kommunikation zwischen verschiedenen Anwendungen (vorausgesetzt, Sie haben die erforderlichen Berechtigungen) oder sogar zwischen verschiedenen Komponenten einer einzigen Anwendung.

2.2.3.4 Anbieter

Provider (auch Content Provider genannt) werden für die Datenverwaltung verwendet. Wenn Sie zum Beispiel eine apk-Datei speichern oder Regeln in App Manager exportieren, wird ein Inhaltsanbieter namens ‘androidx.core.content.FileProvider‘ verwendet. Es gibt weitere oder sogar eigene Content Provider, um verschiedene inhaltsbezogene Aufgaben zu verwalten, wie z.B. Datenbankmanagement, Tracking, Suche, etc. Jeder Content-Provider hat ein Feld namens Authority das für diese bestimmte App im gesamten Android-Ökosystem ebenso eindeutig ist wie der Paketname.

2.2.3.5 Zusätzliche Funktionen für gerootete Handys

Anders als Benutzer ohne Root-Rechte, die hier zumeist nur Zuschauer sind, können Benutzer mit Root-Rechten hier verschiedene Dinge tun.

2.2.3.5.1 Komponenten blockieren

Auf der rechten Seite jeder Komponente befindet sich ein Symbol für “Blockieren” (das zu einem Symbol für “Entblocken/Wiederherstellen” wird, wenn die Komponente blockiert ist). Dieses Symbol (eigentlich eine Schaltfläche) kann verwendet werden, um den Blockierstatus der bestimmten Komponente zu ändern. Wenn Sie Instant Komponenten blockieren nicht aktiviert haben oder die Blockierung noch nicht für die Anwendung angewendet haben, müssen Sie die Änderungen mit der Option Regeln anwenden Option im Drei-Punkte-Menü anwenden. Sie können auch bereits angewendete Regeln entfernen, indem Sie die gleiche Option verwenden (die wie folgt lauten würde Regeln entfernen).

2.2.3.5.2 Tracker blockieren

Sie können Tracker-Komponenten deaktivieren, indem Sie die Option textbfTracker blockieren im Menü mit den drei Punkten verwenden. Alle Tracker Komponenten werden blockiert, unabhängig davon, auf welcher Registerkarte Sie sich gerade befinden.

Info.

Tracker-Komponenten sind eine Untermenge der App-Komponenten. Daher werden sie mit der gleichen Methode blockiert, die für das Blockierung aller anderen Komponenten verwendet.

2.2.4 Registerkarten Berechtigungen

Registerkarten App Ops, Verwendete Berechtigungen und Berechtigungen beziehen sich auf Berechtigungen. In Android erfordert die Kommunikation zwischen Apps oder Prozessen, die nicht dieselbe Identität haben (bekannt als Shared ID), oft Berechtigung(en). Diese Berechtigungen werden von der Berechtigungssteuerung verwaltet. Einige Berechtigungen werden als normale Berechtigungen, die automatisch gewährt werden, wenn sie im Anwendungsmanifest erscheinen, aber gefährlich und Entwicklung Berechtigungen erfordern eine Bestätigung durch den Benutzer. Die in diesen Registerkarten verwendeten Farben werden in §2.2.1 erläutert.

2.2.4.1 Anwendungsoperationen

App Ops steht für Application Operations. Seit Android 4.3 wird App Ops vom Android-System zur Steuerung der meisten Anwendungsberechtigungen verwendet. Jeder App-Operation ist eine eindeutige Nummer zugeordnet, die auf der Registerkarte App-Operationen in der ersten Klammer steht. Sie haben auch einen privaten und optional einen öffentlichen Namen. Einige App Ops sind auch mit TextitZulassungen verbunden. Die Gefährlichkeit einer App-Operation wird auf der Grundlage der zugehörigen Berechtigung und anderer Informationen wie flags, Erlaubnisname, Erlaubnisbeschreibung, Paketname, Gruppe werden aus der zugehörigen Erlaubnis übernommen. Andere Informationen können die folgenden sein:

  • Mode. Er beschreibt den aktuellen Berechtigungsstatus, der allow, deny (eine eher falsche Bezeichnung, es bedeutet einfach Fehler), ignore (bedeutet eigentlich verweigern), default (abgeleitet aus einer Liste von Standardeinstellungen, die intern vom Hersteller festgelegt wurden), foreground (bei neueren Androiden bedeutet es, dass die App op nur verwendet werden kann, wenn die App im Vordergrund läuft), und einige benutzerdefinierte Modi, die von den Anbietern festgelegt werden (MIUI verwendet ask, zum Beispiel).

  • Duration. Die Zeitspanne, in der diese App-Op verwendet wurde (es kann negative Dauern geben, deren Anwendungsfälle mir derzeit nicht bekannt sind).

  • Accept Time. Das letzte Mal, dass die App Op akzeptiert wurde.

  • Reject Time. Letztes Mal, als die App-Operation abgelehnt wurde.

Info.

Der Inhalt dieser Registerkarte ist für No-Root-Benutzer sichtbar, wenn android.permission.GET_APP_OPS_STATS über ADBgewährt wird.

Neben jeder App-Operation befindet sich eine Schaltfläche, mit der die App-Operation zugelassen oder verweigert (ignoriert) werden kann. Wenn Sie andere für Ihr Gerät verfügbare Modi einstellen möchten, klicken Sie einfach lange auf ein Element. Wenn Sie zusätzliche App-Ops einstellen müssen, die nicht auf der Registerkarte aufgeführt sind, verwenden Sie die Option Set custom app op im Menü. Sie können Ihre Änderungen auch mit der Option Zurücksetzen auf Standard zurücksetzen oder alle gefährlichen App-OPs mit der entsprechenden Option im Menü. Sie können sie auch in aufsteigender Reihenfolge nach App-Op-Namen und den zugehörigen eindeutigen Nummern (oder Werten) sortieren. Sie können auch die verweigerten App-Ops zuerst auflisten, indem Sie die entsprechende Sortieroption verwenden.

Warnung.

Die Verweigerung einer App-Op kann zu Fehlverhalten der App führen. Verwenden Sie die Option reset to default, wenn dies der Fall ist. Aufgrund der Art, wie App-Ops funktionieren, kann es einige Zeit dauern, bis das System sie anwendet.

See also: Anhang: App Ops

2.2.4.2 Verwendete Berechtigungen

Benutzt Berechtigungen sind die von der Anwendung verwendeten Berechtigungen. Diese werden so genannt, weil sie im Manifest unter Verwendung von benutzt-Berechtigung-Tags deklariert werden. Informationen wie flags, permission name, Berechtigungsbeschreibung, Paketname, Gruppe werden aus dem zugehörigen Berechtigung entnommen.

Root- und ADB-Benutzer können die Berechtigungen gefährlich und Entwicklung gewähren oder entziehen, indem sie die Umschalttaste auf der rechten Seite jedes Berechtigungselements. Sie können auch alle gefährlichen Berechtigungen auf einmal entziehen indem sie die entsprechende Option im Menü verwenden. Nur diese beiden Arten von Berechtigungen können entzogen werden, da Android es nicht erlaubt, normal-Berechtigungen zu ändern (was die meisten von ihnen sind). Die einzige Alternative ist, das App-Manifest zu bearbeiten zu bearbeiten und diese Berechtigungen von dort zu entfernen.

Info.

Da gefährliche Berechtigungen standardmäßig vom System entzogen werden, ist der Entzug aller gefährlichen Berechtigungen dasselbe wie das Zurücksetzen aller Berechtigungen.

Hinweis.

Berechtigungen können für Anwendungen, die auf API 23 oder früher abzielen, nicht geändert werden. Daher sind die Berechtigungsumschaltungen für solche Anwendungen deaktiviert.

Benutzer können die Berechtigungen nach Berechtigungsnamen (in aufsteigender Reihenfolge) sortieren oder wählen, ob verweigerte oder gefährliche Berechtigungen zuerst anzeigen lassen, indem sie die entsprechenden Optionen im Menü verwenden.

2.2.4.3 Berechtigungen

Berechtigungen sind normalerweise benutzerdefinierte Berechtigungen, die von der Anwendung selbst festgelegt werden. Es kann auch reguläre Berechtigungen enthalten, meist in alten Anwendungen. Hier ist eine vollständige Beschreibung der einzelnen Elemente, die dort angezeigt werden:

  • Name. Jede Berechtigung hat einen eindeutigen Namen wie android.permission.INTERNET, aber mehrere Anwendungen können die Berechtigung anfordern.

  • Icon. Jede Berechtigung kann ein eigenes Symbol haben. Die anderen Berechtigungsregisterkarten haben kein Symbol, weil sie kein Symbol im App-Manifest enthalten.

  • Description. Dieses optionale Feld beschreibt die Berechtigung. Wenn der Berechtigung keine Beschreibung zugeordnet ist, wird das Feld nicht angezeigt.

  • Flags. (Verwendet das Flaggensymbol oder den Namen Schutzstufe) Hier werden verschiedene Berechtigungsflags beschrieben wie normal, Entwicklung, gefährlich, instant, gewährt, widerrufen, Signatur, privilegiert, usw.

  • Paketname. Bezeichnet den mit der Berechtigung verbundenen Paketnamen, d. h. das Paket, das die Berechtigung definiert.

    Gruppe. Der Gruppenname, der mit der Berechtigung verbunden ist (falls vorhanden). Neuere Androiden verwenden anscheinend keine Gruppennamen, weshalb Sie normalerweise android.permission-group.UNDEFINED oder gar keinen Gruppennamen sehen.

2.2.5 Registerkarte Signaturen

Signaturen werden eigentlich Signierinformationen genannt. Eine Anwendung wird von den Anwendungsentwicklern mit einem oder mehreren Signierzertifikaten signiert, bevor sie veröffentlicht wird. Die Integrität einer Anwendung (d.h. ob die Anwendung von dem tatsächlichen Entwickler stammt und nicht von anderen Personen verändert wurde) kann anhand der Signierinformationen überprüft werden; denn wenn eine App von einem unbefugten Dritten verändert wird, kann die App nicht mehr mit dem/den ursprünglichen Zertifikat(en) signiert werden, da die Signierinformationen vom eigentlichen Entwickler geheim gehalten werden. überprüfen Sie diese Signaturen? Mit Prüfsummen. Die Prüfsummen werden aus den Zertifikaten selbst generiert. Wenn der Entwickler die Prüfsummen zur Verfügung stellt, können Sie die Prüfsummen abgleichen, die auf der Registerkarte Signaturen generiert wurden. Wenn Sie zum Beispiel App Manager von Github, dem Telegram Channel oder dem Repo von IzzyOnDroid heruntergeladen haben, können Sie überprüfen, ob die App tatsächlich von mir freigegeben wurde, indem Sie einfach die folgende SHA256-Prüfsumme mit der in dieser Registerkarte angezeigten vergleichen:

320c0c0fe8cef873f2b554cb88c837f1512589dcced50c5b25c43c04596760ab

Dort werden drei Arten von Prüfsummen angezeigt: MD5, SHA1 und SHA256.

Vorsicht.

Es wird empfohlen, die Signierinformationen nur mit SHA256-Prüfsummen oder mit allen drei Prüfsummen zu überprüfen. VERLASSEN SIE SICH NICHT nur auf MD5 oder SHA1 Prüfsummen, da diese bekanntermaßen die gleichen Ergebnisse für mehrere Zertifikate erzeugen.

2.2.6 Registerkarte Gemeinsame Bibliotheken

Shared libraries tab lists all the legacy JAR dependencies as well as JNI (Java native interface) libraries. For JNI libraries, it specifies platform (x86/x86_64/ARM/AArch64), architecture (32/64 bit), object type (shared object or executable), etc.

2.2.7 Sonstige Registerkarten

Andere Registerkarten listen die Komponenten des Android-Manifests auf, z. B. Funktionen, Konfigurationen, gemeinsam genutzte Bibliotheken und Signaturen. Eine vollständige Beschreibung dieser Registerkarten wird in Kürze verfügbar sein.

2.3 1-Klick-Ops Seite

Diese Seite wird angezeigt, nachdem Sie auf die Option 1-Click Ops im Hauptmenü.

2.3.1 Blockieren/Entsperren von Trackern

Mit dieser Option können Sie die Werbe-/Tracker-Komponenten von den installierten Apps blockieren oder freigeben. Nachdem Sie auf diese Option geklickt haben, werden Sie gefragt, ob AM Tracker von allen Apps oder nur von den Benutzer-Apps auflisten soll. Neulinge sollten es vermeiden, Tracker aus den System-Apps zu blockieren, um Konsequenzen zu vermeiden. Danach wird ein Dialogfeld mit mehreren Auswahlmöglichkeiten angezeigt, in dem Sie die Apps, die Sie von diesem Vorgang ausschließen möchten, abwählen können. Wenn Sie auf Blocken oder Freigeben klicken, werden die Änderungen sofort übernommen.

Hinweis.

Bestimmte Anwendungen funktionieren nach der Anwendung der Sperrung möglicherweise nicht mehr wie erwartet. Wenn dies der Fall ist, entfernen Sie die Sperrregeln auf einmal oder nacheinander in den Komponenten-Registern der entsprechenden App-Detailseite.

2.3.2 Block Komponenten Punkte

Diese Option kann verwendet werden, um bestimmte App-Komponenten zu blockieren, die durch die Signaturen gekennzeichnet sind. Die App-Signatur ist der vollständige Name oder Teilname der Komponenten. Aus Sicherheitsgründen wird empfohlen, am Ende jedes Teilsignaturnamens ein . (Punkt) am Ende jedes Teilnamens der Signatur hinzuzufügen, da der hier verwendete Algorithmus alle übereinstimmenden Komponenten auf gierige Weise auswählt. Sie können mehr als eine Signatur einfügen; in diesem Fall müssen alle Signaturen durch Leerzeichen getrennt werden. Ähnlich wie bei der obigen Option gibt es auch eine Option zur Anwendung der Sperrung auf Systemanwendungen.

Vorsicht.

Wenn Sie sich der Folgen des Blockierens von Anwendungskomponenten nach Signatur(en) nicht bewusst sind, sollten Sie diese Einstellung vermeiden, da sie zu einer Bootschleife oder einem Softbrick führen kann und Sie möglicherweise einen Werksreset durchführen müssen, um Ihr OSnutzen zu können.

2.3.3 Modus für App Ops einstellen Punkte

Diese Option kann verwendet werden, um bestimmte App-Operationen aller oder ausgewählter Apps zu konfigurieren. Sie können mehrere App-Op-Konstanten durch Leerzeichen getrennt einfügen. Es ist nicht immer möglich, im Voraus alle App-Op-Konstanten zu kennen, da sie von Gerät zu Gerät und von Betriebssystem zu Betriebssystem variieren. Um die gewünschte App-Op-Konstante zu finden, durchsuchen Sie die Registerkarte App Ops auf der Seite App-Detailseite. Bei den Konstanten handelt es sich um ganze Zahlen, die in eckigen Klammern neben den einzelnen App-Op-Namen stehen. Sie können auch die App-Op-Namen verwenden. Sie müssen auch eine der Modi auswählen, die auf die App-Ops angewandt werden sollen.

Vorsicht.

Wenn Sie nicht gut über App Ops und die Folgen ihrer Blockierung informiert sind, sollten Sie diese Funktion vermeiden, da sie zu einer Bootschleife oder einem Softbrick führen kann und Sie möglicherweise einen Werksreset durchführen müssen, um Ihr OSnutzen zu können.

2.3.4 Sichern

1-Klick-Optionen für Backups. Als Vorsichtsmaßnahme werden die betroffenen Sicherungen aufgelistet, bevor ein Vorgang durchgeführt wird.

2.3.4.0.1 Alle Anwendungen sichern.

Sichern Sie alle installierten Anwendungen.

2.3.4.0.2 Vorhandene Sicherungen rückgängig machen.

Sichern Sie alle installierten Anwendungen, für die bereits ein Backup vorhanden ist.

2.3.4.0.3 Sichern Sie Anwendungen ohne Backups.

Sichern Sie alle installierten Anwendungen ohne vorheriges Backup.

2.3.4.0.4 Backups überprüfen und wiederherstellen.

Überprüfen Sie die kürzlich erstellten Backups der installierten Anwendungen und wiederholen Sie das Backup, falls erforderlich.

2.3.4.0.5 Sichern Sie Anwendungen mit Änderungen.

Wenn sich eine Anwendung seit dem letzten Backup geändert hat, führen Sie ein Redo-Backup für diese Anwendung durch. Dabei wird eine Reihe von Indizes überprüft, darunter die App-Version, das Datum der letzten Aktualisierung, das Datum des letzten Starts, die Integrität und die Datei-Hashes. Die Hashes der Verzeichnisse werden während des Backups erfasst und in einer Datenbank gespeichert. Bei der Ausführung dieses Vorgangs werden neue Hashes erstellt und mit den in der Datenbank gespeicherten verglichen.

2.3.5 Wiederherstellen

1-Klick-Optionen für die Wiederherstellung. Als Vorsichtsmaßnahme werden die betroffenen Sicherungen aufgelistet, bevor eine Operation durchgeführt wird.

2.3.5.0.1 Wiederherstellen aller Anwendungen

Wiederherstellen des Basis-Backups aller gesicherten Anwendungen.

2.3.5.0.2 Wiederherstellen von nicht installierten Anwendungen

. Wiederherstellen des Basis-Backup aller gesicherten Anwendungen, die derzeit nicht installiert sind.

2.3.5.0.3 Wiederherstellen der letzten Backups

. Wiederherstellen des Basis-Backup von bereits installierten Anwendungen, deren Versionscodes höher sind als die der installierten Versionen.

2.4 Seite Profile

Die Seite Profile kann über das Optionsmenü auf der Hauptseite aufgerufen werden. Sie zeigt eine Liste der konfigurierten Profile an. Profile können über die Schaltfläche Plus in der rechten unteren Ecke hinzugefügt oder über die Importoption importiert werden, aus einer der Voreinstellungen erstellt oder sogar aus einem bereits vorhandenen Profil dupliziert werden. Wenn Sie auf ein beliebiges Profil klicken, öffnet sich das Fenster Profilseite.

2.4.1 Menü Optionen

Auf dieser Seite gibt es zwei Optionsmenüs. Das Menü mit den drei Punkten oben rechts bietet zwei Optionen, nämlich Voreinstellungen und Importieren.

Ein weiteres Optionsmenü erscheint, wenn Sie lange auf ein beliebiges Profil klicken. Es enthält Optionen wie.

  • Jetzt anwenden. Diese Option kann verwendet werden, um das Profil direkt anzuwenden. Wenn Sie darauf klicken, wird ein Dialog angezeigt, in dem Sie einen Profilzustand auswählen können. Wenn Sie eine der Optionen auswählen, wird das Profil sofort angewendet.

  • Löschen. Wenn Sie auf Löschen klicken, wird das Profil sofort und ohne Warnung entfernt.

  • Duplizieren. Diese Option kann verwendet werden, um das Profil zu duplizieren. Wenn Sie darauf klicken, wird ein Eingabefeld angezeigt, in dem Sie den Namen des Profils eingeben können. Wenn Sie auf “OK” klicken, wird ein neues Profil erstellt und die Profilseite wird geladen. Das Profil wird nicht gespeichert, bis Sie es manuell speichern.

  • Exportieren. Exportiert das Profil auf einen externen Speicher. Auf diese Weise exportierte Profile können unter Verwendung der Option Import im Drei-Punkte-Menü importiert werden.

  • Verknüpfung erstellen. Diese Option kann verwendet werden, um eine Verknüpfung für das Profil zu erstellen. Wenn Sie darauf klicken, werden zwei Optionen angezeigt: Einfach und Erweitert. Mit der letzteren Option können Sie den Profilstatus festlegen bevor Sie es anwenden, während die erste Option den Standardstatus verwendet, der beim letzten Speichern des Profils konfiguriert wurde.

2.5 Seite Profil

Die Seite Profil zeigt die Konfigurationen für ein Profil an. Sie bietet auch die Möglichkeit, sie zu bearbeiten.

Hinweis.

Wenn Sie ein Profil anwenden und einige Pakete den Kriterien nicht entsprechen, werden sie einfach ignoriert.

2.5.1 Menü Optionen

Das Menü mit den drei Punkten in der oberen rechten Ecke öffnet das Menü Optionen. Es enthält verschiedene Optionen wie.

  • Anwenden. Diese Option kann verwendet werden, um das Profil anzuwenden. Wenn Sie darauf klicken, wird ein Dialogfeld angezeigt, in dem Sie einen Profilzustand auswählen können. Wenn Sie eine der Optionen auswählen, wird das Profil sofort angewendet.

  • Speichern. Ermöglicht es Ihnen, das Profil zu speichern.

    Hinweis.

    Änderungen werden nie automatisch gespeichert. Sie müssen sie von hier aus manuell speichern.

  • Verwerfen. Verwirft alle Änderungen, die seit der letzten Speicherung vorgenommen wurden.

  • Löschen. Wenn Sie auf Löschen klicken, wird das Profil sofort und ohne Warnung gelöscht.

  • Duplizieren. Diese Option kann verwendet werden, um das Profil zu duplizieren. Wenn Sie darauf klicken, wird ein Eingabefeld angezeigt, in dem Sie den Namen des Profils eingeben können. Wenn Sie auf “OK” klicken, wird ein neues Profil erstellt, und die Seite wird neu geladen. Das Profil wird nicht gespeichert, bis Sie es manuell speichern.

  • Verknüpfung erstellen Diese Option kann verwendet werden, um eine Verknüpfung für das Profil zu erstellen. Wenn Sie darauf klicken, werden zwei Optionen angezeigt: Einfach und Erweitert. Mit der letzteren Option können Sie den Profilstatus festlegen bevor Sie ihn anwenden, während die erste Option den Standardstatus verwendet, der beim letzten Speichern des Profils konfiguriert wurde.

2.5.2 Registerkarte Anwendungen

Auf der Registerkarte Apps werden die unter diesem Profil konfigurierten Pakete aufgelistet. Pakete können hinzugefügt oder entfernt werden, indem Sie die Schaltfläche Plus unten nutzen. Pakete können auch entfernt werden, indem Sie lange auf sie klicken (in diesem Fall wird ein Popup mit der einzigen Option Löschen angezeigt).

2.5.3 Registerkarte Konfigurationen

Auf der Registerkarte Konfigurationen können Sie die ausgewählten Pakete konfigurieren. Die Beschreibung der einzelnen Elemente ist unten angegeben:

2.5.3.1 Anmerkung

Dies ist der Text, der auf der Seite Profile angezeigt wird. Wenn er nicht gesetzt ist, werden stattdessen die aktuellen Konfigurationen stattdessen angezeigt.

2.5.3.2 Zustand

Gibt an, wie sich bestimmte konfigurierte Optionen verhalten werden. Wenn zum Beispiel die Option Deaktivieren aktiviert ist, werden die Anwendungen deaktiviert, wenn der Status Ein ist, und wird aktiviert, wenn der Status Aus ist. Derzeit unterstützt der Status nur Ein und Aus Werte.

2.5.3.3 Nutzer

Wählen Sie die Benutzer aus, auf die das Profil angewendet werden soll. Standardmäßig sind alle Benutzer ausgewählt.

2.5.3.4 Komponenten

Dies verhält sich genauso wie die Option Block-Komponenten-Punkte auf der 1-Klick-Ops-Seite. Allerdings gilt dies nur für die ausgewählten Pakete. Wenn die Option Status ein ist, werden die Komponenten blockiert, und wenn der Status aus ist, werden die Komponenten entsperrt. Die Option kann (unabhängig von den eingegebenen Werten) deaktiviert werden, indem Sie auf die Schaltfläche Deaktivieren im Eingabedialog klicken.

2.5.3.5 Anwendungsoperationen

Dies verhält sich genauso wie die Option Modus für App Ops einstellen… auf der Seite 1-Click Ops. Allerdings gilt dies nur für die ausgewählten Pakete. Wenn die Option Status Ein ist, werden die App Ops verweigert (d.h. ignoriert), und wenn der Status Aus ist, werden die App-OPs zugelassen. Die Option kann (unabhängig von den eingegebenen Werten) deaktiviert werden, indem Sie auf die Schaltfläche deaktiviert im Eingabedialog klicken.

2.5.3.6 Berechtigungen

Diese Option kann verwendet werden, um bestimmte Berechtigungen für die ausgewählten Pakete zu gewähren oder zu entziehen. Wie andere oben, müssen die Berechtigungen durch Leerzeichen getrennt werden. Wenn der Status Ein ist, werden die Berechtigungen entzogen, und wenn der Status Aus ist, werden die Berechtigungen erlaubt. Die Option kann deaktiviert werden (unabhängig von den eingegebenen Werten), indem Sie im Eingabedialog auf die Schaltfläche deaktiviert klicken.

2.5.3.7 Sichern/Wiederherstellen

Diese Option kann verwendet werden, um ein Backup der ausgewählten Anwendungen und ihrer Daten zu erstellen oder sie wiederherzustellen. Es sind zwei Optionen verfügbar: Backup-Optionen und Backup-Name.

  • Backup-Optionen Dasselbe wie die Sicherungsoptionen der Sicherungs-/Wiederherstellungsfunktion. Wenn nicht festgelegt, werden die Standardoptionen verwendet.

  • Sicherungsname Legen Sie einen benutzerdefinierten Namen für die Sicherung fest. Wenn der Name der Sicherung festgelegt ist, erhält sie bei jeder Erstellung einer Sicherung einen eindeutigen Namen mit dem Suffix backup-name erhalten. Dieses Verhalten wird in einer zukünftigen Version korrigiert werden. Lassen Sie dieses Feld für reguläre oder “Basis” Backups leer (stellen Sie auch sicher, dass Sie nicht backup multiple in den Sicherungsoptionen aktivieren).

Wenn der Status von Status Ein ist, werden die Pakete gesichert, und wenn der Status Aus, werden die Pakete wiederhergestellt. Die Option kann deaktiviert werden, indem Sie auf die Schaltfläche deaktiviert im dem Eingabedialog.

2.5.3.8 Regeln für die Exportsperre

Mit dieser Option können Sie Blockierungsregeln exportieren.

Gefahr.

Diese Option ist noch nicht implementiert.

2.5.3.9 Deaktivieren

Aktiviert/deaktiviert die ausgewählten Pakete je nach dem Zustand von Status. Wenn der Status Ein ist, werden die Pakete deaktiviert, und wenn der Zustand Aus ist, werden die Pakete aktiviert.

2.5.3.10 Zwangsstopp

Ermöglicht das erzwungene Anhalten der ausgewählten Pakete.

2.5.3.11 Zwischenspeicher löschen

Ermöglicht das Löschen des Cache für die ausgewählten Pakete.

2.5.3.12 Daten löschen

Ermöglicht das Löschen von Daten für die ausgewählten Pakete.

2.5.3.13 Tracker blockieren

Ermöglicht die Sperrung/Entsperrung der Tracker-Komponenten der ausgewählten Pakete in Abhängigkeit vom Status. Wenn der Zustand Ein ist, werden die Tracker blockiert, und wenn der Zustand Aus ist, werden die Tracker entsperrt.

2.5.3.14 APK speichern

Ermöglicht das Speichern von APK-Dateien unter AppManager/apks für die ausgewählten Pakete.

2.6 Seite Einstellungen

Die Einstellungen können verwendet werden, um das Verhalten der App anzupassen.

2.6.1 Sprache

Konfigurieren Sie die In-App-Sprache. App Manager unterstützt derzeit 19 (neunzehn) Sprachen.

2.6.2 App-Design

In-App-Thema konfigurieren.

2.6.3 Bildschirm sperren

Sperren Sie den App Manager mit der Android-Bildschirmsperre, sofern eine Bildschirmsperre konfiguriert ist.

2.6.4 Betriebsmodus

Sie können eine der vier Optionen auswählen:

  • Auto. Lassen Sie AM entscheiden, welche Option für Sie geeignet ist. Obwohl dies die Standardoption ist, kann sie bei einigen Geräten Probleme verursachen.

  • Root. Wählen Sie den Root-Modus. Standardmäßig fordert AM die Root-Berechtigung an, wenn Root erkannt, aber noch nicht gewährt wurde. Wenn diese Option ausgewählt ist, wird AM im Root-Modus ausgeführt, auch wenn Root nicht verfügbar ist oder verweigert wird. Dies kann zu Abstürzen oder Einfrierproblemen führen und sollte daher nicht aktiviert werden, wenn Root nicht verfügbar ist.

  • ADB über TCP. Aktivieren Sie ADB über TCP Modus. AM kann auf unbestimmte Zeit hängen bleiben, wenn ADB über TCP nicht aktiviert ist.

  • No-root. AM läuft im no-root Modus. AM ist leistungsfähiger, wenn dies aktiviert ist, aber alle Root/ADB-Funktionen werden deaktiviert.

2.6.5 Selected Users

This option lets you control the users App Manager should operate on. App Manager operates on all users in root or ADB mode by default.

2.6.6 Aktivieren/Deaktivieren von Funktionen

Aktivieren oder deaktivieren Sie bestimmte Funktionen im App Manager, z. B.

  • Interceptor

  • Manifest-Betrachter

  • Scanner

  • Paket-Installer

  • Verwendungszugang: Wenn diese Option deaktiviert ist, fragt App Manager nie nach der Berechtigung Benutzungszugriff.

  • Protokoll-Viewer

2.6.7 Saved APK Name Format

Defines the format of the APK name to be used while saving it via batch operations or through profiles. App Manager offers some special keywords enclosed inside % (percentage) signs and available below the input box. These keywords are:

  • label. Denotes the name or label of the application. This can be localised to the configured language depending on the app.

  • package_name. Denotes the name of the package or application ID, the unique identifier that each application has.

  • version. Denotes the current version of the application extracted from its manifest.

  • version_code. Denotes the current version code of the application that can be used to separate two versions of the same application.

  • min_sdk. Denotes the minimum SDK (i.e. Android framework version) that the application can operate on. This data is only available since Android 7 (Nougat).

  • target_sdk. Denotes the SDK that this application targets. The application can operate on higher SDK but only in the compatibility mode.

  • datetime. Denotes the time and date when the APK is exported.

2.6.8 APK-Signierung

2.6.8.1 Signaturregelungen

Wählen Sie die zu verwendenden Signaturschemata aus. Es wird empfohlen, mindestens die Signaturschemata v1 und v2 zu verwenden. Verwenden Sie die Schaltfläche Zurücksetzen auf Standard, falls Sie verwirrt sind.

2.6.8.2 Signierschlüssel

Konfigurieren Sie einen benutzerdefinierten Signierschlüssel zum Signieren von APK-Dateien. Schlüssel aus einem bestehenden KeyStore können in den App Manager importiert werden, oder es kann ein neuer Schlüssel generiert werden.

Hinweis.

App Manager verwaltet einen KeyStore, in dem die in der App verwendeten Schlüssel gespeichert werden. Das Passwort für den Keystore wird bei Bedarf abgefragt. Achten Sie darauf, das Passwort an einem sicheren Ort zu speichern, da der KeyStore sonst bei Bedarf nicht wiederhergestellt werden kann.

2.6.9 Installationsprogramm

2.6.9.1 Benutzer im Installationsprogramm anzeigen

When enabled, a list of users will be displayed before installing the application. The application will be installed only for the specified users.

2.6.9.2 APK signieren

Whether to sign the APK files before installing the application. The APK signing page can be used to configure signing.

2.6.9.3 Speicherort

Define APK installation location. This can be one of auto, internal only and prefer external. In newer Android versions, selecting the last option does not guarantee that the application will be installed in the external storage.

2.6.9.4 InstallationsApps

Select the installer application, useful for applications that explicitly checks the installer as a way to verify if the application is installed legitimately. This only works for root or ADB users.

Notice.

While checking for the installer might seem a legitimate concern for an application, the Android framework already deals with this during the installation. Checking for the installer is simply the wrong way to prove the legitimacy of the source of an application.

2.6.9.5 Block Trackers

Whether to block the tracking components immediately after installing the application.

2.6.9.6 Display Changes

Whether to display changes in version, trackers, components, permissions, signatures, SDK, etc. in a version controlled style if the application has already been installed.

2.6.9.7 Install in the Background

Whether to always install applications in the background. A notification will be issued once the installation is finished.

2.6.10 Sichern/Wiederherstellen

Settings related to back up/restore.

2.6.10.1 Komprimierungsverfahren

Set the compression method to be used during backups. App Manager supports GZip and BZip2 compression methods, GZip being the default compression method. It doesn’t affect the restoring of an existing backup.

2.6.10.2 Sicherungsoptionen

Customise the back up/restore dialog displayed while taking a backup.

See also: Backup options

2.6.10.3 Anwendungen mit Android KeyStore sichern

Allow backup of applications that has entries in the Android KeyStore. This option is disabled by default because a few apps (such as Signal) may crash if restored.

2.6.10.4 Verschlüsselung

Set an encryption method for the backups. App Manager currently supports OpenPGP (via OpenKeyChain), AES and RSA (hybrid encryption with AES). Like APK signing, The AES and RSA keys are stored in the KeyStore and can be imported from other KeyStores.

Danger.

For your own safety, it is not recommended generating RSA keys inside App Manager. Instead, they should be imported from a KeyStore stored in a secure place.
In case of AES, the generated key should be stored in a secure place, such as using a password manager.

2.6.10.5 Sicherungsvolumen

Select the storage where the backups will be stored. This is also where logs and exported APK files are saved.

Notice.

The backup volume only specifies the storage, not the path. Backups are traditionally stored in the AppManager folder inside the storage path. But when the path is selected using Storage Access Framework (SAF), the selected path or directory is used directly.

2.6.10.6 Import Backups

Import backups from old and discontinued projects such as Titanium Backup, OAndBackup, and Swift Backup (version 3.0 to 3.2). The backups are not deleted after importing to prevent data loss in case the imported backups cannot be restored properly.

2.6.11 Regeln

2.6.11.1 Sofortige Komponentensperre

By default, blocking rules are not applied unless they are applied explicitly in the App Details page for any application. After enabling this option, all (old and new) rules are applied immediately for all applications without explicitly enabling blocking for an application.

2.6.11.2 Import/Export-Sperrregeln

It is possible to import or export blocking rules within App Manager for all applications. The types of rules (components, app ops or permissions) that should be imported or exported can also be selected. It is also possible to import blocking rules from Blocker and Watt. If it is necessary to export blocking rules for a single application, the corresponding App Details page can be used to export rules, or for multiple apps, batch operations can be used.

2.6.11.2.1 Export

Export blocking rules for all applications configured within App Manager. This may include app components, app ops and permissions based on the options selected in the multi-choice options.

2.6.11.2.2 Import

Import previously exported blocking rules from App Manager. Similar to export, this may include app components, app ops and permissions based on the options selected in the multi-choice options.

2.6.11.2.3 Import Existing Rules

Add components disabled by other applications to App Manager. App Manager only keeps track of the components disabled within App Manager. If application components are blocked or disabled by other tools or applications, this option can be utilised to import them. On clicking this option, App Manager will find the components potentially disabled by other applications or tools and list only the name of the applications along with the number of matched components. For safety, all the applications are unselected by default. They have to be selected manually, and the blocking has to be re-applied via App Manager.

Caution.

Be careful when using this tool as there can be many false positives. Choose only the applications that you are certain about.

2.6.11.2.4 Import from Watt

Import configuration files from Watt, each file containing rules for a single package and file name being the name of the package with .xml extension.

Tip.

Location of configuration files in Watt: /sdcard/Android/data/com.tuyafeng.watt/files/ifw

2.6.11.2.5 Import from Blocker

Import blocking rules from Blocker, each file containing rules for a single package. These files have a .json extension.

2.6.11.3 Alle Regeln löschen

One-click option to remove all rules configured within App Manager. This will enable all blocked components, app ops will be set to their default values and permissions will be granted.

2.6.12 Schlüsselspeicher importieren/exportieren

Import or export the KeyStore used by App Manager. This is a Bouncy Castle KeyStore with bks extension. Therefore, other KeyStore such as Java KeyStore (JKS) or PKCS #12 are not supported. If a key is needed to be imported from such a KeyStore, the relevant options should be should as specified above.

2.6.13 Über das Gerät selbst

Display Android version, security, CPU, GPU, battery, memory, screen, languages, user info, etc.

2.7 Scanner Page

Scanner page appears after clicking on the scanner button in the App Info tab. External APK files can also be opened for scanning from file managers, web browsers, etc.

It scans for trackers and libraries, and displays the number of trackers and libraries as a summary. It also displays checksums of the APK file as well as the signing certificates. If VirusTotal is configured in the settings, it also attempts to retrieve reports from VirusTotal, or uploads the APK file if it is not in the database.

Disclaimer.

App Manager only scans an application statically without prejudice. The application may provide the options for opting out, or in some cases, certain features of the tracker may not be used at all by the application (e.g. F-Droid), or some applications may simply use them as placeholders to prevent the breaking of certain features (e.g. Fennec F-Droid). The intention of the scanner is to give you an idea about what the APK might contain. It should be taken as an initial step for further investigations.

Clicking on the first item (i.e. number of classes) opens a new page containing a list of tracker classes for the application. All classes can also be viewed by clicking on the Toggle Class Listing menu. A sneak-peek of each class can be viewed by simply clicking on any class item. In Android 8 (Oreo) and later, this includes the whole SMALI version of the class, and can be converted into Java using the corresponding option.

Notice.

Due to various limitations, it is not possible to scan all the components of an APK file. This is especially true if an APK is highly obfuscated. The scanner also does not check strings (or website signatures).

The second item lists the number of trackers along with their names. Clicking on the item displays a dialog containing the name of trackers, matched signatures, and the number of classes against each signature. Some tracker names may have 2 prefix which indicates that the trackers are in the ETIP stand-by list i.e. whether they are actual trackers is still being investigated.

The third item lists the number of libraries along with their names. The information are mostly taken from IzzyOnDroid repo.

2.7.1 Missing Signatures

At the bottom of the page, there is a special item denoting the number of missing signatures (i.e. missing classes). The missing signatures are the ones that AM has failed to match against any known libraries. The number itself has no particular meaning as many libraries contain hundreds of classes, but clicking on the item will bring up a dialog containing the signatures which is helpful in inspecting the missing signatures. This feature is only intended for people who know what a missing signature is and what to do with it, other users should ignore it.

2.8 Interceptor Page

Interceptor can be used to intercept communication between applications using Intent. It works as a man-in-the-middle between the source and the destination applications. It offers a feature-complete user interface for editing Intents.

Warning.

Interceptor only works for implicit intents where the app component isn’t specified.

2.8.1 Intent Filters

Intent filters are used by the applications to specify the tasks they are able to perform or the tasks they are going to perform using other applications. For example, when you’re opening a PDF file using a file manager, the file manager will try to find the applications to open the PDF with. To find the right applications, the file manager will create an Intent with filters such as the MIME type and ask the system to retrieve the applications capable of opening this filter. The system will search through the Manifest of the installed applications to match the filter and list the application components that are able to open this filter (in our case the PDF). At this, either the file manager will open the desired application component all by itself or use a system provided option to open it. If multiple application components are able to open it and no default is set, you may get a prompt where you have to choose the right application component.

2.8.1.1 Action

Action specifies the generic action to perform such as android.intent.action.VIEW. Applications often declare the relevant actions in the Manifest file to catch the desired Intents. The action is particularly useful for broadcast Intent where it plays a vital rule. In other cases, it works as an initial way to filter out the relevant application components. Generic actions such as android.intent.action.VIEW and android.intent.action.SEND are widely used by applications. Hence, setting this alone may match many application components.

2.8.1.2 Data

Data is originally known as URI (Uniform Resource Identifier) defined in RFC 2396. It can be web links, file location, or a special feature called content. Contents are an Android feature managed by the content providers. Data are often associated with a MIME type.

Examples:

http://search.disroot.org/?q=URI%20in%20Android%20scheme&categories=general&language=en-US
https://developer.android.com/reference/android/net/Uri
file:///sdcard/AppManager.apk
mailto:email@example.com
content://io.github.muntashirakon.AppManager.provider/23485af89b08d87e898a90c7e/AppManager.apk

2.8.1.3 MIME Type

MIME type of the data. For example, if the data field is set to file:///sdcard/AppManager.apk, the associated MIME type can be application/vnd.android.package-archive.

2.8.1.4 Categories

This is similar to action in the sense that it is also used by the system to filter application components. This has no further benefits. Unlike action, there can be more than one category. Clicking on the plus button next to the title allows adding more categories.

2.8.1.5 Flags

Flags are useful in determining how system should behave during the launch or after the launch of an activity. This should not be touched as it requires some technical background. The plus button next to the title can be used to add one or more flags.

2.8.1.6 Extras

Extras are the key-value pairs used for supplying additional information to the destination component. More extras can be added using the plus button next to the title.

2.8.1.7 URI

Represents the entire Intent as a URI (e.g. intent://…). Some data cannot be converted to string, and as a result, they might not appear here.

2.8.2 Matching Activities

List all the activity components that matches the Intent. This is internally determined by the system (rather than App Manager). The launch button next to each component can be used to launch them directly from App Manager.

2.8.3 Reset to Default

Reset the Intent to its initial state.

2.8.4 Send Edited Intent

Resend the edited Intent to the destination application. This may open a list of applications where the desired application is needed to be selected. The result received from the target application will be sent to the source application. As a result, the source application will not know if there was a man-in-the-middle.

2.9 Shared Preferences Editor Page

Shared preferences can be edited in this page. Clicking any item on the list opens the edit dialog where the item can be edited. The floating action button on the bottom-right corner can be used to add a new item. To save or delete the file, or to discard current changes, the respective options in the menu can be used.

3 Guides

3.1 ADB over TCP

Many root-only features can still be used by enabling ADB over TCP. To do that, a PC or Mac is required with Android platform-tools installed, and an Android phone with developer options & USB debugging enabled.

Root users.

If superuser permission has been granted to App Manager, it can already execute privileged code without any problem. Therefore, root users don’t need to enable ADB over TCP. If you still want to use ADB over TCP, you must revoke superuser permission for App Manager and restart your device. You may see working on ADB mode message without restarting but this isn’t entirely true. The server (used as an interface between system and App Manager) is still running in root mode. This is a known issue and will be fixed in a future version of App Manager.

3.1.1 Enable developer options

3.1.1.1 Location of developer options

Developer options is located in Android Settings, either directly near the bottom of the page (in most ROMs) or under some other settings such as System (Lineage OS, Asus Zenfone 8.0+), System > Advanced (Google Pixel), Additional Settings (Xiaomi MIUI, Oppo ColorOS), More Settings (Vivo FuntouchOS), More (ZTE Nubia). Unlike other options, it is not visible until explicitly enabled by the user. If developer options is enabled, you can use the search box in Android Settings to locate it as well.

3.1.1.2 How to enable developer options

This option is available within Android Settings as well but like the location of the developer options, it also differs from device to device. But in general, you have to find Build number (or MIUI version for MIUI ROMs and Software version for Vivo FuntouchOS, Version for Oppo ColorOS) and tap it at least 7 (seven) times until you finally get a message saying You are now a developer (you may be prompted to insert pin/password/pattern or solve captchas at this point). In most devices, it is located at the bottom of the settings page, inside About Phone. But the best way to find it is to use the search box.

3.1.2 Enable USB debugging

After locating the developer options, enable Developer option (if not already). After that, scroll down a bit until you will find the option USB debugging. Use the toggle button on the right-hand side to enable it. At this point, you may get an alert prompt where you may have to click OK to actually enable it. You may also have to enable some other options depending on device vendor and ROM. Here are some examples:

3.1.2.1 Xiaomi (MIUI)

Enable USB debugging (Security settings) as well.

3.1.2.2 Huawei (EMUI)

Enable Allow ADB debugging in charge only mode as well. When connecting to your PC or Mac, you may get a prompt saying Allow access to device data? in which case click YES, ALLOW ACCESS.

Notice.

Often the USB debugging mode could be disabled automatically by the system. If that’s the case, repeat the above procedure.

3.1.2.3 Realme

Depending on the device and the version of operating system, you have to enable Disable Permission Monitoring, or USB debugging (Security settings) along with Install via USB.

3.1.2.4 LG

Make sure you have USB tethering enabled.

3.1.2.5 Troubleshooting

In case USB Debugging is greyed out, you can do the following:

  1. Make sure you enabled USB debugging before connecting your phone to the PC or Mac via USB cable

  2. Enable USB tethering after connecting to PC or Mac via USB cable

  3. (For Samsung) If your device is running KNOX, you may have to follow some additional steps. See official documentations or consult support for further assistant

3.1.3 Setup ADB on PC or Mac

In order to enable ADB over TCP, you have to set up ADB in your PC or Mac. Lineage OS users can skip to §3.1.4.1.

3.1.3.1 Windows

  1. Download the latest version of Android SDK Platform-Tools for Windows

  2. Extract the contents of the zip file into any directory (such as C:\adb) and navigate to that directory using Explorer

  3. Open Command Prompt or PowerShell from this directory. You can do it manually from the start menu or by holding Shift and Right clicking within the directory in File Explorer and then clicking either on Open command window here or on Open PowerShell window here (depending on what you have installed). You can now access ADB by typing adb (Command Prompt) or ./adb (PowerShell). Do not close this window yet

3.1.3.2 macOS

  1. Download the latest version of Android SDK Platform-Tools for macOS

  2. Extract the contents of the zip file into a directory by clicking on it. After that, navigate to that directory using Finder and locate adb

  3. Open Terminal using Launchpad or Spotlight and drag-and-drop adb from the Finder window into the Terminal window. Do not close the Terminal window yet

Tip.

If you are not afraid to use command line, here’s a one liner:

cd ~/Downloads && curl -o platform-tools.zip -L \
https://dl.google.com/android/repository/platform-tools-latest-darwin.zip && \
unzip platform-tools.zip && rm platform-tools.zip && cd platform-tools

After that, you can simply type ./adb in the in same Terminal window to access ADB.

3.1.3.3 Linux

  1. Open your favourite terminal emulator. In most GUI-distros, you can open it by holding Control, Alter and T at the same time

  2. Run the following command:

    cd ~/Downloads && curl -o platform-tools.zip -L \
    https://dl.google.com/android/repository/platform-tools-latest-linux.zip && \
    unzip platform-tools.zip && rm platform-tools.zip && cd platform-tools
  3. If it is successful, you can simply type ./adb in the in same terminal emulator window or type ~/Downloads/platform-tools/adb in any terminal emulator to access ADB.

3.1.4 Configure ADB over TCP

3.1.4.1 Lineage OS 17.1 and Earlier

Lineage OS (or its derivatives) users can directly enable ADB over TCP using the developer options. To enable that, go to the Developer options, scroll down until you find ADB over Network. Now, use the toggle button on the right-hand side to enable it and skip to §3.1.4.3.

3.1.4.2 Enable ADB over TCP via PC or Mac

For other ROMs, you can do this using the command prompt/PowerShell/terminal emulator that you’ve opened in the step 3 of the previous section. In this section, I will use adb to denote ./adb, adb or any other command that you needed to use based on your platform and software in the previous section.

  1. Connect your device to your PC or Mac using a USB cable. For some devices, it is necessary to turn on File transfer mode (MTP) as well

  2. To confirm that everything is working as expected, type adb devices in your terminal. If your device is connected successfully, you will see something like this:

    List of devices attached
    xxxxxxxx  device

    Notice.

    In some Android phones, an alert prompt will be appeared with a message Allow USB Debugging in which case, check Always allow from this computer and click Allow.

  3. Finally, run the following command to enable ADB over TCP:

    adb tcpip 5555

Danger.

You cannot disable developer options or USB debugging after enabling ADB over TCP.

3.1.4.3 Enable ADB mode in App Manager

After enabling ADB over TCP, relaunch App Manager. App Manager should detect ADB mode automatically. If it cannot, you can change the mode of operation to ADB over TCP in the settings page. There, you can also verify whether App Manager has correctly detected ADB as indicated by the inferred mode.

Notice.

In some Android devices, the USB cable is needed to be disconnected from the PC before connecting to App Manager.

Warning.

ADB over TCP will be disabled after a reboot. In that case, you have to follow §3.1.4.2 again.

Lineage OS users.

You can turn off ADB over Network in developer options, but turning off this option will also stop App Manager’s remote server. So, turn it off only when you’re not going to use App Manager in ADB over TCP mode.

3.1.5 References

  1. How to Install ADB on Windows, macOS, and Linux

  2. Android Debug Bridge (adb)

  3. How to fix USB debugging greyed out?

3.2 Wireless Debugging

If you are running Android 11 or later and capable of connecting to a Wi-Fi network for, at least, a few moments, Wireless Debugging is the recommended approach as it offers more protection than ADB over TCP. It requires two steps:

  1. ADB pairing. The initial and a bit complex step for a novice user. Fortunately, this step is not required all the time.

  2. Connecting to ADB. The final step which needs to be carried out every time you reboot your phone.

3.2.1 Enable developer options and USB Debugging

See §3.1.1 and §3.1.2.

3.2.2 Enable Wireless Debugging

In the Developer options page, find Wireless debugging and click to open it. In the new page, turn on Use wireless debugging. Depending on your configuration, you might see a dialog prompt asking you to verify your decision. If that is the case, click Allow.

Tip.

For an easy access, you might want to add Wireless debugging in the notification tiles section. To do this, find Quick settings developer tiles in the Developer options page and click to open it. In the new window, enable Wireless debugging. However, this option is unavailable in most operating systems.

3.2.3 Pair ADB with App Manager

Keeping the Wireless debugging page open, go to the Recents page either by swiping up or by using the dedicated navigation button, and click on the Settings logo to enable Split screen. It will wait for you to select or launch another application: Launch or select App Manager.

Now, in App Manager and navigate to Settings and then enable Wireless debugging in Mode of operation. After a few moments, App Manager will ask you to either connect or pair ADB. Select pair.

In the Wireless debugging page (now should be on top among the splits), select Pair device with pairing code. At this, a dialog prompt will be displayed. Note down the pairing code but DO NOT close the dialog prompt or the window.

Finally, in App Manager, insert the pairing code and click pair. The port number should be detected automatically. If it cannot, you have to insert the port number as well.

If the pairing is successful, it will display a successful message at the bottom, and the dialog prompt in the Wireless debugging page will be dismissed automatically, and you will be able to see App Manager listed as an ADB client.

Notice.

If you do not use App Manager in ADB mode for a while (depending on devices), App Manager might be removed from the list. In that case, you have to repeat the above procedure.

3.2.4 Connect App Manager to ADB

App Manager should be able to connect to ADB automatically if the mode of operation is set to auto, ADB over TCP or Wireless debugging. If that is not the case, select Wireless debugging in the settings page. If App Manager fails to detect or connect to ADB, it will display a dialog prompt to connect or pair ADB. Select connect.

Now, navigate to the Wireless debugging page in Android settings, and note down the port number displayed in the page. In App Manager’s dialog prompt, replace the port number with the one that you have noted earlier, and click connect.

Once a connection has been established, you can safely disable Wireless debugging in Android settings.

Caution.

Never disable USB Debugging or any other additional options described in §3.2.1. If you do this, the remote server used by App Manager will be stopped, and you may have to start all over again.

3.3 Back up/Restore

App Manager verfügt über ein modernes, fortschrittliches und einfach zu bedienendes Sicherungs-/Wiederherstellungssystem, das von Grund auf neu implementiert wurde. Dies ist wahrscheinlich die einzige App, die nicht nur die App oder ihre Daten wiederherstellen kann, sondern auch die Berechtigungen und Regeln, die Sie im App Manager konfiguriert haben. Sie können auch wählen, ob Sie eine App mehrfach (mit benutzerdefinierten Namen) oder für alle Benutzer sichern möchten.

3.3.1 Location

Sichern/Wiederherstellen ist ein Teil vonBatch-Operationen. Es befindet sich auch im Optionsmenü in der Registerkarte Anwendungsinfo. Clicking on Backup/Restore opens the Backup Options. Backups are located at /storage/emulated/0/AppManager by default. You can configure custom backup location in the settings page in which case the backups will be located at the AppManager folder in the selected volume.

Hinweis.

Wenn eine oder mehrere ausgewählte Anwendungen keine Sicherung haben, werden die Optionen Wiederherstellen and Sicherung löschen nicht angezeigt.

3.3.2 Backup Options

Mit den Backup-Optionen (intern als Backup-Flags bezeichnet) können Sie die Backups im Handumdrehen anpassen. Die Anpassungen werden jedoch nicht für zukünftige Sicherungen gespeichert. Wenn Sie diesen Dialog anpassen möchten, verwenden Sie Backup-Optionen in der Einstellungen-Seite.

Eine vollständige Beschreibung der Sicherungsoptionen finden Sie weiter unten:

  • APK-Dateien. Whether to back up the APK files. This includes the base APK file along with the split APK files if they exist.

  • Internal data. Ob die APK-Dateien gesichert werden sollen. Dies umfasst die Datei Basis-APK sowie die Dateien Split-APK, falls vorhanden.

  • External data. Whether to back up data directories located in the internal memory as well as SD Card (if exists). External data directories often contain non-essential app data or media files (instead of using the dedicated media folder) and may increase the backup size. However, it might be essential for some apps. Although it isn’t checked by default (as it might dramatically increase the size of the backups), you may have to check it in order to ensure a smooth restore of your backups.

    Caution.

    Internal data folders should always be backed up if you are going to back up the external data folders. However, it could be useful to back up only the external folders if the app in question downloads a lot of assets from the Internet.

  • OBB and media. Whether to back up or restore the OBB and the media directories located in the external storage or the SD Card. This is useful for games and the graphical software which actually use these folders.

  • Cache. Android apps have multiple cache directories located at every data directories (both internal and external). There are two types of cache: cache and code cache. Enabling this option excludes both cache directories from all the data directories. It is generally advised to exclude cache directories since most apps do not clear the cache regularly (for some reason, the only way an app can clear its cache is by deleting the entire cache directory) and usually handled by the OS itself. Apps such as Telegram may use a very large cache (depending on the storage space) which may dramatically increase the backup size. When it is disabled, AM also ignores the no_backup directories.

  • Extras. Backup/restore app permissions, net policy, battery optimization, SSAID, etc., enabled by default. Note that, blocking rules are applied after applying the extras. So, if an item is present in both places, it will be overwritten (i.e., the one from the blocking rules will be used).

  • Rules. This option lets you back up blocking rules configured within App Manager. This might come in handy if you have customised permissions or block some components using App Manager as they will also be backed up or restored when you enable this option.

  • Backup Multiple. Whether this is a multiple backup. By default, backups are saved using their user ID. Enabling this option allows you to create additional backups. These backups use the current date-time as the default backup name, but you can also specify custom backup name using the input field displayed when you click on the Backup button.

  • Ausgewählte Anwender. Sicherung oder Wiederherstellung für die ausgewählten Benutzer statt nur für den aktuellen Benutzer. Diese Option wird nur angezeigt, wenn das System mehr als einen Benutzer hat.

  • Signaturprüfungen überspringen. Beim Erstellen eines Backups werden die Prüfsummen jeder Datei (sowie die Signier- Zertifikat(e) der APK-Basisdatei) generiert und in der Datei checksums.txt gespeichert. Wenn Sie die Sicherung wiederherstellen, werden die Prüfsummen erneut generiert und mit den in der genannten Datei gespeicherten Prüfsummen abgeglichen. Wenn Sie diese Option aktivieren, werden die Signaturprüfungen ausgeschaltet. Diese Option wird nur bei der Wiederherstellung eines Backups angewendet. Während der Sicherung werden die Prüfsummen unabhängig von dieser Option generiert.

    Caution.

    Sie sollten diese Option immer deaktivieren, um sicherzustellen, dass Ihre Sicherungen nicht von Anwendungen Dritter verändert werden. Dies würde jedoch nur funktionieren, wenn Sie die Verschlüsselung aktiviert haben.

3.3.3 Sicherung

Backup respects all the backup options except Skip signature checks. If base backups (i.e., backups that don’t have the Backup Multiple option) already exist, you will get a warning as the backups will be overwritten. If Backup Multiple is set, you have an option to input the backup name, or you can leave it blank to use the current date-time.

3.3.4 Wiederherstellung

Restore respects all the backup options and will fail if APK files option is set, but the backup doesn’t contain such backups or in other cases, if the app isn’t installed. When restoring backups for multiple packages, you can only restore the base backups (see backup section for an explanation). However, when restoring backups for a single package, you have the option to select which backup to restore. If All users option is set, AM will restore the selected backup for all users in the latter case but in the former case, it will restore base backups for the respective users.

Notice.

Apps that use storage access framework (SAF), SSAID or Android KeyStore works properly only after an immediate restart.

3.3.5 Sicherung löschen

Delete backup only respects All users option and when it is selected, only the base backups for all users will be deleted with a prompt. When deleting backups for a single package, another dialog will be displayed where you can select the backups to delete.

3.4 Automating Tasks

It is possible to trigger profiles configured inside App Manager via third-party applications such as Automation or Tasker. Traditionally, Intents are used to trigger such operations.

3.4.1 Generating authorization key

In order to ensure proper security, an authorization key is required. To generate a authorization key, go to Settings page and then click Authorization Manager at the bottom. If an authorization key has not been generated, it will be generated automatically. The key can be regenerated as required.

Caution.

Regenerating the authorization key can have some side effects such as invalidation of all the previously configured Intents.

3.4.2 Configuring tasks

The activity io.github.muntashirakon.AppManager.crypto.auth.AuthFeatureDemultiplexer is responsible for handling all the automations. Sending an intent to the activity lets App Manager perform the designated operation by redirecting the Intent to the designated activity or service.

3.4.2.1 Required extras

It has two primary extras required in all conditions. The key names, data types are all follows:

  1. auth. (String value) The authorization key as described in the earlier section.

  2. feature. (String value) Name of the feature. Supported features are described in the next section.

3.4.3 Features

App Manager current support a single feature, namely profile.

3.4.4 Triggering a profile

In order to trigger a profile, feature must have the value profile. In addition, the following extras can be included:

  1. prof. (String value – required) The name of the profile as displayed in the Profiles page.

  2. state. (String value – optional) State of the profile – currently on or off – as specified in the documentation. If this extra is not set, App Manager will display a prompt where a state must be selected. Therefore, for complete automation, this option should be set.

3.5 Net Policy

Short for Network policy or network policies. It is usually located in the Android settings under Mobile data & Wifi section in the app info page of an app. Not all policies are guaranteed to be included in this page (e.g. Samsung), and not all settings are well-understood due to lack of documentation. App Manager can display all the net policies declared in the NetworkPolicyManager. Policies unknown to App Manager will have a Unknown prefix along with the policy constant name and number in the hexadecimal format. Unknown policies should be reported to App Manager for inclusion.

Net policy allows a user to configure certain networking behaviour of an app without modifying the ip tables directly and/or running a firewall app. However, the features it offers largely depend on Android version and ROM. A list of known net policies are listed below:

  1. None or POLICY_NONE: (AOSP) No specific network policy is set. System can still assign rules depending on the nature of the app.

  2. Reject background data or POLICY_REJECT_METERED_BACKGROUND: (AOSP) Reject network usage on metered networks when the application is in background.

  3. Allow background data when Data Saver is on or POLICY_ALLOW_METERED_BACKGROUND: (AOSP) Allow metered network use in the background even when data saving mode is enabled.

  4. Reject cellular data or POLICY_REJECT_CELLULAR (Android 11+) or POLICY_REJECT_ON_DATA (up to Android 10): (Lineage OS) Reject mobile/cellular data. Signals network unavailable to the configured app as if the mobile data is inactive.

  5. Reject VPN data or POLICY_REJECT_VPN (Android 11+) or POLICY_REJECT_ON_VPN (up to Android 10): (Lineage OS) Reject VPN data. Signals network unavailable to the configured app as if the VPN is inactive.

  6. Reject Wi-Fi data or POLICY_REJECT_WIFI (Android 11+) or POLICY_REJECT_ON_WLAN (up to Android 10): (Lineage OS) Reject Wi-Fi data. Signals network unavailable to the configured app as if the device is not connected to a Wi-Fi network.

  7. Disable network access or POLICY_REJECT_ALL (Android 11+) or POLICY_NETWORK_ISOLATED (up to Android 10): (Lineage OS) Reject network access in all circumstances. This is not the same as enforcing the other three policies above, and is the recommended policy for dodgy apps. If this policy is enforced, there is no need to enforce the other policies.

  8. POLICY_ALLOW_METERED_IN_ROAMING: (Samsung) Possibly allow metered network use during roaming. Exact meaning is currently unknown.

  9. POLICY_ALLOW_WHITELIST_IN_ROAMING: (Samsung) Possibly allow network use during roaming. Exact meaning is currently unknown.

4 Frequently Asked Questions

4.1 App Components

4.1.1 What are the app components?

Activities, services, broadcast receivers (also known as receivers) and content providers (also known as providers) are jointly called app components. More technically, they all inherit the ComponentInfo class.

4.1.2 How are the tracker or other components blocked in AM? What are its limitations?

AM blocks application components (or tracker components) using a method called Intent Firewall (IFW), it is very superior to other methods such as pm (PackageManager), Shizuku or any other method that uses the package manager to enable or disable the components. If a component is disabled by the latter methods, the app itself can detect that the component is being blocked and can re-enable it as it has full access to its own components. (Many deceptive apps actually exploit this in order to keep the tracker components unblocked.) On the other hand, IFW is a true firewall and the app cannot detect if the blocking is present. It also cannot re-enable it by any means. AM uses the term block rather than disable for this reason.

Even IFW has some limitations which are primarily applicable for the system apps:

  • The app in question is whitelisted by the system i.e. the system cannot function properly without these apps and may cause random crashes. These apps include but not limited to Android System, System UI, Phone Services. They will run even if you disable them or block their components via IFW.

  • Another system app or system process is calling a specific component of the app in question via interprocess communication (IPC). In this case, the component will be activated regardless of its presence in the IFW rules or even if the entire app is disabled. If you have such system apps, the only way to prevent them from running is to get rid of them.

4.1.4 Does app components blocked by other tools retained in AM?

No. But components blocked by the Android System or any other tools are displayed in the App Details page (within the component tabs). In v2.5.12 and onwards, you can import these rules in Settings. But since there is no way to distinguish between components blocked by third-party apps and components blocked by the System, you should be very careful when choosing app.

4.1.5 What happened to the components blocked by AM which are also blocked by other tools?

AM blocks the components again using Intent Firewall (IFW). They are not unblocked (if blocked using pm or Shizuku method) and blocked again. But if you unblock a component in the App Details page, it will be reverted back to default state —- blocked or unblocked as described in the corresponding app manifest —- using both IFW and pm method. However, components blocked by MyAndroidTools (MAT) with IFW method will not be unblocked by AM. To solve this issue, you can first import the corresponding configuration to AM in Settings in which case MAT’s configurations will be removed. But this option is only available from v2.5.12.

4.1.6 What is instant component blocking?

When you block a component in the App Details page, the blocking is not applied by default. It is only applied when you apply blocking using the Apply rules option in the top-right menu. If you enable instant component blocking, blocking will be applied as soon as you block a component. If you choose to block tracker components, however, blocking is applied automatically regardless of this setting. You can also remove blocking for an app by simply clicking on Remove rules in the same menu in the App Details page. Since the default behaviour gives you more control over apps, it is better to keep instant component blocking option disabled.

4.1.7 Tracker classes versus tracker components

All app components are classes but not all classes are components. In fact, only a few of the classes are components. That being said, scanner page displays a list of trackers along with the number of classes, not just the components. In all other pages, trackers and tracker components are used synonymously to denote tracker components, i.e. blocking tracker means blocking tracker components, not tracker classes.

Info.

Tracker classes cannot be blocked. They can only be removed by editing the app itself.

4.1.8 How to unblock the tracker components blocked using 1-Click Ops or Batch Ops?

Some apps may misbehave due to their dependency to tracker components blocked by AM. From v2.5.12, there is an option to unblock tracker components in the 1-Click Ops page. However, in previous versions, there is no such options. To unblock these tracker components, first go to the App Details page of the misbehaving app. Then, switching to the Activities tab, click on the Remove rules options in the top-right menu. All the blocking rules related to the components of the app will be removed immediately. Alternatively, if you have found the component that is causing the issue, you can unblock the component by clicking on the unblock button next to the component name. If you have enabled instant component blocking in Settings, disable it first as Remove rules option will not be visible when it is enabled.

If you have Google Play Services (com.google.android.gms) installed, unblocking the following services may fix certain crashes:

  1. Ad Request Broker Service .ads.AdRequestBrokerService

  2. Cache Broker Service .ads.cache.CacheBrokerService

  3. Gservices Value Broker Service .ads.GservicesValueBrokerService

  4. Advertising Id Notification Service .ads.identifier.service.AdvertisingIdNotificationService

  5. Advertising Id Service .ads.identifier.service.AdvertisingIdService

4.2 ADB over TCP

4.2.1 Do I have to enable ADB over TCP everytime I restart?

Unfortunately, yes. However, as of v2.5.13, you don’t need to keep AoT enabled all the time as it now uses a server-client mechanism to interact with the system, but you do have to keep the Developer options as well as USB debugging enabled. To do that, enable ADB over TCP and open App Manager. You should see working on ADB mode toast message in the bottom. If you see it, you can safely stop the server. For Lineage OS or its derivative OS, you can toggle AoT without any PC or Mac by simply toggling the ADB over network option located just below the USB debugging, but the server can’t be stopped for the latter case.

4.2.2 Cannot enable USB debugging. What to do?

See §3.1.2 in Chapter 3.

4.2.3 Can I block tracker or any other application components using ADB over TCP?

Sadly, no. ADB has limited permissions and controlling application components is not one of them.

4.2.4 Which features can be used in ADB mode?

Die meisten der vom ADB-Modus unterstützten Funktionen sind standardmäßig aktiviert, sobald die ADB-Unterstützung von AM erkannt wird. Dazu gehören Deaktivieren, Zwangsstoppen, Daten löschen, App-Ops und Berechtigungen gewähren/entziehen. Sie können auch Anwendungen ohne eine Aufforderung installieren und Laufende Apps/Prozesse anzeigen.

4.3 Sonstiges

4.3.1 Ich verwende kein root/ADB. Bin ich völlig vor irgendwelchen Schäden sicher?

Ja. AM kann keine Systemeinstellungen ohne Root oder ADB over TCPändern.

4.3.2 Warum hat AM die Berechtigung INTERNET, obwohl es keine Verbindung zum Internet herstellt?

AM verwendet die Berechtigung INTERNET aus den folgenden Gründen:

  1. Um ADB-over-TCP-Unterstützung für Nicht-Root-Benutzer bereitzustellen. ADB over TCP ist ein benutzerdefiniertes Netzwerkprotokoll das normalerweise auf Port 5555 läuft. Um sich mit diesem Port über localhost zu verbinden, benötigt AM daher diese Berechtigung.

  2. Um privilegierten Code sowohl im Root- als auch im ADB-Modus auszuführen. AM ist eine Benutzeranwendung und kann weder privilegierten Code ausführen und kann auch nicht auf versteckte APIs zugreifen. Folglich führt AM einen Server in der privilegierten Umgebung aus, indem es die App_Prozess an Port 60001 nutzt, und auf der Benutzerseite verbindet sich AM mit diesem Server und führt privilegierten Code aus der Ferne von der Anwendung aus. Nun gibt es alternative Möglichkeiten, mit einem entfernten Dienst zu kommunizieren. Diese werden derzeit in Betracht gezogen.

4.3.3 Wie werden die Tracker und Bibliotheken aktualisiert?

Tracker und Bibliotheken werden manuell aktualisiert, bevor eine neue Version veröffentlicht wird.

4.3.4 Gibt es Pläne für Shizuku?

Die Verwendung von versteckten APIs und die Ausführung von privilegiertem Code durch App Manager ist jetzt viel komplexer und kann nicht mit anderen Anwendungen von Drittanbietern wie z. B. Shizuku. Hier sind einige Gründe für die Nichtberücksichtigung von Shizuku (das jetzt die Apache 2.0 Lizenz hat) durch den App Manager:

  1. Shizuku war ursprünglich unfrei, was mich dazu veranlasste, einen ähnlichen Ansatz für App Manager zu verwenden, um sowohl root und ADB zu nutzen

  2. App Manager unterstützt bereits sowohl ADB als auch Root, was in einigen Fällen leistungsfähiger ist als Shizuku

  3. Sich für die wichtigsten Funktionen auf eine Drittanbieter-App zu verlassen, ist keine gute Designentscheidung

  4. Die Integration von Shizuku wird die Komplexität des App Managers erhöhen.

4.3.5 Was ist Bloatware und wie kann man sie entfernen?

Bei Bloatware handelt es sich um überflüssige Anwendungen, die vom Hersteller oder OEM geliefert werden und in der Regel Systemanwendungen sind. Diese Anwendungen werden oft verwendet, um Benutzer zu verfolgen und Benutzerdaten zu sammeln, die sie möglicherweise gewinnbringend verkaufen. System-Apps müssen keine Erlaubnis einholen, um auf Geräteinformationen, Kontakte und Nachrichtendaten sowie auf andere Nutzungsdaten wie Ihre Gewohnheiten und alles, was Sie auf Ihrem gemeinsamen Speicher speichern, zugreifen zu können.

Die Bloatware umfassen auch Google-Apps (wie Google Play Services, Google Play Store, Gmail, Google, Messages, Dialer, Kontakte), Facebook-Apps (die Facebook-App besteht aus vier oder fünf Apps), Facebook Messenger, Instagram, Twitter und viele andere Apps, die ebenfalls Nutzer verfolgen und/oder Nutzerdaten ohne Zustimmung sammeln können, da sie alle System-Apps sind. Sie können einige Berechtigungen in den Android-Einstellungen deaktivieren, aber seien Sie sich bewusst, dass die Android-Einstellungen fast jede Berechtigung versteckt, die ein Sicherheitsexperte als potenziell gefährlich bezeichnen würde.

Wenn es sich bei der Bloatware um Benutzeranwendungen handelt, können Sie sie entweder über die Android-Einstellungen oder über AM deinstallieren. Die Deinstallation von System- Apps ist ohne Root-Berechtigung nicht möglich. Sie können System-Apps auch mit ADB deinstallieren, aber das funktioniert möglicherweise nicht bei allen Apps. AM kann System-Apps mit Root oder ADB deinstallieren (letzteres natürlich mit gewissen Einschränkungen), aber diese Methoden können die Systemanwendungen nicht vollständig entfernen, da sie sich in der Partition system befinden, die eine schreibgeschützte Partition ist. Wenn Sie über Root verfügen, können Sie diese Partition wieder einhängen, um diese Anwendungen manuell zu entfernen, aber dies wird Over the Air (OTA)-Updates unterbrechen, da die Daten in der Systempartition geändert wurden. Es gibt zwei Arten von Updates, Delta- (eine kleine Version, die nur die Änderungen zwischen zwei Versionen enthält) und vollständige Updates. Sie können weiterhin vollständige Updates anwenden, aber die Bloatware wird erneut installiert, und Sie müssen sie daher erneut löschen. Außerdem bieten nicht alle Hersteller vollständige Aktualisierungen an.

Eine andere Lösung besteht darin, diese Apps entweder über die Android-Einstellungen (No-Root) oder AM zu deaktivieren, aber bestimmte Dienste können weiterhin im Hintergrund laufen, da sie von anderen Systemanwendungen unter Verwendung von Interprozesskommunikation (IPC) gestartet werden können. Eine mögliche Lösung ist es, alle Bloatware zu deaktivieren, bis der Dienst endgültig beendet ist (nach einem Neustart). Aufgrund der starken Änderungen an den Android-Frameworks durch die Hersteller kann das Entfernen oder Deaktivieren bestimmter Bloatware jedoch zum Absturz der System-UI oder sogar einen Bootloop verursachen, was zu einem (Soft-)Bricking Ihres Geräts führt. Sie können im Internet suchen oder andere Benutzer befragen um mehr darüber herauszufinden, wie Sie Ihr Gerät debloaten können.

Ab v2.5.19 verfügt AM über eine neue Funktion namens Profile. Die Seite Profile bietet die Möglichkeit, neue Profile aus einer der Voreinstellungen zu erstellen. Die Voreinstellungen bestehen aus Debloating-Profilen, die als Ausgangspunkt für die Überwachung, Deaktivierung und Entfernung von Bloatware von einem proprietären Android-Betriebssystem.

Hinweis.

In den meisten Fällen können Sie Ihr Gerät nicht vollständig debloaten. Daher empfiehlt es sich, ein benutzerdefiniertes ROM zu verwenden, wie Graphene OS, Lineage OS oder deren Derivate, die frei von Bloatware sind.

5 Spezifikationen

5.1 Regeln Spezifikationen

5.1.1 Hintergrund

AM unterstützt derzeit das Sperren von Aktivitäten, Broadcast-Empfängern, Inhaltsanbietern, Diensten, App-Ops und Berechtigungen, und in Zukunft werde ich möglicherweise weitere Blockierungsoptionen hinzufügen. Um die Portabilität zu erhöhen, ist es notwendig, alle diese Daten zu importieren/exportieren.

Die Verwendung einer Datenbank sollte die beste Wahl sein, wenn es um die Speicherung von Daten geht. Im Moment werden mehrere tsv-Dateien wobei jede Datei den Namen des Pakets und eine .tsv-Erweiterung hat. Die Datei/Datenbank wird abgefragt/verarbeitet durch die Klasse RulesStorageManager. Aufgrund dieser Abstraktion sollte es in Zukunft einfacher sein, auf Datenbank- oder verschlüsselte Datenbanksysteme zu wechseln, ohne das Design des gesamten Projekts zu ändern. Derzeit werden alle Konfigurations- dateien unter /data/data/io.github.muntashirakon.AppManager/Files/conf gespeichert.

5.1.2 Regeln Dateiformat

5.1.2.1 Intern

Das folgende Format wird intern in App Manager verwendet und ist nicht mit dem externen Format kompatibel.

 <Name> <Typ> <Modus>|<Komponente_Status>|<ist_gewährt>

Hier:

  • <Name> – Name der Komponente/Zulassung/App-Op (im Falle einer App-Op kann es sich um einen String oder eine ganze Zahl handeln)

  • <Typ> – Eines der Elemente ACTIVITY, RECEIVER, PROVIDER, SERVICE, App_OP, PERMISSION

  • <Modus> – (Für app ops) Die zugehörige mode constant

  • <Komponente_Status> – (Für Komponenten) Komponentenstatus

    • wahr – Die Komponente wurde angewendet (der Wert wahr wird aus Kompatibilitätsgründen beibehalten)

    • falsch – Die Komponente wurde noch nicht angewendet, wird aber in Zukunft angewendet (der Wert falsch wird aus Kompatibilitätsgründen beibehalten)

    • freigeschaltet – Die Komponente soll freigegeben werden

  • <ist_gewährt> – (Für Berechtigungen) Ob die Berechtigung erteilt oder entzogen ist

5.1.2.2 Extern

Externes Format wird zum Importieren oder Exportieren von Regeln in App Manager verwendet.

 <Paketname> <Komponentenname> <Typ> <Modus>|<Komponentenstatus>|<ist_gewährt>

Das Format ist im Wesentlichen dasselbe wie oben, mit Ausnahme des ersten Elements, das der Name des Pakets ist.

Vorsicht.

Die exportierten Regeln haben ein anderes Format als die internen Regeln und sollten nicht direkt in die Datei conf-Ordner kopiert werden.

6 Änderungsprotokolle

6.1 v2.6.0 (385)

6.1.1 Introducing Backups

Back up/restore feature is now finally out of beta! Read the corresponding guide to understand how it works.

6.1.2 Introducing Log Viewer

Log viewer is essentially a front-end for logcat. It can be used to filter logs by tag or pid (process ID), or even by custom filters. Log levels AKA verbosity can also be configured. You can also save, share and manage logs.

6.1.3 Lock App Manager

Lock App Manager with the screen lock configured for your device.

6.1.4 Extended Modes for App Ops

You can set any mode for any app ops that your device supports, either from the 1-click ops page or from the app ops tab.

6.1.5 New Batch Ops: Add to Profile

You can now easily add selected apps to an existing profile using the batch operations.

6.1.6 App Info: Improved

App info tab now has many options, including the ability to change SSAID, network policy (i.e. background network usage), battery optimization, etc. Most of the tags used in this tab are also clickable, and if you click on them, you will be able to look at the current state or configure them right away.

6.1.7 Advanced Sort and Filtering Options in the Main Page

Sort and filter options are now replaced by List Options which is highly configurable, including the ability to filter using profiles.

6.1.8 About This Device

Interested in knowing about your device in just one page? Go to the bottom of the settings page.

6.1.9 Enable/disable Features

Not interested in all the features that AM offers? You can disable some features in settings.

6.1.10 New Languages

AM now has more than 19 languages! New languages include Farsi, Japanese and Traditional Chinese.

6.1.11 Signing the APK Files

You can now import external signing keys in AM! For security, App Manager has its own encrypted KeyStore which can also be imported or exported.

6.1.12 New Extension: UnAPKM

Since APKMirror has removed encryption from their APKM files, it’s no longer necessary to decrypt them. As a result, the option to decrypt APKM files has been removed. Instead, this option is now provided by the UnAPKM extension which you can grab from F-Droid. So, if you have an encrypted APKM file and have this extension installed, you can open the file directly in AM.

6.2 v2.5.20 (375)

6.2.1 Introducing Profiles

Profiles finally closes the related issue. Profiles can be used to execute certain tasks repeatedly without doing everything manually. A profile can be applied (or invoked) either from the Profiles page or from the home screen by creating shortcuts. There are also some presets which consist of debloating profiles taken from Universal Android Debloater.

6.2.1.0.1 Known limitations
  • Exporting rules and applying permissions are not currently working.

  • Profiles are applied for all users.

6.2.2 The Interceptor

Intent Intercept works as a man-in-the-middle between source and destination, that is, when you open a file or URL with another app, you can see what is being shared by opening it with Interceptor first. You can also add or modify the intents before sending them to the destination. Additionally, you can double-click on any exportable activities in the Activities tab in the App Details page to open them in the Interceptor to add more configurations.

6.2.2.0.1 Known limitation

Editing extras is not currently possible.

6.2.3 UnAPKM: DeDRM the APKM files

When I released a small tool called UnAPKM, I promised that similar feature will be available in App Manager. I am proud to announce that you can open APKM files directly in the App Info page or convert them to APKS or install them directly.

6.2.4 Multiple user

App manager now supports multiple users! For now, this requires root or ADB. But no-root support is also being considered. If you have multiple users enabled and click on an app installed in multiple profiles, an alert prompt will be displayed where you can select the user.

6.2.5 Vive la France!

Thanks to the contributors, we have one more addition to the language club: French. You can add more languages or improve existing translations at Weblate.

6.2.6 Report crashes

If App Manager crashes, you can now easily report the crash from the notifications which opens the share options. Crashes are not reported by App Manager, it only redirects you to your favourite Email client.

6.2.7 Android 11

Added support for Android 11. Not everything may work as expected though.

6.2.8 App Installer Improvements

6.2.8.1 Set installation locations

In settings page, you can set install locations such as auto (default), internal only and prefer external.

6.2.8.2 Set APK installer

In settings page, you can also set default APK installer (root/ADB only) instead of App Manager.

6.2.8.3 Multiple users

In settings page, you can allow App Manager to display multiple users during APK installation.

6.2.8.4 Signing APK files

In settings page, you can choose to sign APK files before installing them. You can also select which signature scheme to use in the APK signing option in settings.

6.2.8.4.1 Known limitation

Currently, only a generic key is used to sign APK files

6.3 v2.5.17 (368)

6.3.1 App Installer

As promised, it is now possible to select splits. AM also provides recommendations based on device configurations. If the app is already installed, recommendations are provided based on the installed app. It is also possible to downgrade to a lower version without data loss if the device has root or ADB. But it should be noted that not all app can be downgraded. Installer is also improved to speed up the installation process, especially, for root users. If the app has already been installed and the new (x)apk(s) is newer or older or the same version with a different signature, AM will display a list of changes similar to What’s New before prompting the user to install the app. This is useful if the app has introduced tracker components, new permissions, etc.

6.3.1.0.1 Known Limitations
  • Large app can take a long time to fetch app info and therefore it may take a long time display the installation prompt.

  • If the apk is not located in the internal storage, the app has to be cached first which might also take a long time depending on the size of the apk.

6.3.2 Scanner: Replacement for Exodus Page

Exodus page is now replaced with scanner page. Scanner page contains not only a list of trackers but also a list of used libraries. This is just a start. In the future, this page will contain more in depth analysis of the app.

6.3.3 Introducing System Config

System Config lists various system configurations and whitelists/blacklists included in Android by either OEM/vendor, AOSP or even some Magisk modules. Root users can access this option from the overflow menu in the main page. There isn’t any official documentation for these options therefore it’s difficult to write a complete documentation for this page. I will gradually add documentations using my own knowledge. However, some functions should be understandable by their name.

6.3.4 More Languages

Thanks to the contributors, AM now has more than 12 languages. New languages include Bengali, Hindi, Norwegian, Polish, Russian, Simplified Chinese, Turkish and Ukrainian.

6.3.5 App Info Tab

More tags are added in the app info tab such as KeyStore (apps with KeyStore items), Systemless app (apps installed via Magisk), Running (apps that are running). For external apk, two more options are added namely Reinstall and Downgrade. Now it is possible to share an apk via Bluetooth. For system apps, it is possible to uninstall updates for root/ADB users. But like the similar option in the system settings, this operation will clear all app data. As stated above, exodus has been replaced with scanner.

6.3.7 Running Apps Page

It is now possible to sort and filter processes in this tab. Also, the three big buttons are replaced with an easy-to-use three dot menu. Previously the memory usage was wrong which is fixed in this version.

6.3.8 Built-in Toybox

Toybox (an alternative to busybox) is bundled with AM. Although Android has this utility built-in from API 23, toybox is bundled in order to prevent buggy implementations and to support API < 23.

6.3.9 Component Blocker Improvements

Component blocker seemed to be problematic in the previous version, especially when global component blocking is enabled. The issues are mostly fixed now.

Caution.

The component blocking mechanism is no longer compatible with v2.5.6 due to various security issues. If you have this version, upgrade to v2.5.13 or earlier versions first. After that, enable global component blocking and disable it again.

6.3.10 Improvements in the App Details Page

Value of various app ops depend on their parent app ops. Therefore, when you allow/deny an app op, the parent of the app op gets modified. This fixes the issues some users have been complaining regarding some app ops that couldn’t be changed.

If an app has the target API 23 or less, its permissions cannot be modified using the pm grant … command. Therefore, for such apps, option to toggle permission has been disabled.

The signature tab is improved to support localization. It also displays multiple checksums for a signature.

6.3.11 App Manifest

Manifest no longer crashes if the size of the manifest is too long. Generated manifest are now more accurate than before.

6.4 v2.5.13 (348)

6.4.1 Bundled App (Split APK)

Bundled app formats such as apks and xapk are now supported. You can install these apps using the regular installation buttons. For root and adb users, apps are installed using shell, and for non-root users, the platform default method is used.

6.4.1.0.1 Known Limitations
  • Currently all splits apks are installed. But this behaviour is going to change in the next release. If you only need a few splits instead of all, extract the APKS or XAPK file, and then, create a new zip file with your desired split apks and replace the ZIP extension with APKS. Now, open it with AM.

  • There is no progress dialog to display the installation progress.

6.4.2 Direct Install Support

You can now install APK, APKS or XAPK directly from your favourite browser or file manager. For apps that need updates, a What’s New dialog is displayed showing the changes in the new version.

6.4.2.0.1 Known Limitations
  • Downgrade is not yet possible.

  • There is no progress dialog to display the installation progress. If you cannot interact with the current page, wait until the installation is finished.

6.4.3 Remove All Blocking Rules

In the Settings page, a new option is added which can be used to remove all blocking rules configured within App Manager.

6.4.4 App Ops

  • App Ops are now generated using a technique similar to AppOpsX. This should decrease the loading time significantly in the App Ops tab.

  • In the App Ops tab, a menu item is added which can be used to list only active app ops without including the default app ops. The preference is saved in the shared preferences.

6.4.4.0.1 Known Limitation

Often the App Ops tab may not be responsive. If that’s the case, restart App Manager.

6.4.5 Enhanced ADB Support

ADB shell commands are now executed using a technique similar to AppOpsX (This is the free alternative of AppOps by Rikka.). This should dramatically increase the execution time.

6.4.5.0.1 Known Limitation

AM can often crash or become not responsive. If that’s the case, restart App Manager.

6.4.6 Filtering in Main Page

Add an option to filter apps that has at least one activity.

6.4.7 Apk Backup/Sharing

Apk files are now saved as app name_version.extension instead of package.name.extension.

6.4.8 Batch Ops

  • Added a foreground service to run batch operations. The result of the operation is displayed in a notification. If an operation has failed for some packages, clicking on the notification will open a dialog box listing the failed packages. There is also a Try Again button on the bottom which can be used to perform the operation again for the failed packages.

  • Replaced Linux kill with force-stop.

6.4.9 Translations

Added German and Portuguese (Brazilian) translations.

6.4.9.0.1 Known Limitation

Not all translations are verified yet.

6.4.10 App Data Backup

Install app only for the current user at the time of restoring backups. Support for split apks is also added.

Data backup feature is now considered unstable. If you encounter any problem, please report to me without hesitation.

7 App Ops

7.1 Background

App Ops (short hand for Application Operations) are used by Android system (since Android 4.3) to control application permissions. The user can control some permissions, but only the permissions that are considered dangerous (and Google thinks knowing your phone number isn’t a dangerous thing). So, app ops seems to be the one we need if we want to install apps like Facebook and it’s Messenger (the latter literary records everything if you live outside the EU) and still want some privacy and/or security. Although certain features of app ops were available in Settings and later in hidden settings in older version of Android, it’s completely hidden in newer versions of Android and is continued to be kept hidden. Now, any app with android.Manifest.permission.GET_APP_OPS_STATS permission can get the app ops information for other applications but this permission is hidden from users and can only be enabled using ADB or root. Still, the app with this permission cannot grant or revoke permissions (actually mode of operation) for apps other than itself (with limited capacity, of course). To modify the ops of other app, the app needs android.Manifest.permission.UPDATE_APP_OPS_STATS permissions which isn’t accessible via pm command. So, you cannot grant it via root or ADB, the permission is only granted to the system apps. There are very few apps who support disabling permissions via app ops. The best one to my knowledge is AppOpsX. The main (visible) difference between my app (AppManager) and this app is that the latter also provides you the ability to revoke internet permissions (by writing ip tables). One crucial problem that I faced during the development of the app ops API is the lack of documentation in English language.

7.2 Introduction to App Ops

Figure 1 describes the process of changing and processing permission. AppOpsManager can be used to manage permissions in Settings app. AppOpsManager is also useful in determining if a certain permission (or operation) is granted to the application. Most of the methods of AppOpsManager are accessible to the user app but unlike a system app, it can only be used to check permissions for any app or for the app itself and start or terminating certain operations. Moreover, not all operations are actually accessible from this Java class. AppOpsManager holds all the necessary constants such as OP_*, OPSTR_*, MODE_* which describes operation code, operation string and mode of operations respectively. It also holds necessary data structures such as PackageOps and OpEntry. PackageOps holds OpEntry for a package, and OpEntry, as the name suggests, describes each operation.

AppOpService is completely hidden from a user application but accessible to the system applications. As it can be seen in Figure 1, this is the class that does the actual management stuff. It contains data structures such as Ops to store basic package info and Op which is similar to OpEntry of AppOpsManager. It also has Shell which is actually the source code of the appops command line tool. It writes configurations to or read configurations from /data/system/appops.xml. System services calls AppOpsService to find out what an application is allowed and what is not allowed to perform, and AppOpsService determines these permissions by parsing /data/system/appops.xml. If no custom values are present in appops.xml, it returns the default mode available in AppOpsManager.

7.3 AppOpsManager

AppOpsManager stands for application operations manager. It consists of various constants and classes to modify app operations.

7.3.1 OP_* Constants

OP_* are the integer constants starting from 0. OP_NONE implies that no operations are specified whereas _NUM_OP denotes the number of operations defined in OP_* prefix. While they denote each operation, the operations are not necessarily unique. In fact, there are many operations that are actually a single operation denoted by multiple OP_* constant (possibly for future use). Vendors may define their own op based on their requirements. MIUI is one of the vendors who are known to do that.

public static final int OP_NONE = -1;
public static final int OP_COARSE_LOCATION = 0;
public static final int OP_FINE_LOCATION = 1;
public static final int OP_GPS = 2;
public static final int OP_VIBRATE = 3;
...
public static final int OP_READ_DEVICE_IDENTIFIERS = 89;
public static final int OP_ACCESS_MEDIA_LOCATION = 90;
public static final int OP_ACTIVATE_PLATFORM_VPN = 91;
public static final int _NUM_OP = 92;

Whether an operation is unique is defined by sOpToSwitch. It maps each operation to another operation or to itself (if it’s a unique operation). For instance, OP_FINE_LOCATION and OP_GPS are mapped to OP_COARSE_LOCATION.

Each operation has a private name which are described by sOpNames. These names are usually the same names as the constants without the OP_ prefix. Some operations have public names as well which are described by sOpToString. For instance, OP_COARSE_LOCATION has the public name android:coarse_location.

As a gradual process of moving permissions to app ops, there are already many permissions that are defined under some operations. These permissions are mapped in sOpPerms. For example, the permission android.Manifest.permission.ACCESS_COARSE_LOCATION is mapped to OP_COARSE_LOCATION. Some operations may not have any associated permissions which have null values.

As described in the previous section, operations that are configured for an app are stored at /data/system/appops.xml. If an operation is not configured, then whether system will allow that operation is determined from sOpDefaultMode. It lists the default mode for each operation.

7.3.2 MODE_* Constants

MODE_* constants also integer constants starting from 0. These constants are assigned to each operation describing whether an app is authorised to perform that operation. These modes usually have associated names such as allow for MODE_ALLOWED, ignore for MODE_IGNORED, deny for MODE_ERRORED (a rather misnomer), default for MODE_DEFAULT and foreground for MODE_FOREGROUND.

  1. MODE_ALLOWED. The app is allowed to perform the given operation

  2. MODE_IGNORED. The app is not allowed to perform the given operation, and any attempt to perform the operation should silently fail, i.e. it should not cause the app to crash

  3. MODE_ERRORED. The app is not allowed to perform the given operation, and this attempt should cause it to have a fatal error, typically a SecurityException

  4. MODE_DEFAULT. The app should use its default security check, specified in AppOpsManager

  5. MODE_FOREGROUND. Special mode that means “allow only when app is in foreground.” This mode was added in Android 10

  6. MODE_ASK. This is a custom mode used by MIUI whose uses are unknown.

7.3.3 PackageOps

AppOpsManager.PackageOps is a data structure to store all the OpEntry for a package. In simple terms, it stores all the customised operations for a package.

public static class PackageOps implements Parcelable {
    private final String mPackageName;
    private final int mUid;
    private final List<OpEntry> mEntries;
    ...
}

As can be seen in Listing 2, it stores all OpEntry for a package as well as the corresponding package name and its kernel user ID.

7.3.4 OpEntry

AppOpsManager.OpEntry is a data structure that stores a single operation for any package.

public static final class OpEntry implements Parcelable {
    private final int mOp;
    private final boolean mRunning;
    private final @Mode int mMode;
    private final @Nullable LongSparseLongArray mAccessTimes;
    private final @Nullable LongSparseLongArray mRejectTimes;
    private final @Nullable LongSparseLongArray mDurations;
    private final @Nullable LongSparseLongArray mProxyUids;
    private final @Nullable LongSparseArray<String> mProxyPackageNames;
    ...
}

Here:

  • mOp: Denotes one of the OP_* constants

  • mRunning: Whether the operation is in progress (i.e. the operation has started but not finished yet). Not all operations can be started or finished this way

  • mMOde: One of the MODE_* constants

  • mAccessTimes: Stores all the available access times

  • mRejectTimes: Stores all the available reject times

  • mDurations: All available access durations, checking this with mRunning will tell you for how long the app is performing a certain app operation

  • mProxyUids: No documentation found

  • mProxyPackageNames: No documentation found

7.3.5 Usage

TODO

7.4 AppOpsService

TODO

7.5 appops.xml

Latest appops.xml has the following format: (This DTD is made by me and by no means perfect, has compatibility issues.)

<!DOCTYPE app-ops [

<!ELEMENT app-ops (uid|pkg)*>
<!ATTLIST app-ops v CDATA #IMPLIED>

<!ELEMENT uid (op)*>
<!ATTLIST uid n CDATA #REQUIRED>

<!ELEMENT pkg (uid)*>
<!ATTLIST pkg n CDATA #REQUIRED>

<!ELEMENT uid (op)*>
<!ATTLIST uid
n CDATA #REQUIRED
p CDATA #IMPLIED>

<!ELEMENT op (st)*>
<!ATTLIST op
n CDATA #REQUIRED
m CDATA #REQUIRED>

<!ELEMENT st EMPTY>
<!ATTLIST st
n CDATA #REQUIRED
t CDATA #IMPLIED
r CDATA #IMPLIED
d CDATA #IMPLIED
pp CDATA #IMPLIED
pu CDATA #IMPLIED>

]>

The instruction below follows the exact order given above:

This definition can be found at AppOpsService.

7.6 Command Line Interface

appops or cmd appops (on latest versions) can be accessible via ADB or root. This is an easier method to get or update any operation for a package (provided the package name is known). The help page of this command is self-explanatory:

AppOps service (appops) commands:
help
Print this help text.
start [--user <USER_ID>] <PACKAGE | UID> <OP>
Starts a given operation for a particular application.
stop [--user <USER_ID>] <PACKAGE | UID> <OP>
Stops a given operation for a particular application.
set [--user <USER_ID>] <[--uid] PACKAGE | UID> <OP> <MODE>
Set the mode for a particular application and operation.
get [--user <USER_ID>] <PACKAGE | UID> [<OP>]
Return the mode for a particular application and optional operation.
query-op [--user <USER_ID>] <OP> [<MODE>]
Print all packages that currently have the given op in the given mode.
reset [--user <USER_ID>] [<PACKAGE>]
Reset the given application or all applications to default modes.
write-settings
Immediately write pending changes to storage.
read-settings
Read the last written settings, replacing current state in RAM.
options:
<PACKAGE> an Android package name or its UID if prefixed by --uid
<OP>      an AppOps operation.
<MODE>    one of allow, ignore, deny, or default
<USER_ID> the user id under which the package is installed. If --user is not
specified, the current user is assumed.

  1. Nur für die Verteilung normaler Versionen↩︎

  2. GitHub Pull Anträge werden manuell mit den entsprechenden Patches zusammengeführt. Daher kann es sein, dass GitHub sie fälschlicherweise als geschlossen markiert, anstatt sie zusammenzuführen.↩︎

  3. Sie können mich auch als “Muntashir Akon” ansprechen↩︎