回答:
/system
はルートなしで読み取り専用であるため、/system/app
およびからアプリケーションをアンインストールできません/system/priv-app
。重要なアプリケーションはそこに配置されるため、アンインストールできません。削除させたくないキャリアブロートウェアもそこに置かれます。後者のカテゴリのアプリは、ルート化されている場合は削除できます。前者、それほどではない。
/system/priv-app
また、そこにインストールされたアプリが使用できるようにしsignatureOrSystem
、その他の権限を許可します。スティーブンの答えにはいくつかの例があります。
用として、なぜアプリが重要かもしれないが、それはROMに依存します。たとえば、HTCのSenseは、内蔵のアプリに大きく依存しています。サードパーティのアプリでネイティブに動作するようにUIを設計しなかっただけです(システムアプリが見つからない場合はうまく機能しません)。他のアプリは基本的にAndroid OSの一部ですが、Googleはそれらをアプリ/サービスとしてコーディングしました(カプセル化と信頼性の理由のため)。
一部のシステムアプリの更新プログラムは、GoogleマップなどのPlayストア経由でダウンロードできます。デバイスにシステムアプリとしてプリインストールされていない場合は、Titaniumを使用してユーザーアプリからシステムアプリに変換できます。
他の答えは正しいですが、いくつかの違いを指摘できません。
システムアプリには、ユーザーアプリでは使用できない特定のシステムのみのアクセス許可を要求する機能が付与されます。これは、ないルート/ sudoを/ SU権限と同じ。
私が知っていて毎日使用している例の1つは、不在着信通知カウンターをリセットする機能です。Go Dialerがあります。GoDialerは、ストックダイヤラーと連絡先アプリ(電話のかけ方)に代わるものです。私が電話に出られないとき、アンドロイドは通知でそれを知らせます。ただし、Go Dialerでは、アプリのインストール時に許可を求められますが、このカウンターをリセットすることはできません。Android 2.2以前では、ユーザーアプリはそれをリセットできますが、このアクセス許可は、Android 2.3のシステムからのみアクセス可能なアクセス許可にしました
Go Dialerアプリをシステムパーティションに移動すると、このカウンターをリセットできます。アプリにルートは必要ありません(もちろん、実際にアプリをシステムパーティションに移動する場合を除きます)。
もう1つのシステム許可は、現在のGPSロケーションを設定する機能です。現在、Androidには、モックロケーションを許可できる設定があるため、インストールするGPSスプーフィングアプリはGPSロケーションを宣言できます。ただし、アプリがシステムパーティションにある場合、アプリがGPSの場所を偽装したまま、モックの場所を無効にすることができます。
システムアプリはユーザーアプリと同様に更新できますが、更新が元のROMに統合されることはありません。つまり、システムアプリには、ROMが最初にインストールされたときに存在していたバージョンにロールバックする独自の機能があります。
Androidでは、ユーザーがuser
アプリを内部メモリからsdカードに移動できます。システムアプリは移動できず、常に内部スペースを占有します。ただし、ほとんどの(すべて?)デバイスには、異なるパーティションに内部ユーザーアプリがあります。そのため、システムアプリをアンインストールしても、ユーザーアプリスペースは増えません(削除されるdalvikキャッシュ以外)。
システムアプリの更新プログラムをアンインストールすると、一部の領域が回復します。前述のように、更新はROMと統合されていないため、ユーザー空間に保存されます。更新プログラムもsdカードに移動することはできませんが、削除するとユーザースペースが回復します。
カジュアルなAndroidユーザーの場合、システムとユーザーアプリの違いが生じるシナリオに陥ることはおそらくないでしょう。あなたが上級ユーザーである場合、ルートを持っている可能性が高いため、これらの状況のいずれかに遭遇した場合、システムアプリをユーザーに変更できます(逆も同様です)。
sudo
とsu
同じではありません-少なくとも、UnixおよびLinuxで。
sudo
、sudoはroot権限su
を要求するのに対し、単にユーザーの切り替えを要求するだけなので、ここでより適切です。suを使用するには、切り替え先のアカウントのパスワードのみを知っている必要があります。アカウントを指定しない場合、rootになることを求めています。ただし、Androidにはrootパスワードも他のアカウントも存在しないためsu
、ユーザーが端末で実行してroot権限を取得するコマンドはわかっています。
su
。これは、一部のAndroidユーザーがrootに相当するためです。
システムアプリは、システム内に含まれるアプリです。これらは/ system / appフォルダーにあります。
それらの大半は、デバイスを実行するために必要です。これらの一部の例は、すべてのネットワーク接続をセットアップするダイヤラーと、アプリ内Webビューが機能しないブラウザーです。
上記の回答に何か追加したいと思います。システムアプリは、ユーザーアプリとは異なり、完全な工場出荷時設定にリセットすることはできません。すべての個人ファイルを削除したいが、あまりにも多すぎて便利に削除できない場合は、工場出荷時設定にリセットするのが最も便利であり、保持したいアプリがある場合は、それらのアプリをシステムアプリに変換して勝つことができます工場出荷時のリセット中に消去されません。
システムのアプリのもう一つの特徴は、彼らが(ネイティブライブラリを使用することである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をご覧ください。