2016-08-10 2 views
-1

In einigen Anwendungen, wenn ich gehe zu Einstellungen> Anwendung> jede Anwendung Detail, Schaltfläche "Deaktivieren" ist deaktiviert.System App vs System Unterschrift Anwendung vs Privilegierte App

https://android.googlesource.com/platform/packages/apps/Settings/+/master/src/com/android/settings/applications/InstalledAppDetails.java)

Aus dem obigen Link Ich weiß , wenn eine Anwendung Startseite App ist oder System-App, es ermöglichen wird nicht, dass die Anwendung zu deaktivieren.

https://android.googlesource.com/platform/packages/apps/Settings/+/b58b5127040b3c843fe42544a89a1085cf7e74f6/src/com/android/settings/Utils.java

Wenn Sie die isSystemPackage() API überprüfen, so scheint es, zu überprüfen, ob der App mit System Signatur signiert ist.

Liegt es daran, dass es sich um eine -System-App handelt oder weil sie mit der System-Signatur signiert ist?

Ich kann viele System-Apps (gehalten in System/apps) haben Schaltfläche „Deaktivieren“ aktiviert.

Auch nicht erwähnt, dass Apps mit System-Signatur nicht entfernt werden können.

Oder ist es ein Fall von Privileged App in System/priv-App gespeichert.

+0

(glaube ich): weil die App ** System unterzeichnet ** es kann bestimmte Funktionen mit Manifest-Datei aktivieren/deaktivieren (disable-Taste deaktivieren, Datenlöschtaste deaktivieren, ... etc). das zweite Problem (app location) Ich denke, nur vorinstallierte Apps können auf diesem Pfad platziert werden. ** ODER ** Das Gerät muss gerootet sein, damit der Benutzer die Zugriffsebene für Superuser gewähren und die App auf diesem Pfad installieren kann. – Yazan

+0

@Yazan Ich glaube nicht, dass Entwickler die Daten deaktivieren/deaktivieren kann über Manifest-Datei. Bitte geben Sie einige Details an, wie dies über das Manifest geschehen kann. Ja, die Apps, für die die Schaltfläche "Deaktivieren" deaktiviert ist, sind tatsächlich vorinstalliert. Ich frage mich also, warum einige vorinstallierte Apps deaktiviert werden können, da andere nicht deaktiviert werden können. – Surbhi

+0

ja können sie es aber wieder nur, wenn die app ist ** System App ** Sie können dies in Ihrem Manifest (auf Application-Tag) 'android: allowClearUserData =" false "' es funktioniert, wenn Ihre App sys App (unterzeichnete diese Frage durch das System Signatur) – Yazan

Antwort

0

Denn die Forschung, die Signaturen von verschiedenen vorinstallierten Anwendungen enthalten Verifizieren (mit und ohne Schaltfläche Deaktivieren aktiviert), folgerte ich habe es auf dem Signature abhängt.

Wenn eine App mit dem System Signatur signiert ist, dann erlaubt sein nicht zu deaktivieren, die app.Also nicht alle vorinstallierten Apps Systemsignatur haben.