App Manager

Muntashir Al-Islam

image

App Manager

Nutzerhandbuch

v3.1.0

24 März 2023

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 v3.0.0 – v3.0.3 (stable) und v3.1.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..

Figure 1: Ein Menüpunkt der Anwendungsliste auf der Hauptseite

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 Liste der Optionen

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

2.1.5.1.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.1.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.1.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.2 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.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 ADBist.

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

Anwendungsdetails Seite besteht aus 11 (elf) Registerkarten. Sie beschreibt fast alle Informationen, die eine Anwendung haben kann, einschließlich aller Attribute aus ihrem Manifest, Anwendungsoperationen, Signier Informationen, Bibliotheken, und so weiter.

2.2.1 Farbcodes

Liste der Farben, 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.3 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:

      • Default. Basierend auf der Art der Anwendung. Für Systemanwendungen sollte es deaktiviert sein, und für andere sollte es erzwungen werden.

      • None/disabled. Die Anwendung hat vollen Zugriff auf die versteckte API, wie sie vorher verwendet wurde Android 9.

      • Warn. Wie oben, mit dem Unterschied, dass Warnungen jedes Mal protokolliert werden, wenn die Anwendung auf die versteckte API zugreift. Diese Funktion wird meist nicht verwendet.

      • Enforce. Die Anwendung kann nicht auf die versteckte API zugreifen, entweder auf die dunkelgraue Liste oder die schwarze Liste, oder beides. Dies ist die Standardoption für Anwendungen von Drittanbietern in Android 9 und höher, es sei denn, die Anwendung vom OEM oder dem Hersteller auf die Whitelist gesetzt wurde.

        Warnung:

        Die Richtlinie zur Durchsetzung versteckter APIs ist in Android nicht richtig implementiert und kann von der Anwendung umgangen werden. Aus diesem Grund sollte diesem Wert nicht vertraut werden.

    • 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 Tags

  • Tracker info. Number of tracker components in the application (e.g., 5 trackers) The colour of the tag appears orange if the trackers are unblocked and dark cyan if they are blocked in App Manager. Clicking on the tag opens a dialog containing the list of tracker components which can be blocked or unblocked if App Manager has sufficient privileges.

  • Application type. User application or system application. If it is a system application, whether the application is an updated version of the system application or if the application is installed systemless-ly via Magisk.

  • Split APK info. Number of splits in the APK excluding the base APK (e.g., 5 splits). Clicking on the tag opens a dialog containing the split APK information such as type and size.

  • Debuggable. The application can be debugged over ADB. Debuggable applications can enjoy certain functions unavailable to a regular application. The data of the application might be accessible via ADB (e.g. using run-as command) without any additional permissions.

  • Test only. The application is a test-only application. Test-only applications can enjoy certain functions unavailable to a regular application. The data of the application might be accessible via ADB (e.g. using run-as command) without any additional permissions.

  • Large heap. The application has requested large heap size i.e. more space in memory (RAM) is requested for dynamic allocation. It is still up to the operating system to decide whether to allocate large space for the application. App Manager, for example, requests large heap size because it needs to load an entire APK into memory while scanning an APK before Android 8.

  • No code. The application does not have any code associated with it i.e. DEX files aren’t present. In some system applications, the actual code might be located in another place.

  • Running. One or more services of the application is currently running in the background. Clicking on the tag opens a dialog containing the list of running services. Clicking on any services opens it in the log viewer provided the log viewer feature is enabled. There’s also an option to force-stop the application.

  • Stopped. The application is force stopped. This may not prevent it from running automatically later.

  • Disabled. Denotes that the application is disabled (hidden from the launcher).

  • Suspended. Denotes that the application is suspended (grayed out in the launcher).

  • Hidden. Denotes that the application is hidden (hidden from the launcher).

  • MagiskHide. MagiskHide is enabled. Clicking on the tag opens a dialog containing the list of processes within the application that can be added or removed from the MagiskHide list.

  • MagiskDenyList. The application is present in MagiskDenyList. Clicking on the tag opens a dialog containing the list of processes within the application that can be added or removed from MagiskDenyList.

  • WX. The app violates “W^X policy” and is capable of writing and executing in the same directory or in the same portion of memory. This allows the execution of arbitrary executables either by the modification of executables embedded within the app or by downloading them from the Internet.

    Siehe auch: W^X in Wikipedia

  • KeyStore. The application has items in the Android KeyStore. Clicking on the tag opens a dialog containing all the KeyStore files that belong to the application.

  • Backup. The application was backed up using App Manager at least once. Clicking on the tag opens a dialog containing all the available backups along with metadata.

  • No battery optimisation. Battery optimisation is disabled for the application. It is possible to re-enable battery optimisation by clicking on the tag.

  • Net policy. Network policy (e.g., background data usage) is configured for the application. Clicking on the tag displays a dialog containing the supported policies for the platform along with the options to configure them.

  • SSAID. Clicking on the tag opens a dialog containing the current SSAID assigned to the application. It is also possible to reset/regenerate the SSAID if needed.

  • SAF. Denotes that the application has been granted to access one or more storage locations or files i.e. URIs via Storage Access Framework (SAF). Clicking on the tag opens a dialog containing the list of granted URIs.

  • Play App Signing. Indicates that the application might be signed by Google.

2.2.2.3 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 eine 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. 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). 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, 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 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.

    Siehe auch: 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.4 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 zu teilen oder (wenn die Anwendung mehrere Teile hat) APKS Datei, die aus der Anwendung extrahiert wurde.

  • Auffrischen. Aktualisiert die Registerkarte App-Info.

  • Ansicht in Einstellungen. Öffnen Sie die Anwendung in den Android-Einstellungen.

    Sichern/Wiederherstellen. Öffnen Sie den Dialog zum Sichern/Wiederherstellen.

  • Blockierungsregeln exportieren. Exportieren von Regeln, die für die Anwendung im App Manager konfiguriert wurden.

  • Öffnen in Termux. Öffnen Sie die Anwendung in Termux. Dabei wird su - user_id ausgeführt, wobei user_id die Kernel-Benutzerkennung der Anwendung bezeichnet (beschrieben in §2.2.2.1). Diese Option ist nur für den Root-Benutzer sichtbar. Siehe §2.2.2.5, um zu erfahren, wie man Termux für die Ausführung von Befehlen aus Anwendungen von Drittanbietern konfiguriert.

  • Ausführen in Termux. Öffnen Sie die Anwendung über run-as package_name in Termux. Dies ist nur Dies gilt nur für die debuggbaren Anwendungen und funktioniert sowohl für Root- als auch für ADB-Benutzer. Siehe §2.2.2.5 erfahren Sie, wie Sie Termux so konfigurieren, dass Befehle von Drittanbieteranwendungen ausgeführt werden.

  • MagiskHide. Öffnet ein Dialogfeld mit der Liste der Prozesse innerhalb der Anwendung, die zum MagiskHide hinzugefügt oder aus der MagiskHide-Liste entfernt werden können.

  • MagiskDenyList. Öffnet ein Dialogfeld mit einer Liste von Prozessen innerhalb der Anwendung, die aus der MagiskDenyList hinzugefügt oder entfernt werden können.

  • Batterieoptimierung. Aktivieren/Deaktivieren der Batterieoptimierung.

  • Netzpolitik. Konfigurieren Sie die Netzpolitik (z. B. die Datennutzung im Hintergrund) für die Anwendung.

  • Symbol extrahieren. Extrahieren und Speichern des Symbols der Anwendung im gemeinsamen Speicher.

  • Hinzufügenzum Profile. Fügen Sie die Anwendung zu einem der konfigurierten Profile hinzu.

2.2.2.5 Termux konfigurieren

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 die Fenster oder Seiten, die vom Android-Betriebssystem eindeutig identifiziert werden können (z. B., Hauptseite und App-Detailseite sind zwei Aktivitäten). Jede Aktivität kann mehrere UI-Komponenten haben bekannt als Widgets oder Fragmente, und jede Komponente kann verschachtelt oder übereinander gelegt werden. Der Entwickler kann sich auch dafür entscheiden, externe Dateien, Links usw. innerhalb einer Aktivität zu öffnen, indem er eine Methode namens Inhaltsfilter. Wenn Sie zum Beispiel eine Datei mit Ihrem Dateimanager öffnen, durchsucht entweder Ihr Dateimanager oder Betriebssystem die Inhaltsfilter über PackageManager, um die Aktivitäten zu finden, die die Datei öffnen können, und bietet Ihnen an, die Datei mit diesen Aktivitäten zu öffnen.

