Apa perbedaan antara aplikasi sistem dan aplikasi pengguna?

28

Saat saya bermain-main dengan ROM yang berbeda dan menggunakan Titanium Backup, saya melihat bahwa aplikasi dikategorikan ke dalam aplikasi sistem dan pengguna. Beberapa pengembang ROM menyatakan bahwa Titanium Backup seharusnya hanya digunakan untuk aplikasi pengguna dan bukan untuk aplikasi sistem, dan ketika saya melanjutkan untuk menghapus aplikasi sistem, TiBu memperingatkan saya bahwa ROM mungkin tidak berfungsi dengan benar.

Selain fakta bahwa aplikasi pengguna dapat diunduh melalui Market atau cara lain, apa perbedaan utama antara keduanya?

Ada apa dengan aplikasi sistem yang membuatnya lebih integral dengan OS itu sendiri?

Kesempatan
sumber

Jawaban:

20

/systemread-only tanpa root sehingga mencegah uninstall aplikasi dari /system/appdan /system/priv-app. Aplikasi yang sangat penting ditempatkan di sana sehingga tidak dapat dihapus. Carrier bloatware yang tidak ingin mereka hapus juga ada di sana. Kategori aplikasi yang terakhir dapat dihapus jika Anda di-rooting; yang pertama, tidak terlalu banyak.

/system/priv-appjuga memungkinkan aplikasi diinstal di sana untuk digunakan signatureOrSystemdan izin istimewa lainnya. Jawaban Stephen memiliki beberapa contoh.

Adapun mengapa aplikasi mungkin kritis, itu tergantung pada ROM. Sense HTC sangat bergantung pada aplikasi bawaan mereka dari apa yang saya dengar, misalnya. Mereka tidak mendesain UI mereka sedemikian rupa sehingga dapat bekerja secara native dengan aplikasi pihak ketiga (atau gagal dengan baik jika aplikasi sistem tidak ada). Aplikasi lain pada dasarnya adalah bagian dari OS Android tetapi Google mengkodekannya sebagai aplikasi / layanan (mungkin karena enkapsulasi dan alasan keandalan).

Pembaruan untuk beberapa aplikasi sistem dapat diunduh melalui Play Store, seperti Google Maps. Jika tidak diinstal sebelumnya sebagai aplikasi sistem pada perangkat Anda, maka Anda dapat menggunakan Titanium untuk mengubahnya dari aplikasi pengguna ke aplikasi sistem.

Matius Baca
sumber
apakah itu juga berarti bahwa aplikasi sistem tidak dapat dibunuh oleh pembunuh tugas ?? atau bahwa mereka akan mulai secara otomatis jika terbunuh ??
ashishsony
@ashishsony Layanan sistem biasanya dimulai secara otomatis, ya, tetapi sebagian besar aplikasi / layanan masih dapat dimatikan. Misalnya saya dapat membunuh Browser di perangkat saya. (Masukkan nasihat biasa tentang bagaimana pembunuh tugas itu buruk.)
Matius Baca
Benar, aplikasi sistem di Perangkat HTC (bahkan yang seperti Dropbox, Facebook) terlalu terintegrasi dengan Sense UI. Seseorang harus menahan diri untuk tidak menghapusnya; juga mengkonversi aplikasi pengguna ke aplikasi sistem tidak boleh dilakukan kecuali sangat diperlukan karena pada beberapa ROM mereka mungkin tidak berakhir dalam kondisi memori rendah.
Ashesh Kumar Singh
1
@semua perbedaan program adalah aplikasi sistem (aplikasi privat) menerima siaran sistem bahkan force_stop dari pengaturan aplikasi, ketika (aplikasi pengguna) aplikasi non-sistem tidak dapat menerima siaran apa pun jika dipaksa_stop dari pengaturan perangkat.
Zala Janaksinh
22

Jawaban lainnya benar, tetapi gagal menunjukkan beberapa perbedaan:

Izin

Aplikasi sistem diberikan kemampuan untuk meminta izin khusus sistem saja yang tidak pernah tersedia untuk aplikasi pengguna. Ini tidak sama dengan izin root / sudo / su.

Salah satu contoh yang saya tahu dan gunakan setiap hari adalah kemampuan untuk mereset penghitung pemberitahuan panggilan yang tidak terjawab. Saya memiliki Go Dialer, yang merupakan pengganti dari stock dialer dan aplikasi kontak (cara Anda melakukan panggilan telepon). Ketika saya melewatkan panggilan, android memberi tahu saya dengan pemberitahuan. Namun, Go Dialer tidak diizinkan untuk mereset penghitung ini, meskipun Go meminta izin itu ketika Anda menginstal aplikasi. Android 2.2 dan sebelumnya membiarkan aplikasi pengguna mengatur ulang, tetapi menjadikan izin ini izin yang hanya dapat diakses sistem untuk android 2.3

Dengan memindahkan aplikasi Go Dialer saya ke partisi sistem, diizinkan untuk mereset penghitung ini. Root tidak diperlukan untuk aplikasi (kecuali, tentu saja, untuk benar-benar memindahkan aplikasi ke partisi Sistem).

