システムアプリとユーザーアプリの違いは何ですか?


28

さまざまなROMをいじってTitanium Backupを使用したところ、アプリはシステムアプリとユーザーアプリに分類されていることがわかりました。一部のROM開発者は、Titanium Backupはシステムアプリではなくユーザーアプリにのみ使用すべきであり、システムアプリのアンインストールに進むと、TiBuがROMが正しく動作しない可能性があると警告しています。

ユーザーアプリはマーケットやその他の手段でダウンロードできるという事実以外に、この2つの主な違いは何ですか?

OS自体に不可欠なシステムアプリについてはどうですか?

回答:


20

/systemはルートなしで読み取り専用であるため、/system/appおよびからアプリケーションをアンインストールできません/system/priv-app。重要なアプリケーションはそこに配置されるため、アンインストールできません。削除させたくないキャリアブロートウェアもそこに置かれます。後者のカテゴリのアプリは、ルート化されている場合は削除できます。前者、それほどではない。

/system/priv-appまた、そこにインストールされたアプリが使用できるようにしsignatureOrSystem、その他の権限を許可します。スティーブンの答えにはいくつかの例があります。

用として、なぜアプリが重要かもしれないが、それはROMに依存します。たとえば、HTCのSenseは、内蔵のアプリに大きく依存しています。サードパーティのアプリでネイティブに動作するようにUIを設計しなかっただけです(システムアプリが見つからない場合はうまく機能しません)。他のアプリは基本的にAndroid OSの一部ですが、Googleはそれらをアプリ/サービスとしてコーディングしました(カプセル化と信頼性の理由のため)。

一部のシステムアプリの更新プログラムは、GoogleマップなどのPlayストア経由でダウンロードできます。デバイスにシステムアプリとしてプリインストールされていない場合は、Titaniumを使用してユーザーアプリからシステムアプリに変換できます。


それはまた、システムアプリがタスクキラーによって殺されることができないことを意味しますか?? または殺された場合、彼らは自動的に起動しますか??
アシュシソニー

@ashishsonyシステムサービスは通常は自動起動されますが、はい(ただし、ほとんどの場合)アプリ/サービスは強制終了されます。たとえば、デバイスのブラウザを強制終了できます。(タスクキラーがどのように悪いかについての通常のアドバイスを挿入します。)
マシュー

正しい、HTCデバイスのシステムアプリ(Dropbox、Facebookのようなものも含む)は、Sense UIとあまりにも深く統合されています。それらを削除することは控えなければなりません。また、ユーザーアプリをシステムアプリに変換することは、非常に必要な場合を除き、メモリ不足の状態で終了しないROMがあるため、実行しないでください。
アシュシュクマールシン

1
プログラム上の1つの違いは、system(priv-app)アプリケーションが、デバイス設定からforce_stopの場合に(user-app)非システムアプリがブロードキャストを受信できない場合でも、アプリケーション設定からforce_stopであってもシステムブロードキャストを受信することです。
ザラジャナクシン

22

他の答えは正しいですが、いくつかの違いを指摘できません。

許可

システムアプリには、ユーザーアプリでは使用できない特定のシステムのみのアクセス許可を要求する機能が付与されます。これは、ないルート/ sudoを/ SU権限と同じ。

私が知っていて毎日使用している例の1つは、不在着信通知カウンターをリセットする機能です。Go Dialerがあります。GoDialerは、ストックダイヤラーと連絡先アプリ(電話のかけ方)に代わるものです。私が電話に出られないとき、アンドロイドは通知でそれを知らせます。ただし、Go Dialerでは、アプリのインストール時に許可を求められますが、このカウンターをリセットすることはできません。Android 2.2以前では、ユーザーアプリはそれをリセットできますが、このアクセス許可は、Android 2.3のシステムからのみアクセス可能なアクセス許可にしました

Go Dialerアプリをシステムパーティションに移動すると、このカウンターをリセットできます。アプリにルートは必要ありません(もちろん、実際にアプリをシステムパーティションに移動する場合を除きます)。