Aktivitäten, die exportierbar sind, können in der Regel von beliebigen Drittanbieteranwendungen geöffnet werden. Einige Aktivitäten erfordern Berechtigungen, und wenn das der Fall ist, kann nur eine Anwendung mit diesen Berechtigungen sie öffnen. In der Aktivitäten können Aktivitäten über die Schaltfläche Launch gestartet werden. Wenn es erforderlich ist, zusätzliche zusätzliche Informationen, wie z. B. Intent-Extras, Daten oder Aktionen, einzugeben, öffnet ein langer Klick auf die Schaltfläche Starten das Fenster Activity Interceptor Seite, die solche Funktionen bietet.

Hinweis:

Wenn Sie eine Aktivität nicht öffnen können, ist es wahrscheinlich, dass bestimmte Abhängigkeiten nicht erfüllt sind, z.B.  Sie Sie können z. B. die Seite App-Details nicht öffnen, weil Sie dafür zumindest einen Paketnamen angeben müssen. Da diese Abhängigkeiten nicht programmatisch hergeleitet werden können, können diese Aktivitäten standardmäßig nicht über den App Manager geöffnet werden.

Es ist auch möglich, über die Schaltfläche Verknüpfung erstellen Verknüpfungen zu den Aktivitäten zu erstellen.

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 Benutzer sehen können, erledigen Dienste Hintergrundaufgaben. Zum Beispiel, wenn Sie mit dem Internetbrowser Ihres Telefons ein Video aus dem Internet herunterladen, verwendet der Internetbrowser einen Hintergrunddienst, um den Inhalt herunterzuladen.

Wenn eine Aktivität geschlossen oder aus dem Abschnitt Ereignisse entfernt wird, kann sie sofort zerstört werden, abhängig von vielen Faktoren, z. B. davon, wie viel freier Speicherplatz auf dem Telefon vorhanden ist. Dienste können jedoch auf Wunsch unbegrenzt ausgeführt werden. Wenn mehr Dienste im Hintergrund ausgeführt werden, kann das Telefon aufgrund des Mangels an Speicher und/oder Verarbeitungsleistung langsamer werden, und der Akku des Telefons wird schneller entladen. Bei neueren Android-Versionen ist die Funktion zur Akkuoptimierung standardmäßig für alle Anwendungen aktiviert. Wenn diese Funktion aktiviert ist, kann das System jeden Dienst willkürlich beenden. Allerdings, Vordergrunddienste (d. h. Dienste, die mit einer festen Benachrichtigung laufen, wie z. B. der Musikplayer) werden in der Regel nicht beendet, es sei denn, die Ressourcen des Systems sind knapp (Speicher, Batterie usw.). Herstellerspezifische Standard-ROMs können eine aggressivere Optimierung bieten. MIUI verfügt beispielsweise über eine sehr aggressive Optimierungsfunktion, die als MIUI Optimierung bekannt ist.

Beide Aktivitäten und Dienste werden im selben looper ausgeführt, dem Hauptlooper, was bedeutet, dass die Dienste nicht wirklich im Hintergrund ausgeführt werden. Es ist die Aufgabe des Entwicklers, dies sicherzustellen. Wie kommuniziert die Anwendung mit dem Dienst? Sie verwendet Broadcast Empfänger oder Binder.

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 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 .fm.FmProvider verwendet, um die APK zu speichern oder die Regeln zu exportieren. Es gibt viele Inhaltsanbieter, darunter auch die vom System bereitgestellten, um verschiedene inhaltsbezogenen Aufgaben wie Datenbankverwaltung, Nachverfolgung, Suche usw. Jeder Inhaltsanbieter hat ein Feld namens Authority, das für die Anwendung im gesamten Android-Ökosystem ebenso eindeutig ist wie der Paketname.

2.2.3.5 Zusätzliche Funktionen für gerootete Handys

Im Gegensatz zu Nicht-Root-Benutzern, die in diesen Registerkarten meist nur Zuschauer sind, können Root-Benutzer verschiedene Operationen durchführen.

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). Diese Ikone (eigentlich eine Schaltfläche) kann benutzt werden, um den Blockierungsstatus dieser bestimmten Komponente zu ändern. Wenn Instant Component Blocking nicht aktiviert ist oder die Blockierung noch nie auf die Anwendung angewendet wurde, müssen die Änderungen über die Option Regeln anwenden im Drei-Punkte-Menü. Es ist auch möglich, die bereits angewendeten Regeln mit der gleichen Option zu entfernen (dieses Mal als Regeln entfernen).

Es ist auch möglich, die Komponente mit einer der verschiedenen Methoden zu blockieren, indem Sie lange auf das Symbol klicken.

2.2.3.5.2 Tracker blockieren

Es ist möglich, Tracker-Komponenten mit der Option Tracker blockieren im Drei-Punkte-Menü zu deaktivieren. Alle Tracker Komponenten werden unabhängig von der Registerkarte, in der Sie sich gerade befinden, blockiert.

Info:

Tracker-Komponenten sind eine Untermenge der Anwendungskomponenten. Daher werden sie mit der gleichen Methode blockiert, die auch für das Blockieren anderer 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 Operationen. Seit Android 4.3 werden App Ops von Android verwendet, um viele Systemberechtigungen zu kontrollieren. Jeder App Ops ist eine eindeutige Nummer zugeordnet, die zusammen mit dem privaten Namen der Operation auf der Registerkarte App Ops angezeigt wird. Einige App Ops haben auch einen öffentlichen Namen. Eine große Anzahl von App Ops sind auch mit TextitZulassungen verbunden. Auf dieser Registerkarte wird eine App-Operation als gefährlich eingestuft, wenn die zugehörige Berechtigung als gefährlich markiert ist. Andere Informationen wie Flags, Berechtigungsname, Berechtigungsbeschreibung, Paketname, Gruppe werden ebenfalls aus der zugehörigen Erlaubnis übernommen. Andere können die folgenden enthalten:

  • Mode. Er beschreibt den aktuellen Berechtigungsstatus, der Erlauben, Verbieten (eine eher falsche Bezeichnung, es bedeutet einfach Fehler), Ignorieren (bedeutet eigentlich verweigern), standardmäßig (abgeleitet aus einer Liste von Voreinstellungen, die intern vom Hersteller oder dem AOSP festgelegt wurden), Vordergrund (in neueren Android-Versionen bedeutet es, dass die App Ops nur verwendet werden kann, wenn die Anwendung im Vordergrund läuft), und einige benutzerdefinierte Modi, die von den Anbietern festgelegt wurden (MIUI verwendet beispielsweise Fragen).

  • Geltungsdauer. Die Zeitspanne, in der diese Anwendung verwendet wurde (es kann negative Zeitspannen geben, deren Anwendungsfälle mir derzeit nicht bekannt sind).

  • Accept Time. Das letzte Mal, dass der Anwendungsvorgang 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 jedem App-OP-Element befindet sich eine Umschalttaste, mit der es zugelassen oder verweigert (ignoriert) werden kann. Andere unterstützte Modi können auch durch einen langen Klick auf die Umschalttaste eingestellt werden. Wenn die gewünschte Anwendung nicht in der Registerkarte aufgeführt ist, kann stattdessen die Option Set custom app op im Menü verwendet werden. Es ist auch möglich, die Änderungen mit der Option Zurücksetzen auf Standard zurückzusetzen oder alle gefährlichen App-Ops mit der entsprechenden Option im Menü zu verweigern. Aufgrund der Funktionsweise von App Ops kann es einige Zeit dauern, bis das System sie anwendet.

Tip:

Das Verweigern bestimmter App Ops kann zu Fehlverhalten der Anwendung führen. Wenn alle Versuche fehlschlagen, kann die Option Auf Standardwerte zurücksetzen als letzter Ausweg verwendet werden.

Es ist möglich, die Liste in aufsteigender Reihenfolge nach App-Op-Namen und den zugehörigen eindeutigen Nummern (oder Werten) zu sortieren, oder die verweigerten App-Ops zuerst aufzulisten und die entsprechenden Sortieroptionen zu verwenden.

Siehe auch: Anhang: App Ops

2.2.4.2 Verwendete Berechtigungen

Verwendete Berechtigungen sind die von der Anwendung verwendeten Berechtigungen. Diese werden so genannt, weil sie im Manifest unter Verwendung von Verwendete Berechtigung-Tags angegeben werden. Informationen wie Flags, Berechtigungsname, Berechtigungsbeschreibung, Paketname, Gruppe werden aus dem zugehörigen Berechtigung.

Privilegierte Benutzer können die Berechtigungen Gefährlich und Entwicklung über die Umschalttaste auf der rechten Seite jedes Berechtigungselements. Es ist auch möglich, gefährliche Berechtigungen auf einmal zu entziehen, indem man die entsprechende Option im Menü. Nur diese beiden Arten von Berechtigungen können entzogen werden, da Android nicht erlaubt normal Berechtigungen (was die meisten von ihnen sind) nicht ändern kann. Es könnte immer noch möglich sein, sie zu widerrufen, indem man runtime-permissions.xml selbst bearbeitet, aber ob dies eine Möglichkeit ist, wird noch untersucht.

