Was sind die Unterschiede zwischen einer System-App und einer Benutzer-App?

28

Da ich mit verschiedenen ROMs herumgespielt und Titanium Backup verwendet habe, sehe ich, dass Apps in System- und Benutzer-Apps unterteilt sind. Einige ROM-Entwickler geben an, dass Titanium Backup nur für Benutzer-Apps und nicht für System-Apps verwendet werden soll. Wenn ich System-Apps deinstalliere, warnt TiBu mich, dass das ROM möglicherweise nicht richtig funktioniert.

Abgesehen von der Tatsache, dass Benutzer-Apps über den Markt oder auf andere Weise heruntergeladen werden können, was sind die Hauptunterschiede zwischen den beiden?

Was ist mit den System-Apps, die sie für das Betriebssystem selbst integraler machen?

Chance
quelle

Antworten:

20

/systemIst ohne root schreibgeschützt, sodass die Deinstallation von Anwendungen von /system/appund verhindert wird /system/priv-app. Kritische Anwendungen werden dort abgelegt, damit sie nicht deinstalliert werden können. Carrier-Bloatware, die sie nicht entfernen lassen möchten, wird ebenfalls dort abgelegt. Die letztere Kategorie von Apps kann entfernt werden, wenn Sie als Root angemeldet sind. Ersteres nicht so sehr.

/system/priv-appErmöglicht auch die Verwendung von dort installierten Apps signatureOrSystemund anderen privilegierten Berechtigungen. Stephens Antwort enthält einige Beispiele.

Was , warum Anwendungen kritisch sein könnte, hängt die auf dem ROM. Das HTC Sense hängt zum Beispiel stark von den integrierten Apps ab, die ich höre. Sie haben ihre Benutzeroberfläche einfach nicht so gestaltet, dass sie von Haus aus mit Apps von Drittanbietern funktioniert (oder scheitern, wenn System-Apps fehlen). Andere Apps sind im Wesentlichen Teil des Android-Betriebssystems, aber Google hat sie als Apps / Dienste codiert (wahrscheinlich aus Gründen der Kapselung und Zuverlässigkeit).

Aktualisierungen für einige System-Apps können über den Play Store heruntergeladen werden, z. B. Google Maps. Wenn es nicht als System-App auf Ihrem Gerät vorinstalliert ist, können Sie es mit Titanium von einer Benutzer-App in eine System-App konvertieren.

Matthew Read
quelle
Bedeutet dies auch, dass eine System-App nicht von Task-Killern getötet werden kann? oder dass sie automatisch starten würden, wenn sie getötet würden ??
Ashishsony
@ashishsony-Systemdienste werden normalerweise automatisch gestartet, aber (die meisten?) Apps / Dienste können trotzdem beendet werden. Zum Beispiel kann ich den Browser auf meinem Gerät beenden. (Fügen Sie übliche Ratschläge ein, wie Mörder schlecht sind.)
Matthew Read
Richtig, System-Apps auf HTC-Geräten (auch solche wie Dropbox, Facebook) sind zu stark in die Sense-Benutzeroberfläche integriert. Man muss es unterlassen, sie zu entfernen; Außerdem sollten Benutzer-Apps nicht in System-Apps konvertiert werden, es sei denn, dies ist dringend erforderlich, da sie auf einigen ROMs möglicherweise nicht bei wenig Arbeitsspeicher beendet werden.
Ashesh Kumar Singh
1
@all ein programmatischer Unterschied ist, dass eine Systemanwendung (priv-app) eine Systemübertragung empfängt, auch wenn force_stop aus Anwendungseinstellungen verwendet wird, wenn eine Nicht-Systemanwendung (user-app) keine Übertragung empfangen kann, wenn force_stop aus Geräteeinstellungen verwendet wird.
Zala Janaksinh
22

Die anderen Antworten sind korrekt, weisen jedoch nicht auf einige Unterschiede hin:

Berechtigungen

System-Apps können bestimmte Nur-System-Berechtigungen anfordern, die für Benutzer-Apps niemals verfügbar sind. Dies ist nicht dasselbe wie root / sudo / su-Berechtigungen.

Ein Beispiel, das ich täglich kenne und benutze, ist die Möglichkeit, den Zähler für Benachrichtigungen über verpasste Anrufe zurückzusetzen. Ich habe Go Dialer, ein Ersatz für die Aktienwahl- und Kontakt-App (wie Sie telefonieren). Wenn ich einen Anruf verpasse, teilt mir Android dies mit einer Benachrichtigung mit. Es ist Go Dialer jedoch nicht gestattet, diesen Zähler zurückzusetzen, obwohl bei der Installation der App nach dieser Berechtigung gefragt wird. Mit Android 2.2 und früheren Versionen können Benutzer-Apps die Berechtigung zurücksetzen, diese Berechtigung wurde jedoch zu einer Nur-System-Zugriffsberechtigung für Android 2.3

Durch Verschieben der Go Dialer-App auf die Systempartition kann dieser Zähler zurückgesetzt werden. Root ist für die App nicht erforderlich (außer natürlich, um die App tatsächlich auf die Systempartition zu verschieben).