Izin sistem lain adalah kemampuan untuk mengatur lokasi gps saat ini. Sekarang, Android memang memiliki preferensi di mana Anda dapat mengizinkan lokasi tiruan, sehingga aplikasi spoofing gps yang Anda instal dapat mendeklarasikan lokasi gps. Tetapi jika aplikasi berada di partisi Sistem, lokasi tiruan dapat dinonaktifkan sementara masih membiarkan aplikasi menipu lokasi gps.

Pembaruan

Aplikasi sistem dapat diperbarui seperti aplikasi pengguna, tetapi pembaruan tidak pernah diintegrasikan ke dalam rom asli. Artinya, aplikasi sistem memiliki kemampuan unik untuk memutar kembali ke versi yang ada saat rom pertama kali diinstal.

Pindah ke SD

Android memungkinkan pengguna memindahkan useraplikasi dari memori internal ke kartu sd. Aplikasi sistem tidak dapat dipindahkan dan selalu memakan ruang internal. Namun, sebagian besar perangkat (semua?) Memiliki aplikasi pengguna internal pada partisi yang berbeda, jadi menghapus instalan aplikasi sistem tidak akan memberi Anda lebih banyak ruang aplikasi pengguna (selain cache dalvik yang dihapus).

Anda akan memulihkan beberapa ruang jika Anda menghapus pembaruan untuk aplikasi sistem. Sebagaimana dicatat, pembaruan tidak terintegrasi dengan rom dan karenanya disimpan di ruang pengguna. Pembaruan tidak diperbolehkan untuk pindah ke kartu sd, tetapi jika dihapus, ruang pengguna dipulihkan.

Bagaimana pengaruhnya terhadap Anda

Jika Anda adalah pengguna android biasa, Anda kemungkinan tidak akan mengalami skenario di mana aplikasi sistem vs pengguna akan membuat perbedaan. Jika Anda adalah pengguna tingkat lanjut, Anda mungkin memiliki root dan dengan demikian dapat mengubah aplikasi sistem menjadi pengguna (dan sebaliknya) jika Anda pernah mengalami salah satu dari situasi ini.

Stephen Schrauger
sumber
1
Apakah maksud Anda "Ini tidak sama dengan izin root / su"? Saya ingat itu sudodan sutidak sama - setidaknya di Unix dan Linux.
ChuongPham
Anda benar bahwa su dan sudo berbeda di * nix. Tetapi sudolebih berlaku di sini, karena sudo meminta hak akses root, sedangkan suhanya meminta untuk Beralih Pengguna. Untuk menggunakan su, Anda hanya perlu mengetahui kata sandi akun tempat Anda beralih; jika Anda tidak menentukan akun, maka Anda meminta untuk menjadi root. Namun di Android, tidak ada kata sandi root, atau akun lain, begitu sujuga perintah yang diketahui oleh pengguna untuk dijalankan di terminal untuk mendapatkan hak akses root.
Stephen Schrauger
Bagaimanapun, saya akan memperbarui jawaban untuk dimasukkan su, karena itulah yang disamakan oleh beberapa pengguna Android dengan root.
Stephen Schrauger
4

Aplikasi sistem adalah aplikasi yang termasuk dalam sistem. Mereka berada di folder / system / app.

Sebagian besar dari mereka diharuskan untuk membuat perangkat berjalan. Contoh beberapa di antaranya adalah dialer, yang mengatur semua konektivitas jaringan, dan browser, yang tanpanya tidak ada tampilan web dalam aplikasi yang akan berfungsi.

Liam W
sumber
1
Dialer mengatur konektivitas jaringan?
Matius Baca
2
@MatthewRead Ya - Ya! 'Dialer' yang sebenarnya adalah aktivitas terpisah yang terletak di aplikasi dialer. Dialer.apk adalah aplikasi yang mengatur konektivitas - jika Anda ingin bukti, bekukan aplikasi penyimpanan dialer dan dialer, jaringan tidak akan berfungsi.
Liam W
Cukup aneh!
Matius Baca
Android itu aneh!
Liam W
3

Saya ingin menambahkan sesuatu di jawaban di atas. Aplikasi sistem tidak dapat dihapus dalam pengaturan ulang pabrik penuh, tidak seperti aplikasi pengguna. Jadi, jika Anda ingin menghapus semua file pribadi Anda tetapi terlalu banyak untuk dihapus dengan mudah sehingga pengaturan ulang pabrik hanya yang paling nyaman, dan Anda memiliki aplikasi yang ingin Anda simpan, Anda dapat mengonversi aplikasi tersebut ke aplikasi sistem sehingga mereka menang. dapat dihapus selama reset pabrik.

CCCP
sumber
1
Tip menarik! Saya ingin memindahkan musik saya ke sistem sekarang lol
FreeSoftwareServers
2

Fitur lain dari aplikasi sistem adalah mereka menggunakan pustaka asli ( file libsomething.so ) dari direktori pustaka sistem umum (biasanya / system / lib atau / system / lib64 ), dan bukan dari direktori pustaka app-private (mis., Data /app/com.example.HelloJni/lib/arm ). Sebelum Android Nougat, aplikasi pengguna bebas memuat dan menggunakan sistem perpustakaan asli. Pembatasan telah diberlakukan kemudian, lihat https://developer.android.com/about/versions/nougat/android-7.0-changes.html#ndk .

Alex Cohn
sumber