Info:

Da gefährliche Berechtigungen standardmäßig vom System entzogen werden, ist der Entzug aller gefährlichen Berechtigungen gleichbedeutend mit dem Zurücksetzen aller Berechtigungen.

Es ist möglich, die Berechtigungen nach ihrem Namen (in aufsteigender Reihenfolge) zu sortieren oder zu wählen, ob zuerst die verweigerten oder gefährlichen Berechtigungen zuerst anzuzeigen, 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. Diese Art von Berechtigungen werden als interne Berechtigungen gekennzeichnet. Sie enthält auch in anderen Anwendungen deklarierte Berechtigungen, die als Externe Berechtigungen bezeichnet werden. Externe Berechtigungen werden in den Anwendungskomponenten als Abhängigkeiten angegeben, d. h. eine Anwendung darf die Komponente nur aufrufen, wenn sie die angegebene Berechtigung besitzt. Hier ist eine vollständige Beschreibung der einzelnen Element, das dort angezeigt wird:

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

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

  • Beschreibung. 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 Berechtigungen Flaggen 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). Mehrere zusammengehörige Berechtigungen können oft zusammen gruppiert werden.

2.2.5 Registerkarte Signaturen

Signaturen werden eigentlich Signierinformationen genannt. Eine Anwendung wird mit einem oder mehreren Signierzertifikaten signiert, bevor sie veröffentlicht wird. Die Integrität einer Anwendung, d.h. ob die Anwendung vom tatsächlichen Entwickler stammt und nicht von anderen Personen verändert wurde, kann anhand der Signierinformationen überprüft werden. Wenn eine Anwendung von einem Unbefugten geändert wird, kann sie nicht mehr mit den ursprünglichen Zertifikaten signiert werden, da die Signierinformationen vom eigentlichen Entwickler geheim gehalten werden. Signierinformationen können durch Prüfsummen überprüft werden. Die Prüfsummen werden aus den Zertifikaten selbst generiert. Wenn der Entwickler die Prüfsummen für die Signierzertifikate liefert, können diese mit den Prüfsummen verglichen werden, die in der Registerkarte Signaturen generierten Prüfsummen abgeglichen werden, um die Anwendung zu verifizieren. Wenn Sie zum Beispiel App Manager von GitHub oder dem Telegram Channel heruntergeladen haben, können Sie überprüfen, ob die Anwendung tatsächlich von mir freigegeben wurde, indem Sie einfach die folgende SHA256-Prüfsumme mit der auf dieser Registerkarte angezeigten:

320c0c0fe8cef873f2b554cb88c837f1512589dcced50c5b25c43c04596760ab

In dieser Registerkarte werden mehrere Hash-Algorithmen zur Erzeugung von Prüfsummen verwendet. Dazu gehören MD5, SHA1, SHA256 und SHA512.

Vorsicht:

Signierinformationen sollten mit einem zuverlässigen Hashing-Algorithmus wie SHA256 überprüft werden. Verlassen Sie sich NICHT auf MD5 oder SHA1-Prüfsummen, da diese dafür bekannt sind, dieselben Prüfsummen für mehrere Zertifikate zu erzeugen.

2.2.6 Registerkarte Gemeinsame Bibliotheken

Gemeinsame Bibliotheken listet alle JAR-Legacy-Abhängigkeiten sowie die JNI-Bibliotheken (Java Native Interface) auf. Für JNI-Bibliotheken wird die Plattform (x86/x86_64/ARM/AArch64), die Architektur (32/64 Bit), der Objekttyp (Shared Object oder ausführbar), usw.

2.2.7 Sonstige Registerkarten

Auf anderen Registerkarten werden Komponenten des Android-Manifests wie Funktionen und Konfigurationen aufgelistet. Eine vollständige Beschreibung über diese Registerkarten wird in Kürze verfügbar sein.

2.3 1-Klick-Ops Seite

Diese Seite wird angezeigt, wenn Sie die Option 1-Click Ops im Hauptmenü auswählen.

2.3.1 Blockieren/Entsperren von Trackern

Mit dieser Option können Sie die Werbe-/Tracker-Komponenten der installierten Anwendungen blockieren oder freigeben. Wenn Sie diese Option auswählen, fragt der App Manager, ob er Tracker von allen Anwendungen oder nur von den Benutzeranwendungen auflisten soll. Neulinge sollten es vermeiden, Tracker aus den Systemanwendungen zu blockieren, um unangenehme Folgen zu vermeiden. Danach erscheint ein Dialogfeld mit mehreren Auswahlmöglichkeiten, in dem Sie eine oder mehrere Anwendungen von diesem Vorgang ausschließen können. Die Änderungen werden sofort übernommen, wenn Sie die Schaltfläche block oder unblock drücken.

Hinweis:

Bestimmte Anwendungen funktionieren nach dem Blockieren ihrer Tracker möglicherweise nicht mehr wie erwartet. Wenn dies der Fall ist, entfernen Sie die Blockierungsregeln auf einmal oder nacheinander in den Komponenten-Registerkarten der App-Detailseite für die entsprechende Anwendung.

2.3.2 Block Komponenten Punkte

Diese Option kann verwendet werden, um bestimmte Anwendungskomponenten zu blockieren, die durch ihre Signaturen festgelegt sind. Die Signatur einer Komponente ist der vollständige Name oder ein Teil des Namens der Komponente. Aus Sicherheitsgründen wird empfohlen, am Ende jeder Teilsignatur einen . (Punkt) am Ende jeder Teilsignatur hinzuzufügen, da der zugrunde liegende Algorithmus die Komponenten in einer gierigen Weise sucht und abgleicht. Es ist auch möglich, mehr als eine Signatur einzufügen; in diesem Fall müssen alle Signaturen durch Leerzeichen getrennt werden. Ähnlich wie bei der obigen Option gibt es auch die Möglichkeit, die Systemanwendungen zu sperren.

Vorsicht:

Wenn Sie sich nicht über die Folgen des Blockierens von Anwendungskomponenten anhand ihrer Signaturen im Klaren sind, sollten Sie diese Option nicht verwenden, da sie zu einem Bootloop oder Softbrick führen kann und Sie infolgedessen möglicherweise einen Werksreset durchführen müssen.

2.3.3 Modus für App Ops einstellen Punkte

Diese Option kann verwendet werden, um bestimmte Anwendungsoperationen aller oder ausgewählter Anwendungen zu konfigurieren. Es gibt zwei Felder. In das erste Feld können mehrere app-ops-Konstanten (entweder Namen oder Werte) durch Leerzeichen getrennt eingegeben werden. 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. Die gewünschte App-Op-Konstante ist in der Registerkarte App Ops auf der Seite App-Detailseite zu finden. Das zweite Feld kann verwendet werden, um eine der Modi einzufügen oder auszuwählen, die für die angegebenen App Ops gesetzt werden.

Vorsicht:

Wenn Sie nicht gut über App Ops und die Folgen ihrer Blockierung informiert sind, sollten Sie diese Option nicht verwenden.

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 Anwendungen ohne Backups sichern.

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 Sicherungen der installierten Anwendungen und wiederholen Sie die Sicherung, falls erforderlich.

2.3.4.0.5 Sichern Sie Anwendungen mit Änderungen.

Wenn sich eine Anwendung seit der letzten Sicherung geändert hat, wiederholen Sie ihre Sicherung. Dabei wird eine Reihe von Indizes überprüft, darunter die Anwendungsversion, 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 Sicherungsvorgangs 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.3.6 Trim Caches in All Apps

Delete caches from all applications, including Android system. During this operation, caches of all the running applications may not be cleared as expected.

2.4 Seite Profile

Die Seite Profile kann über das Menü Optionsmenu auf der Hauptseite aufgerufen werden. Sie zeigt in erster Linie eine Liste der konfigurierten Profile zusammen mit den typischen Optionen zur Durchführung von Operationen mit ihnen an. Neue Profile können auch über die Schaltfläche plus in der rechten unteren Ecke hinzugefügt oder importiert werden, dupliziert oder aus einer der Voreinstellungen erstellt werden. Wenn Sie auf ein Profilelement klicken, wird die zugehörige Seite Profilseite geöffnet.

2.4.1 Menü Optionen

Auf dieser Seite gibt es zwei Optionsmenüs. Das Menü mit den drei Punkten in der oberen rechten Ecke bietet zwei Optionen: Voreinstellungen und Importieren.

  • textbfVoreinstellungen Diese Option listet eine Reihe von integrierten Profilen auf, die als Ausgangspunkt verwendet werden können. Die Profile werden aus dem Projekt Universal Android Debloater.

  • Importieren. Mit dieser Option können Sie ein vorhandenes Profil importieren, das zuvor aus dem App Manager exportiert wurde.