もう1つのシステム許可は、現在のGPSロケーションを設定する機能です。現在、Androidには、モックロケーションを許可できる設定があるため、インストールするGPSスプーフィングアプリはGPSロケーションを宣言できます。ただし、アプリがシステムパーティションにある場合、アプリがGPSの場所を偽装したまま、モックの場所を無効にすることができます。

更新

システムアプリはユーザーアプリと同様に更新できますが、更新が元のROMに統合されることはありません。つまり、システムアプリには、ROMが最初にインストールされたときに存在していたバージョンにロールバックする独自の機能があります。

SDに移動

Androidでは、ユーザーがuserアプリを内部メモリからsdカードに移動できます。システムアプリは移動できず、常に内部スペースを占有します。ただし、ほとんどの(すべて?)デバイスには、異なるパーティションに内部ユーザーアプリがあります。そのため、システムアプリをアンインストールしても、ユーザーアプリスペースは増えません(削除されるdalvikキャッシュ以外)。

システムアプリの更新プログラムをアンインストールすると、一部の領域が回復します。前述のように、更新はROMと統合されていないため、ユーザー空間に保存されます。更新プログラムもsdカードに移動することはできませんが、削除するとユーザースペースが回復します。

それがあなたに与える影響

カジュアルなAndroidユーザーの場合、システムとユーザーアプリの違いが生じるシナリオに陥ることはおそらくないでしょう。あなたが上級ユーザーである場合、ルートを持っている可能性が高いため、これらの状況のいずれかに遭遇した場合、システムアプリをユーザーに変更できます(逆も同様です)。


1
「これはroot / su許可とは異なります」という意味ですか?私はそれを思い出すように見えるsudosu同じではありません-少なくとも、UnixおよびLinuxで。
-ChuongPham

* nixではsuとsudoが異なるのは正しいです。ただしsudo、sudoはroot権限suを要求するのに対し、単にユーザーの切り替えを要求するだけなので、ここでより適切です。suを使用するには、切り替え先のアカウントのパスワードのみを知っている必要があります。アカウントを指定しない場合、rootになることを求めています。ただし、Androidにはrootパスワードも他のアカウントも存在しないためsu、ユーザーが端末で実行してroot権限を取得するコマンドはわかっています。
スティーブンシュラウガー

とにかく、回答を更新してincludeを含めますsu。これは、一部のAndroidユーザーがrootに相当するためです。
スティーブンシュラウガー

4

システムアプリは、システム内に含まれるアプリです。これらは/ system / appフォルダーにあります。

それらの大半は、デバイスを実行するために必要です。これらの一部の例は、すべてのネットワーク接続をセットアップするダイヤラーと、アプリ内Webビューが機能しないブラウザーです。


1
ダイヤラーはネットワーク接続をセットアップしますか?
マシュー

2
@MatthewReadはい-あります!実際の「ダイヤラ」は、ダイヤラアプリケーションにある個別のアクティビティです。dialer.apkは、接続性を設定するアプリです-証拠が必要な場合、ダイヤラおよびダイヤラストレージアプリをフリーズすると、ネットワークは機能しません。
リアムW

それはかなり奇妙です!
マシュー

Androidは奇妙です!
リアムW

3

上記の回答に何か追加したいと思います。システムアプリは、ユーザーアプリとは異なり、完全な工場出荷時設定にリセットすることはできません。すべての個人ファイルを削除したいが、あまりにも多すぎて便利に削除できない場合は、工場出荷時設定にリセットするのが最も便利であり、保持したいアプリがある場合は、それらのアプリをシステムアプリに変換して勝つことができます工場出荷時のリセット中に消去されません。


1
興味深いヒント!今すぐシステムに音楽を移動したいlol
FreeSoftwareServers

2

システムのアプリのもう一つの特徴は、彼らが(ネイティブライブラリを使用することであるlibsomething.so共通システムライブラリのディレクトリ(通常のファイル)を/システム/ libにまたは/システム/ lib64に)、およびないアプリ-プライベートライブラリディレクトリから(例えば、/データ/app/com.example.HelloJni/lib/arm)。Android Nougat以前は、ユーザーアプリはシステムネイティブライブラリを自由にロードして使用できました。後で制限が課されました。https://developer.android.com/about/versions/nougat/android-7.0-changes.html#ndkをご覧ください

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.