Eine weitere Systemberechtigung ist die Möglichkeit, den aktuellen GPS-Standort festzulegen. Jetzt hat Android eine Voreinstellung, bei der Sie Scheinspeicherorte zulassen können, sodass jede installierte GPS-Spoofing-App einen GPS-Speicherort deklarieren kann. Befindet sich die App jedoch in der Systempartition, können Scheinspeicherorte deaktiviert werden, ohne dass die App den GPS-Speicherort verfälscht.

Aktualisierung

System-Apps können wie Benutzer-Apps aktualisiert werden, das Update wird jedoch niemals in das Original-ROM integriert. Das heißt, System-Apps können auf die Version zurückgesetzt werden, die bei der Erstinstallation des ROMs vorhanden war.

Verschiebe auf SD

Mit Android können Benutzer userApps vom internen Speicher auf die SD-Karte verschieben. System-Apps können nicht verschoben werden und belegen immer einen gewissen internen Speicherplatz. Die meisten (alle?) Geräte haben jedoch interne Benutzer-Apps auf einer anderen Partition. Wenn Sie also eine System-App deinstallieren, haben Sie nicht mehr Speicherplatz für Benutzer-Apps (außer dass der Dalvik-Cache entfernt wird).

Sie können Speicherplatz wiederherstellen, wenn Sie Updates für eine System-App deinstallieren. Wie bereits erwähnt, sind die Updates nicht in das ROM integriert und werden daher im Benutzerbereich gespeichert. Die Updates dürfen auch nicht auf die SD-Karte verschoben werden. Wenn sie jedoch entfernt werden, wird der Benutzerraum wiederhergestellt.

Wie es dich betrifft

Wenn Sie ein gelegentlicher Android-Benutzer sind, werden Sie wahrscheinlich nicht auf Szenarien stoßen, in denen System vs Benutzer-App einen Unterschied machen würde. Wenn Sie ein fortgeschrittener Benutzer sind, haben Sie wahrscheinlich root und können daher eine System-App in einen Benutzer ändern (und umgekehrt), wenn Sie jemals in eine dieser Situationen geraten.

Stephen Schrauger
quelle
1
Meinten Sie "Dies ist nicht dasselbe wie root / su-Berechtigungen"? Ich scheine mich daran zu erinnern sudound bin sunicht dasselbe - zumindest unter Unix und Linux.
ChuongPham
Du hast recht, dass su und sudo in * nix unterschiedlich sind. Dies sudogilt jedoch mehr, da sudo nach Root-Rechten fragt, während sues lediglich nach Benutzerwechsel fragt. Um su zu verwenden, müssen Sie nur das Passwort des Kontos kennen, zu dem Sie wechseln. Wenn Sie kein Konto angeben, werden Sie aufgefordert, root zu werden. In Android gibt es jedoch weder ein Root-Kennwort noch andere Konten. Daher suist Benutzern der Befehl bekannt, in einem Terminal ausgeführt zu werden, um Root-Berechtigungen zu erlangen.
Stephen Schrauger
Auf jeden Fall aktualisiere ich die Antwort, um sie einzuschließen su, da dies einige Android-Benutzer mit root gleichsetzen.
Stephen Schrauger
4

System-Apps sind Apps, die im System enthalten sind. Sie befinden sich im Ordner / system / app.

Die große Mehrheit von ihnen ist erforderlich, um das Gerät zum Laufen zu bringen. Ein Beispiel hierfür ist der Dialer, der die gesamte Netzwerkkonnektivität und den Browser einrichtet, ohne den keine In-App-Webviews funktionieren würden.

Liam W
quelle
1
Der Dialer stellt die Netzwerkverbindung her?
Matthew Read
2
@MatthewRead Ja - das tut es! Der eigentliche Dialer ist eine separate Aktivität in der Dialer-Anwendung. Die dialer.apk ist die App, mit der die Konnektivität eingerichtet wird. Wenn Sie einen Proof wünschen, können Sie die Dialer- und Dialer-Speicher-Apps einfrieren. Das Netzwerk funktioniert nicht.
Liam W
Das ist schon komisch!
Matthew Read
Android ist komisch!
Liam W
3

Ich möchte etwas in den obigen Antworten hinzufügen. System-Apps können im Gegensatz zu Benutzer-Apps nicht in einem vollständigen Werksreset gelöscht werden. Wenn Sie also alle Ihre persönlichen Dateien löschen möchten, diese aber zu viele sind, um sie bequem zu löschen, ist ein Zurücksetzen auf die Werkseinstellungen nur am bequemsten, und Sie möchten Apps behalten, können Sie diese Apps in System-Apps konvertieren, sodass sie gewonnen haben wird beim Zurücksetzen auf die Werkseinstellungen nicht gelöscht.

CCCP
quelle
1
Interessanter Tipp! Ich möchte meine Musik jetzt auf das System verschieben.
Lol
2

Ein weiteres Merkmal von System-Apps besteht darin, dass sie native Bibliotheken ( libsomething.so- Dateien) aus dem allgemeinen Systembibliotheksverzeichnis (normalerweise / system / lib oder / system / lib64 ) und nicht aus dem Verzeichnis für private Bibliotheken (z. B. / data) verwenden /app/com.example.HelloJni/lib/arm ). Vor Android Nougat konnten Benutzer-Apps die systemeigenen Bibliotheken kostenlos laden und verwenden. Einschränkungen wurden später eingeführt, siehe https://developer.android.com/about/versions/nougat/android-7.0-changes.html#ndk .

Alex Cohn
quelle