Wenn Sie lange auf ein Profilelement klicken, wird ein weiteres Optionsmenü angezeigt. Es bietet die folgenden Optionen:

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

    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 Dialog angezeigt, in dem ein Name für das neue Profil festgelegt werden kann. Wenn Sie auf “OK” klicken, wird Profilseite geladen, wobei alle Konfigurationen, die dieses Profil hat, dupliziert werden. Das Profil wird jedoch nicht gespeichert, bis es manuell gespeichert wird.

  • Export. Exportiert das Profil auf einen externen Speicher. Auf diese Weise exportierte Profile können über die Option import wie oben erwähnt importiert werden.

    TextbfVerknüpfung erstellen Mit dieser Option können Sie eine Verknüpfung für das Profil erstellen. Wenn Sie darauf klicken, werden zwei Optionen angezeigt: Einfach und Erweitert. Bei der Konfiguration mit der letzteren Option wird der Benutzer aufgefordert, einen Profilstatus auszuwählen, wenn die Verknüpfung aufgerufen wird. Bei der ersten Option wird dagegen immer der Standardstatus, 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.

2.5.1 Menü Optionen

Das Menü mit den drei Punkten in der oberen rechten Ecke öffnet das Optionen-Menü. 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.

    Hinweis:

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

  • Speichern. Speichern Sie die Änderungen am Profil.

    Hinweis:

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

  • Verwerfen. Verwirft alle Änderungen, die seit dem letzten Speichervorgang vorgenommen wurden.

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

  • Duplizieren. Mit dieser Option können Sie das Profil duplizieren. Wenn Sie darauf klicken, wird ein Dialogfeld angezeigt in dem man einen Namen für das neue Profil festlegen kann. Wenn Sie auf “OK” klicken, wird diese Seite neu geladen, indem alle Konfigurationen, die dieses Profil hat, dupliziert. Das Profil wird jedoch nicht gespeichert, bis es manuell gespeichert wird.

  • Erstellen einer Verknüpfung Mit dieser Option können Sie eine Verknüpfung für das Profil erstellen. Wenn Sie darauf klicken, gibt es werden zwei Optionen angezeigt: Einfach und Erweitert. Bei der Konfiguration mit der letzteren Option wird der Benutzer aufgefordert Benutzer aufgefordert, einen Profilstatus auszuwählen, wenn die Verknüpfung aufgerufen wird. Bei der ersten Option wird dagegen immer der Standardstatus, der beim letzten Speichern des Profils konfiguriert wurde.

2.5.2 Registerkarte Anwendungen

Auf der Registerkarte Apps werden die in 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.

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 standardmäßig verhalten werden. Wenn zum Beispiel die Option deaktivieren aktiviert ist, werden die Anwendungen deaktiviert, wenn der Zustand Ein ist, und aktiviert, wenn der Zustand Aus ist. Derzeit werden nur die Werte Ein und On unterstützt.

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 wird die Blockierung hier nur auf die ausgewählten Pakete angewendet. Wenn der Status von 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) durch Klicken auf die Schaltfläche deaktiviert im Eingabedialog deaktiviert werden.

2.5.3.5 Anwendungsoperationen

Dies verhält sich genauso wie die Option Modus für App Ops einstellen… auf der der Seite 1-Klick-Ops. Allerdings wird der Vorgang hier nur auf die ausgewählten Pakete angewendet. Wenn der Status von 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 deaktiviert werden (unabhängig von den eingegebenen Werte) durch Klicken auf die Schaltfläche deaktivieren im Eingabedialog deaktiviert werden.

2.5.3.6 Berechtigungen

Mit dieser Option können Sie bestimmte Rechte für die ausgewählten Pakete gewähren oder entziehen. Wie andere oben, müssen die Berechtigungen durch Leerzeichen getrennt werden. Wenn der Staus Ein ist, werden die 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 deaktivieren klicken.

2.5.3.7 Sichern/Wiederherstellen

Mit dieser Option können Sie ein Backup der ausgewählten Anwendungen und ihrer Daten erstellen oder diese wiederherstellen. Hier sind zwei Optionen verfügbar: Sicherungsoptionen und Sicherungsname.

  • Backup-Name 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 “Basis”-Sicherungen leer (stellen Sie außerdem sicher, dass Sie Mehrfachsicherung in den Sicherungsoptionen aktivieren).

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

2.5.3.8 Regeln für die Exportsperre

Achtung:

Diese Option ist noch nicht implementiert.

2.5.3.9 Deaktivieren

Ermöglicht die Aktivierung oder Deaktivierung der ausgewählten Pakete in Abhängigkeit vom Wert von Status. Wenn der Zustand Ein ist, werden die Pakete deaktiviert, und wenn der Zustand Aus ist, werden die Pakete aktiviert.

2.5.3.10 Zwangsstopp

Ermöglicht, dass die ausgewählten Pakete zwangsgestoppt werden.

2.5.3.11 Zwischenspeicher löschen

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

2.5.3.12 Daten löschen

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

2.5.3.13 Tracker blockieren

Aktiviert die Sperrung oder Entsperrung der Tracker-Komponenten der ausgewählten Pakete je nach dem Wert von 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

Aktiviert die Speicherung von APK-Dateien unter AppManager/apks (oder in dem auf der Einstellungsseite ausgewählten Verzeichnis) der ausgewählten Pakete.

2.6 Seite Einstellungen

Die Seite Einstellungen kann verwendet werden, um das Verhalten des App Manager anzupassen.

2.6.1 Sprache

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

2.6.2 Appearance

2.6.2.1 App-Design

In-App-Thema konfigurieren.

2.6.2.2 Layout Direction

Change layout direction, either left to right or right to left. This is usually set using the selected language but not everybody prefers the same direction.

2.6.2.3 Aktivieren/Deaktivieren von Funktionen

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

  • Interceptor

  • Manifest Betrachter

  • Scanner

  • Paketinstallationsprogramm

  • Benutzungszugriff Wenn diese Funktion deaktiviert ist, fragt der App Manager nie nach der Berechtigung Benutzungszugriff. Protokollanzeige

  • App Explorer. Die Option “Explore” wird nicht verfügbar sein, wenn versucht wird, eine APK-Datei zu öffnen.

  • Nutze das Internet. Alle Internetfunktionen sind deaktiviert, wenn diese Funktion ausgeschaltet ist. Derzeit ist die einzige Internetfunktion das Abrufen von Scanberichten über VirusTotal.

2.6.3 Privacy

2.6.3.1 Bildschirm sperren

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

Warnung:

Wenn die Bildschirmsperre in Android nach dem Aktivieren dieser Einstellung deaktiviert ist, wird App Manager nicht geöffnet, bis sie wieder aktiviert wird.

2.6.4 Betriebsmodus

Der Betriebsmodus legt fest, wie der App Manager insgesamt funktioniert. Er hat die folgenden Optionen:

  • Auto. Überlassen Sie App Manager die Wahl der geeigneten Option. Obwohl dies die Standardoption ist, sollten nicht gerootete Benutzer den Modus no-root verwenden.

    Root. Betreibt App Manager im Root-Modus. App Manager fällt in den Modus no-root zurück, wenn root nicht erkannt wird, oder in seltenen Fällen, wenn die Binder-Kommunikation über root deaktiviert ist (z.B. in Phh SuperUser).

  • ADB über TCP. Betreiben Sie App Manager im ADB-Modus über ADB über TCP. App Manager fällt in den no-root-Modus zurück, wenn ADB over TCP nicht aktiviert ist.

    Wireless debugging. Aktivieren Sie ADB über Wireless Debugging. Es wird versucht, zunächst automatisch eine Verbindung mit dem konfigurierten Port automatisch zu verbinden. Wenn dies fehlschlägt, wird der Benutzer aufgefordert, entweder ein Pairing durchzuführen oder sich manuell mit dem ADB-Daemon zu verbinden. App Manager fällt in den Modus no-root zurück, wenn die Verbindung mit dem ADB-Daemon auf diese Weise nicht zustande kommt.

    Info:

    Diese Option wird nur bei Geräten mit Android 11 oder höher angezeigt, da Wireless Debugging mit Android 11 eingeführt wurde.

  • No-root. Betreiben Sie App Manager im no-root Modus. Während App Manager in diesem Modus besser funktioniert, werden alle Root- oder ADB-spezifischen Funktionen deaktiviert.

Hier wird auch der aktuell abgeleitete Betriebsmodus angezeigt. Die tatsächlichen Betriebsmodi sind root, ABD und no-root.

2.6.5 APK-Signierung

2.6.5.1 Signaturregelungen

Konfigurieren Sie die Signaturschemata, die verwendet werden sollen, wenn die APK-Signierung aktiviert ist. Die Signaturschemata v1 und v2 sind standardmäßig aktiviert, aber v3 sollte ebenfalls aktiviert werden, um eine angemessene Sicherheit in Android 9 oder höher zu gewährleisten.

2.6.5.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.

Gefahr:

Verwenden Sie nicht den Schlüssel, der mit App Manager geliefert wird, da er für jeden öffentlich zugänglich ist. In Zukunft wird der Standardschlüssel entfernt werden.

Tipp:

Wenn Sie den Schlüssel in Zukunft verwenden müssen, empfiehlt es sich, selbst einen KeyStore zu erstellen und den Schlüssel zu importieren. Bei Schlüsseln, die im App Manager generiert wurden, besteht die Gefahr, dass sie ohne eine ordnungsgemäße Sicherung gelöscht werden.

2.6.6 Installationsprogramm

2.6.6.1 Benutzer im Installationsprogramm anzeigen

Wenn diese Option aktiviert ist, wird vor der Installation der Anwendung eine Liste der Benutzer angezeigt. Die Anwendung wird nur für die angegebenen Benutzer installiert.

2.6.6.2 APK signieren

Ob die APK-Dateien vor der Installation der Anwendung signiert werden sollen. Die Seite APK Signierung kann verwendet werden, um die Signierung zu konfigurieren.

2.6.6.3 Installationsort

Definieren Sie den APK-Installationsort. Dies kann eine der Optionen auto, nur intern und vorzugsweise extern sein. Bei neueren Android-Versionen garantiert die Auswahl der letzten Option nicht, dass die Anwendung auf dem externen Speicher installiert wird.

2.6.6.4 InstallationsApps

Wählen Sie die Installationsanwendung aus. Dies ist nützlich für Anwendungen, die explizit das Installationsprogramm prüfen, um festzustellen, ob die Anwendung rechtmäßig installiert wurde. Dies funktioniert nur für Root- oder ADB-Benutzer.

Hinweis:

Während die Suche nach dem Installationsprogramm ein legitimes Anliegen für eine Anwendung zu sein scheint, kümmert sich das Android-Framework bereits während der Installation um dieses Problem. Die Suche nach dem Installationsprogramm ist einfach der falsche Weg, um die Legitimität der Quelle einer Anwendung zu beweisen.

2.6.6.5 Tracker blockieren

Ob die Tracking-Komponenten sofort nach der Installation der Anwendung blockiert werden sollen.

2.6.6.6 Änderungen anzeigen

Ob Änderungen an Version, Tracker, Komponenten, Berechtigungen, Signaturen, SDK usw. versionskontrolliert angezeigt werden sollen, wenn die Anwendung bereits installiert wurde.

2.6.6.7 Im Hintergrund installieren

Ob Anwendungen immer im Hintergrund installiert werden sollen. Sobald die Installation abgeschlossen ist, wird eine Benachrichtigung ausgegeben.

2.6.7 Sichern/Wiederherstellen

Einstellungen in Bezug auf Sicherung/Wiederherstellung.

2.6.7.1 Komprimierungsverfahren

Legen Sie die Kompressionsmethode fest, die bei Backups verwendet werden soll. App Manager unterstützt die Komprimierungsmethoden GZip und BZip2, GZip ist die Standardkomprimierungsmethode. Es hat keinen Einfluss auf die Wiederherstellung einer bestehenden Sicherung.

2.6.7.2 Sicherungsoptionen

Passen Sie das Dialogfeld Sicherung/Wiederherstellung an, das bei der Erstellung einer Sicherung angezeigt wird.

Siehe auch: Sicherungsoptionen

2.6.7.3 Anwendungen mit Android KeyStore sichern

Sicherung von Anwendungen mit Einträgen im Android KeyStore zulassen. Diese Option ist standardmäßig deaktiviert, da einige Anwendungen (z. B. Signal) bei der Wiederherstellung abstürzen können.

2.6.7.4 Verschlüsselung

Legen Sie eine Verschlüsselungsmethode für die Backups fest. App Manager unterstützt derzeit OpenPGP (über OpenKeyChain), AES und RSA (Hybridverschlüsselung mit AES). Wie bei der APK Signierung werden die AES- und RSA-Schlüssel im KeyStore gespeichert und können aus anderen KeyStores importiert werden.

Gefahr:

Zu Ihrer eigenen Sicherheit ist es nicht empfehlenswert, RSA-Schlüssel innerhalb des App Managers zu erzeugen. Stattdessen sollten sie aus einem KeyStore importiert werden, der an einem sicheren Ort aufbewahrt wird.
Im Falle von AES sollte der generierte Schlüssel an einem sicheren Ort gespeichert werden, z. B. in einem Passwortmanager.

2.6.7.5 Sicherungsvolumen

Wählen Sie den Speicher, in dem die Backups gespeichert werden. Hier werden auch Protokolle und exportierte APK-Dateien gespeichert.

Hinweis:

Das Backup-Volume gibt nur den Speicherort, nicht den Pfad an. Backups werden traditionell im Ordner AppManager innerhalb des Speicherpfads gespeichert. Wenn der Pfad jedoch mit Storage Access Framework (SAF) ausgewählt wurde, wird der ausgewählte Pfad oder das Verzeichnis direkt verwendet.

2.6.7.6 Backups importieren

Importieren Sie Sicherungen aus alten und eingestellten Projekten wie Titanium Backup, OAndBackup und Swift Backup (Version 3.0 bis 3.2). Die Sicherungen werden nach dem Importieren nicht gelöscht, um Datenverluste zu vermeiden, falls die importierten Sicherungen nicht ordnungsgemäß wiederhergestellt werden können.

2.6.8 Regeln

2.6.8.1 Sofortige Komponentensperre

Standardmäßig werden Sperrregeln nicht angewendet, es sei denn, sie werden explizit in der Seite mit den Anwendungsdetails für eine beliebige Anwendung angewendet. Nach Aktivierung dieser Option werden alle (alten und neuen) Regeln sofort für alle Anwendungen angewendet, ohne dass die Sperrung für eine Anwendung explizit aktiviert wird.

2.6.8.2 Import/Export-Sperrregeln

Es ist möglich, Sperrregeln im App Manager für alle Anwendungen zu importieren oder zu exportieren. Die Arten von Regeln (Komponenten, App Ops oder Berechtigungen), die importiert oder exportiert werden sollen, können ebenfalls ausgewählt werden. Es ist auch möglich, Sperrregeln aus Blocker und Watt zu importieren. Wenn es notwendig ist, Sperrregeln für eine einzelne Anwendung zu exportieren, kann die entsprechende App-Detailseite verwendet werden, um Regeln zu exportieren, oder für mehrere Anwendungen können Batchoperationen verwendet werden.

Siehe auch: Regelspezifikation

2.6.8.2.1 Export

Exportiert Sperrregeln für alle im App Manager konfigurierten Anwendungen. Dies kann Anwendungskomponenten, App-OPs und Berechtigungen umfassen, basierend auf den in den Multi-Choice-Optionen ausgewählten Optionen.

2.6.8.2.2 Importieren

Importieren Sie zuvor exportierte Blockierungsregeln aus dem App Manager. Ähnlich wie beim Export kann dies App Komponenten, App Operationen und Berechtigungen basierend auf den in den Multi-Choice-Optionen ausgewählten Optionen enthalten.

2.6.8.2.3 Importieren bestehender Regeln

Hinzufügen von Komponenten zum App Manager, die von anderen Anwendungen deaktiviert wurden. App Manager verfolgt nur die Komponenten, die innerhalb von App Manager deaktiviert wurden. Wenn Anwendungskomponenten von anderen Tools oder Anwendungen blockiert oder deaktiviert werden, können Sie diese mit dieser Option importieren. Wenn Sie auf diese Option klicken, findet App Manager die Komponenten, die möglicherweise von anderen Anwendungen oder Tools deaktiviert wurden, und listet nur den Namen der Anwendungen zusammen mit der Anzahl der übereinstimmenden Komponenten auf. Zur Sicherheit sind alle Anwendungen standardmäßig nicht ausgewählt. Sie müssen manuell ausgewählt werden, und die Blockierung muss über den App Manager erneut angewendet werden.

Achtung:

Seien Sie bei der Verwendung dieses Tools vorsichtig, da es viele falsch positive Ergebnisse geben kann. Wählen Sie nur die Anwendungen aus, bei denen Sie sich sicher sind.

2.6.8.2.4 Importieren von Watt

Importieren Sie Konfigurationsdateien aus Watt, wobei jede Datei Regeln für ein einzelnes Paket enthält und der Dateiname der Name des Pakets mit der Erweiterung .xml ist.

Tip:

Speicherort der Konfigurationsdateien in Watt: /sdcard/Android/data/com.tuyafeng.watt/files/ifw

2.6.8.2.5 Importieren von Blocker

Importieren Sie Blockierungsregeln aus Blocker, wobei jede Datei Regeln für ein einzelnes Paket enthält. Diese Dateien haben die Erweiterung .json.

2.6.8.3 Alle Regeln löschen

Ein-Klick-Option zum Entfernen aller im App Manager konfigurierten Regeln. Dadurch werden alle blockierten Komponenten aktiviert, die App-OPs werden auf ihre Standardwerte gesetzt und die Berechtigungen werden gewährt.

2.6.9 Advanced

2.6.9.1 Ausgewählte Benutzer

Mit dieser Option können Sie festlegen, für welche Benutzer App Manager arbeiten soll. App Manager arbeitet standardmäßig für alle Benutzer im Root- oder ADB-Modus.

2.6.9.2 Gespeichertes APK-Namensformat

Legt das Format des APK-Namens fest, das beim Speichern über Batch-Operationen oder über Profile verwendet werden soll. App Manager bietet einige spezielle Schlüsselwörter, die in % (Prozentzeichen) eingeschlossen und unterhalb des Eingabefeldes zu finden sind. Diese Schlüsselwörter sind:

  • Bezeichnung. Bezeichnet den Namen oder die Bezeichnung der Anwendung. Dieser kann je nach Anwendung in der konfigurierten Sprache lokalisiert werden.

  • Paketname. Bezeichnet den Namen des Pakets oder die Anwendungs-ID, den eindeutigen Bezeichner, den jede Anwendung hat.

  • Version. Gibt die aktuelle Version der Anwendung an, die dem Manifest entnommen wurde.

  • Versionscode. Bezeichnet den aktuellen Versionscode der Anwendung, der verwendet werden kann, um zwei Versionen derselben Anwendung zu unterscheiden.

  • mindest notwendiges SDK . Bezeichnet das minimale SDK (d. h. die Version des Android-Frameworks), mit dem die Anwendung arbeiten kann. Diese Daten sind erst seit Android 7 (Nougat) verfügbar.

  • empfohlenes SDK. Bezeichnet das SDK, auf das diese Anwendung abzielt. Die Anwendung kann auf höheren SDKs arbeiten, aber nur im Kompatibilitätsmodus.

  • Datumsangabe. Bezeichnet die Uhrzeit und das Datum, an dem die APK exportiert wird.

2.6.9.3 Schlüsselspeicher importieren/exportieren

Importieren oder exportieren Sie den von App Manager verwendeten KeyStore. Dies ist ein Bouncy Castle KeyStore mit der Erweiterung bks. Daher werden andere KeyStore wie Java KeyStore (JKS) oder PKCS #12 nicht unterstützt. Wenn ein Schlüssel aus einem solchen KeyStore importiert werden muss, sollten die entsprechenden Optionen wie oben angegeben gewählt werden.

2.6.10 Über das Gerät selbst

Anzeige von Android-Version, Sicherheit, CPU, GPU, Akku, Speicher, Bildschirm, Sprachen, Benutzerinformationen usw.

2.7 Scanner-Seite

Scanner-Seite wird angezeigt, nachdem Sie auf die Schaltfläche Scanner in der Registerkarte App-Info geklickt haben. Externe APK-Dateien können auch über Dateimanager, Webbrowser usw. zum Scannen geöffnet werden.

Es wird nach Trackern und Bibliotheken gescannt und die Anzahl der Tracker und Bibliotheken als Zusammenfassung angezeigt. Es zeigt auch Prüfsummen der APK-Datei sowie die Signierzertifikate. Wenn VirusTotal in den Einstellungen konfiguriert ist, versucht es auch, Berichte von VirusTotal abzurufen, oder lädt die APK-Datei hoch, wenn sie sich nicht in der Datenbank befindet.

Disclaimer:

App Manager scannt eine Anwendung nur statisch und ohne Vorurteile. Die Anwendung kann Optionen für die Ablehnung anbieten, oder in einigen Fällen werden bestimmte Funktionen des Trackers von der Anwendung überhaupt nicht genutzt (z. B. F-Droid), oder manche Anwendungen verwenden sie einfach als Platzhalter, um den Ausfall bestimmter Funktionen zu verhindern (z. B.  Fennec F-Droid). Die Absicht des Scanners ist es, Ihnen eine Vorstellung davon zu geben, was die APK enthalten könnte. Er sollte als erster Schritt für weitere Untersuchungen angesehen werden.

Ein Klick auf den ersten Punkt (d.h. die Anzahl der Klassen) öffnet eine neue Seite mit einer Liste der Tracker-Klassen für die Anwendung. Alle Klassen können auch durch Anklicken des Menüs Toggle Class Listing angezeigt werden. Eine Vorschau auf jede Klasse kann durch einfaches Klicken auf ein beliebiges Klassenelement angezeigt werden. In Android 8 (Oreo) und später, enthält dies die gesamte SMALI-Version der Klasse und kann mit der entsprechenden Option in Java konvertiert werden.

Hinweis:

Aufgrund verschiedener Einschränkungen ist es nicht möglich, alle Komponenten einer APK-Datei zu scannen. Dies gilt insbesondere, wenn eine APK stark verschleiert ist. Der Scanner prüft auch keine Zeichenketten (oder Website-Signaturen).

Der zweite Punkt listet die Anzahl der Tracker zusammen mit deren Namen auf. Wenn Sie auf diesen Punkt klicken, wird ein Dialog angezeigt, der den Namen der Tracker, die übereinstimmenden Signaturen und die Anzahl der Klassen für jede Signatur. Einige Tracker-Namen können ein 2 vorangestellt, was anzeigt, dass die Tracker in der ETIP Stand-by-Liste stehen d.h. ob es sich um tatsächliche Tracker handelt, wird noch untersucht.

Der dritte Punkt listet die Anzahl der Bibliotheken zusammen mit ihren Namen auf. Die Informationen stammen größtenteils aus dem IzzyOnDroid Repository.

2.7.1 Fehlende Signaturen

Unten auf der Seite befindet sich ein spezieller Punkt, der die Anzahl der fehlenden Signaturen (d. h. der fehlenden Klassen) angibt. Die fehlenden Signaturen sind diejenigen, die AM nicht mit bekannten Bibliotheken abgleichen konnte. Die Zahl selbst hat keine Bedeutung, da viele Bibliotheken Hunderte von Klassen enthalten, aber ein Klick auf das Element öffnet ein Dialogfeld der die Signaturen enthält, was bei der Überprüfung der fehlenden Signaturen hilfreich ist. Diese Funktion ist nur für Personen gedacht, die wissen, was eine fehlende Signatur ist und was damit zu tun ist. Andere Benutzer sollten sie ignorieren.

2.8 Interceptor-Seite

Interceptor kann verwendet werden, um die Kommunikation zwischen Anwendungen mit Hilfe von Intent abzufangen. Er arbeitet als Man-in-the-Middle zwischen der Quell- und der Zielanwendung. Er bietet eine funktionsreiche Benutzeroberfläche zur Bearbeitung von Intents.

Warning:

Interceptor funktioniert nur für implicit-Intents, bei denen die App-Komponente nicht angegeben ist.

2.8.1 Intent-Filter

Intent-Filter werden von den Anwendungen verwendet, um die Aufgaben zu spezifizieren, die sie ausführen können oder die sie mit anderen Anwendungen ausführen werden. Wenn Sie zum Beispiel eine PDF-Datei mit einem Dateimanager öffnen, versucht der Dateimanager, die Anwendungen zu finden, mit denen die PDF-Datei geöffnet werden soll. Um die richtigen Anwendungen zu finden, erstellt der Dateimanager einen Intent mit Filtern wie dem MIME-Typ und bittet das System, die Anwendungen abzurufen, die diesen Filter öffnen können. Das System durchsucht das Manifest der installierten Anwendungen nach dem Filter und listet die Anwendungskomponenten auf, die in der Lage sind, diesen Filter (in unserem Fall das PDF) zu öffnen. Daraufhin öffnet entweder der Dateimanager die gewünschte Anwendungskomponente von selbst oder es wird eine vom System bereitgestellte Option verwendet, um sie zu öffnen. Wenn mehrere Anwendungskomponenten in der Lage sind, das Dokument zu öffnen, und keine Standardeinstellung festgelegt ist, erhalten Sie möglicherweise eine Aufforderung, die richtige Anwendungskomponente auszuwählen.

2.8.1.1 Aktion

Aktion gibt die auszuführende allgemeine Aktion an, z. B. android.intent.action.VIEW. Anwendungen deklarieren oft die relevanten Aktionen in der Manifestdatei an, um die gewünschten Intents abzufangen. Die Aktion ist besonders nützlich für Broadcast Intent, wo sie eine wichtige Rolle spielt. In anderen Fällen dient sie als erste Möglichkeit, die relevanten Anwendungskomponenten herauszufiltern. Generische Aktionen wie android.intent.action.VIEW und android.intent.action.SEND werden von vielen Anwendungen verwendet. Daher kann diese Einstellung allein viele Anwendungskomponenten abdecken.

2.8.1.2 Daten

Daten sind ursprünglich als URI (Uniform Resource Identifier) bekannt, die in RFC 2396 definiert sind. Es kann sich um Weblinks, Dateispeicherorte oder eine spezielle Funktion namens Inhalt handeln. Inhalte sind eine Android-Funktion, die von den Inhaltsanbietern verwaltet wird. Daten sind oft mit einem MIME-Typ verbunden.

Beispiele:

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-Typ

MIME-Typ des Feldes Daten. Wenn das Datenfeld zum Beispiel auf file:///sdcard/AppManager.apk eingestellt ist, kann der zugehörige MIME-Typ application/vnd.android.package-archive sein.

2.8.1.4 Kategorien

Dies ist ähnlich wie Aktion in dem Sinne, dass es auch vom System zum Filtern von Anwendungskomponenten verwendet wird. Dies hat keine weiteren Vorteile. Im Gegensatz zu Aktion kann es mehr als eine Kategorie geben. Wenn Sie auf die Schaltfläche plus neben dem Titel klicken, können Sie weitere Kategorien hinzufügen.

2.8.1.5 Flaggen

Markierungen sind nützlich, um zu bestimmen, wie sich das System während des Starts oder nach dem Start einer Aktivität verhalten soll. Dies sollte nicht berührt werden, da es ein gewisses technisches Hintergrundwissen erfordert. Die Schaltfläche plus neben dem Titel kann verwendet werden, um eine oder mehrere Markierungen hinzuzufügen.

2.8.1.6 Extras

Extras sind die Schlüssel-Wert-Paare, die für die Bereitstellung zusätzlicher Informationen für die Zielkomponente verwendet werden. Weitere Extras können über die Schaltfläche plus neben dem Titel hinzugefügt werden.

2.8.1.7 URI

Stellt den gesamten Inhalt als URI dar (z. B. intent://…). Einige Daten können nicht in eine Zeichenkette umgewandelt werden, und werden daher hier möglicherweise nicht angezeigt.

2.8.2 Übereinstimmende Aktivitäten

Listet alle Aktivitätskomponenten auf, die dem Zweck entsprechen. Dies wird intern vom System bestimmt (und nicht vom App Manager). Die Schaltfläche "Starten" neben jeder Komponente kann verwendet werden, um sie direkt vom App Manager aus zu starten.

2.8.3 Zurücksetzen auf Standard

Setzt das Objekt in seinen Ausgangszustand zurück.

2.8.4 Geänderte Absicht senden

Sendet den bearbeiteten Inhalt erneut an die Zielanwendung. Dies kann eine Liste von Anwendungen öffnen, in der die gewünschte Anwendung ausgewählt werden muss. Das von der Zielanwendung erhaltene Ergebnis wird an die Quellanwendung gesendet. Daher weiß die Quellanwendung nicht, ob es einen Man-in-the-Middle gab.

2.9 Editorseite für gemeinsame Einstellungen

Gemeinsame Einstellungen können auf dieser Seite bearbeitet werden. Wenn Sie auf ein Element in der Liste klicken, wird der Bearbeitungsdialog geöffnet, in dem das Element bearbeitet werden kann. Über die schwebende Aktionsschaltfläche in der unteren rechten Ecke kann ein neues Element hinzugefügt werden. Zum Speichern oder Löschen der Datei, oder um aktuelle Änderungen zu verwerfen, können die entsprechenden Optionen im Menü verwendet werden.

3 Leitlinien

3.1 ADB über TCP

Viele reine Root-Funktionen können weiterhin genutzt werden, indem ADB über TCP aktiviert wird. Hierfür ist ein PC oder Mac mit installierten Android Plattform-Tools und ein Android-Telefon mit aktivierten Entwickleroptionen und USB-Debugging.

Root-Benutzer:

Wenn dem App Manager die Superuser-Berechtigung erteilt wurde, kann er bereits ohne Probleme privilegierten Code ausführen. Daher brauchen Root-Benutzer ADB über TCP nicht zu aktivieren. Wenn Sie ADB over TCP trotzdem verwenden wollen, müssen Sie die Superuser-Berechtigung für App Manager widerrufen und Ihr Gerät neu starten. Es kann sein, dass Sie die Meldung working on ADB mode ohne Neustart sehen, aber das ist nicht ganz richtig. Der Server (der als Schnittstelle zwischen System und App Manager dient) wird immer noch im Root-Modus ausgeführt. Dies ist ein bekanntes Problem und wird in einer zukünftigen Version von App Manager behoben.

Siehe auch: FAQ: ADB-over-TCP

3.1.1 Entwickleroptionen aktivieren

3.1.1.1 Ort der Entwickleroptionen

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 Aktivieren von Entwickleroptionen

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 USB-Debugging aktivieren

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 Fehlersuche

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 ADB auf einem PC oder Mac einrichten

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 ADB über TCP einrichten

3.1.4.1 Lineage OS 17.1 und vorherige

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 ADB über TCP mittels einem PC oder 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 ADB-Modus im App Manager aktivieren

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 Verweise

  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 application components?

Activities, services, broadcast receivers (or only receivers) and content providers (or only providers) are jointly called application components. More technically, they all inherit the ComponentInfo class and can be launched via Intent.

4.1.2 How are the tracker and other components blocked in App Manager? What are its limitations?

App Manager typically blocks application components (or tracker components) using a method called Intent Firewall (IFW), it is 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 application 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 applications actually do this in order to keep the tracker components unblocked.) On the other hand, IFW is a true firewall and the application cannot detect if its components are being blocked. App Manager uses the term block rather than disable for this reason.

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

  • The application in question is whitelisted by the system i.e. the system cannot function properly without these applications and may cause random crashes. These applications include but not limited to Android System, System UI, Phone Services. They will continue to work even if they are disabled or blocked.

  • Another system application or system process has activated a specific component of the application in question via interprocess communication (IPC). In this case, the component will be activated regardless of blocking status or even if the entire application is disabled. If there is such a system application that is not needed, the only way to prevent it from running is by getting rid of it.

4.1.3 Does app components blocked by other tools retained in App Manager?

No. But the application components blocked by the system or any other tools are displayed in the component tabs. These rules can be imported from Settings. However, it is not possible for App Manager to distinguish the components blocked by the third-party tools and components blocked by the system. Therefore, the applications listed in the import page should be selected with care.

4.1.4 What happens to the components blocked by App Manager which were previously blocked by other tools?

App Manager blocks the components again if requested. In case of unblocking, they will be reverted to the default state as specified in the manifest of the application. But if the components were blocked by MyAndroidTools (MAT) with IFW method, they will not be unblocked by App Manager as it uses a different format. To fix this issue, the rules have to be imported from Settings at first, in which case MAT’s configurations will be permanently removed.

4.1.5 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 application by simply clicking on Remove rules in the same menu in the App Details page. Since the default behaviour gives you more control over applications, it is better to keep instant component blocking option disabled.

4.1.6 Tracker classes versus tracker components

All application 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 that are not components cannot be blocked. They can only be removed by editing the application itself.

4.2 ADB over TCP

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

Unfortunately, yes. This is because the ADB daemon, the process responsible for ADB connection, is also restarted after a reboot, and it does not re-enable ADB over TCP.

4.2.2 Cannot enable USB debugging. What to do?

See §3.1.2 in Kapitel 3.

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

ADB has limited number of permissions and controlling application components is not one of them. However, the components of a test-only app can be controlled via ADB. If App Manager detects such an application, it enables the blocking options automatically.

4.2.4 Which features can be used in ADB mode?

Die unterstützten Funktionen werden im ADB-Modus automatisch aktiviert. Zu den unterstützten Funktionen gehören Deaktivieren, erzwungenes Anhalten, Löschen von Anwendungsdaten, Gewähren oder Entziehen von App-Ops und Berechtigungen usw. Es ist auch möglich, Anwendungen zu installieren oder Anwendungen ohne Aufforderung durch das System zu installieren oder zu deinstallieren.

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 Wie werden die Tracker und Bibliotheken aktualisiert?

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

4.3.3 Are APKs deleted after installed?

No, APKs aren’t deleted by App Manager after they are installed.

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. dieser Daten.

Die Pflege 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 RegelSpeicherManager. 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 v3.1.0 (423)

App Manager v3.1.0 comes with a few new features and a lot of improvements. Visit Settings > About > Version/Changelog for details.

6.1.1 Android 13 support

App Manager now targets Android 13 which means most issues in Android 12 and 13 has been addressed, including SSAID and SAF issues as well as monochrome icons and other theming issues.

6.1.1.0.1 Known issue

KeyStore backup/restore not working in Android 12 and later.

6.1.2 Introducing freeze/unfreeze

Enable/disable is replaced with freeze/unfreeze to allow greater control on the behaviours of an app. It supports suspend, disable and hide functionalities which can be controlled at Settings > Rules > Default freezing method. In order to make it easy to freeze or unfreeze an app, shortcuts can also be created from the App Info tab by long clicking on the freeze or unfreeze button.

6.1.3 Export app list

In the Main page, it is now possible to export the list of apps in either XML or Markdown format using batch operations. In the future, the XML file may also be imported to App Manager.

6.1.4 Elliptic Curve Crypography (ECC)

App Manager now fully supports encrypting backups using ECC in addition to offering AES, RSA and OpenPGP.

6.1.5 New languages

Two new languages are added: Korean and Romanian.

6.1.6 More list options

In the main page, more sorting and filtering options are added. Sorting options include sorting the apps by total size, total data usage, launch count, screen time and last usage time. Filtering options include filtering the apps having at least one item in the Android KeyStore, filtering apps with URIs granted via SAF, and filtering apps with SSAID.

6.1.7 Improved handling of mode of operation

Fixed various issues with ADB pairing, handled incomplete USB debugging. Some rooting methods cannot allow interprocess communication via Binder. In those cases, ADB mode is used as a fallback method by enabling it automatically if possible.

6.1.8 Handling multiple users

When possible, App Manager will be able to display apps from work profile in no-root mode in addition to allowing basic operations such as launching the app or navigating to the system settings. For backups, it is now possible to restore backups for other users, but for work profile, some apps may only work properly after re-enabling the work profile. In the installer page, selecting All users will now install the app for all users instead of only the current user. Finally, in the app info tab, current app can be installed in another profile using the Install for… option available in the three-dots menu. This is analogous to the pm install-existing command, thereby, making the installation process a lot faster.

6.1.9 Explorer enhancements

Explorer can now open DEX and JAR files in addition to APK files. Several sorting options as well as folder options are also added as the list options.

6.1.10 New tag: WX

In app info tab, a new tag called WX is added. It is displayed in Android 10 and later if the application targets Android 9 or earlier. It indicates W^X violation which allows the app to execute arbitrary executable files either by the modification of executables embedded within the app or by downloading them from the Internet.

6.1.11 App ops management

App ops are now managed automatically to avoid various app ops related crashes in various platforms. This will also lessen the amount of crashes in an unsupported operating system.

6.1.12 Batch uninstallation

In the Main page, enabled batch uninstallation in no-root mode.

6.1.13 Running apps

Enabled advanced searching. Searching now matches not only app labels but also package names.

6.1.14 Interceptor

Copy the intercepted Intent as am command which can be run from either an ADB shell or a terminal using root with the same effectiveness.

6.1.15 Device-specific changes

6.1.15.0.1 Graphene OS

Explicitly handle the Internet permission which is a runtime permission in the OS.

6.1.15.0.2 MIUI

Fixed permission denied issues in the installer due to a framework issue introduced in MIUI 12.5.

6.1.15.0.3 Motorola

Fixed crashes in the Interceptor page due to a framework issue introduced in Android 11.

6.1.16 Others

  • Improved Java-Smali conversion by including all the subclasses during conversion

  • Improved scanning performance in the Scanner page

  • Improved updating the list of apps in the Main page

  • Scan all the available paths to detect systemless-ly installed system apps

  • vacuum SQLite database before opening it for viewing or editing.

6.2 v3.0.0 (410)

App Manager v3.0.0 comes with a lot of features and improvements. See Settings > Changelog to see a more detailed changelog.

6.2.1 Material 3 and More

Material 3, somewhat similar to Material You, is a significant improvement over Material Design 2 with support for dynamic colours in Android 12 and later. In addition, many design changes have been made in App Manager without any significant changes in the overall user experience.

6.2.1.0.1 Known issue

Switches are still based on Material Design 2 which will be fixed in a future release.

6.2.2 Wireless Debugging

Wireless debugging support has been fully implemented. Head over to §3.2 for instructions on how to configure wireless debugging.

No-root users:

Due to auto-detection feature, startup time might be large for no-root users when the mode of operation is set to auto. Instead, no-root users should select no-root instead of auto.

6.2.3 Languages

App Manager is fully translated into Indonesian and Italian languages and can be enabled in settings. Bengali is removed due to lack of translators.

6.2.4 Introducing App Explorer

App Explorer can be used to browse the contents of an application. This includes binary XML files, DEX contents or any other media files. DEX contents can only be explored in Android Oreo (Android 8) and later. It’s also possible to convert an .smali file into .java for a better understanding of the reversed code. This feature, if not needed, can be disabled in Settings > Enable/disable features.

6.2.5 Import Backups from Other Applications

It is possible to import backups from discontinued or obsolete applications such as Titanium Backup, OAndBackup and Swift Backup (version 3.0 to 3.2). Go to Setting > Backup/restore to find this option.

6.2.6 VirusTotal

VirusTotal is a widely used tool to scan files and URLs for viruses. In the scanner page and in the running apps page, an option to scan files with VirusTotal has been added. But the option is hidden by default. To enable the option, it is necessary to obtain an API key from VirusTotal. Go to Settings > VirusTotal API Key for more information.

Internet feature:

This is currently the only feature which require an Internet connection. If you wish to use any Internet feature that might also be added in the future, enable Use the Internet in Settings > Enable/disable features.

6.2.7 Trigger Profiles from the Automation Software

As the implementation of routine operations is being delayed, an option to trigger profiles from the external automation software is added. See §3.4 for instructions on how to configure profile automation.

6.2.8 Improved Application Installer

Application installer includes several improvements including the ability to downgrade applications in no-root mode, installing multiple applications at once and blocking trackers after installation. In Android 12 and later, no-root users can update applications without any user interactions.

6.2.9 Component Blocking

It is now possible to configure how App Manager should block a component. Visit Settings > Rules > Default blocking method for more information. In the components tab, long clicking the block/unblock button opens a context menu which allows per-component blocking in a similar manner. ADB users can also block the components of a Test only app.

6.2.10 Advanced Searching

In some pages, the search bar supports additional searching which includes searching via prefix, suffix or even regular expressions. In the main page, it is also possible to search for applications using the first letters of each word, e.g. App Manager can be listed by searching for am.

6.2.11 Shared Libraries

Shared libraries tab has received a significant improvements. It can display three types of libraries, such as native, jar and APK files.

6.2.12 Make the Best Use of Interceptor

Activity interceptor can be opened directly from the activities tab by long clicking on the launch button, and similarly, activities can be launched from the activity interceptor page with or without root, for any users.

Notice:

Currently, activities opened via root cannot send the results back to the original applications.

6.2.13 Widget: Screen Time

Screen time widget is quite similar to Digital Wellbeing’s widget by the same name. It displays the total screen time for the day along with the top three apps from all users.

6.2.14 Widget: Clear Cache

Clear cache widget can be to clear cache from all the applications directly from the home screen.

6.3 v2.6.0 (385)

6.3.1 Introducing Backups

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

6.3.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.3.3 Lock App Manager

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

6.3.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.3.5 New Batch Ops: Add to Profile

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

6.3.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.3.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.3.8 About This Device

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

6.3.9 Enable/disable Features

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

6.3.10 New Languages

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

6.3.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.3.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.4 v2.5.20 (375)

6.4.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.4.1.0.1 Known limitations
  • Exporting rules and applying permissions are not currently working.

  • Profiles are applied for all users.

6.4.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.4.2.0.1 Known limitation

Editing extras is not currently possible.

6.4.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.4.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.4.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.4.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.4.7 Android 11

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

6.4.8 App Installer Improvements

6.4.8.1 Set installation locations

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

6.4.8.2 Set APK installer

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

6.4.8.3 Multiple users

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

6.4.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.4.8.4.1 Known limitation

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

6.5 v2.5.17 (368)

6.5.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.5.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.5.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.5.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.5.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.5.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.5.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.5.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.5.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.5.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.5.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.6 v2.5.13 (348)

6.6.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.6.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.6.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.6.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.6.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.6.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.6.4.0.1 Known Limitation

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

6.6.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.6.5.0.1 Known Limitation

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

6.6.6 Filtering in Main Page

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

6.6.7 Apk Backup/Sharing

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

6.6.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.6.9 Translations

Added German and Portuguese (Brazilian) translations.

6.6.9.0.1 Known Limitation

Not all translations are verified yet.

6.6.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 2: How app ops work

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↩︎