Membuat System Apps di Android

Yusuf Aji W
Published in
3 min readMay 20, 2017

--

Halo semua, kali ini saya akan membahas system apps di Android. Pastikan kita semua sudah memasang adb dan ada perangkat Android yang terhubung ke komputer. Oke?

Apa itu system apps? Apa bedanya dengan app biasa (user apps)?

User apps (Google menyebutnya third-party application) merupakan aplikasi yang sehari-hari biasa kita pasang melalui Google Play Store, aplikasi ini akan tersimpan di partisi /data di Android kita. Sedangkan system apps adalah aplikasi yang tersimpan di partisi /system. Karena partisi /system itu read-only terhadap user biasa, maka salah satu ciri system apps adalah kita tidak bisa uninstall secara langsung. Aplikasi ini biasanya sudah terpasang di firmware (ROM) bawaan Android kita. Kalau di perangkat Asus kita jumpai ada seperti PC Link, Share Link, Gallery, serta aplikasi-aplikasi bawaan Google.

Untuk melihat daftar user apps lengkap di perangkat Android kita, ketikkan perintah ini di terminal komputer.

adb shell pm list packages -3

Untuk melihat daftar system apps yang terpasang, kita bisa menggunakan perintah ini.

adb shell pm list packages -s

Apa keuntungan system apps dibanding user apps?

Google menyediakan permission yang terbatas pada user apps. Kita tidak bisa menggunakan berbagai macam permission terutama pada level sistem. Dengan system apps kita bisa mendapatkan tambahan permission tersebut untuk aplikasi kita. Misalnya saja kita ingin membuat aplikasi yang mampu memasang aplikasi lain (macam Google Play Store), kita bisa mendapatkan permission INSTALL_PACKAGES. Kita juga bisa restart perangkat Android kita dengan permission REBOOT. Selain itu kita bisa mengatur waktu di sistem Android kita dengan permission SET_TIME.

Permission yang terbatas pada user apps

Untuk melihat lebih banyak daftar permission di perangkat Android kita, silakan ketikkan perintah di bawah ini terminal komputer.

adb shell pm list permissions -g

Selengkapnya silakan lihat daftar permission Android di sini.

Bagaimana cara membuat system apps?

Hal wajib yang harus dilakukan pada aplikasi kita yaitu menambahkan android:sharedUserId="android.uid.system" di dalam tag application di AndroidManifest.xml.

Kemudian build APK dari project Android kita yang telah siap. Setelah itu tinggal menempatkan file APK ke dalam direktori /system/app/ atau untuk Android versi KitKat ke atas bisa ke direktori /system/priv-app/.

Bagaimana menempatkannya?

Yang pertama yaitu menggunakan signing key. Signing key terdiri dari 2 file, yaitu certificate (.pem) dan private key (.pk8). Signing key di sini haruslah sama dengan yang digunakan untuk signing ROM Android kita. Maka jika perangkat Android kita itu Samsung, maka silakan minta signing key-nya ke Samsung sesuai dengan tipe perangkat kita. Dan tentu saja tidak akan boleh, kecuali kamu developernya Samsung sih :P. Kenapa tidak boleh? karena signing key itu rahasia. Jika semua orang tahu signing key-nya Samsung, maka akan begitu mudahnya orang membuat system apps untuk perangkat Samsung. Dan seperti yang saya jelaskan di atas, bahwa system apps menggunakan permission di level sistem, maka akan berpotensi orang-orang membuat malware berbahaya untuk perangkat Samsung. Jadi keep it secret for the trusted developer.

Namun jika kita punya custom ROM sendiri, atau kemudian kita ternyata bisa mendapatkan signing key ROM Android kita. Kita bisa signing APK kita bisa menggunakan cara di bawah ini. File signapk.jar bisa didapatkan di sini.

java -jar signapk.jar certificate.pem key.pk8 nama-file.apk nama-file-signed.apk

Kemudian instal nama-file-signed.apk ke dalam perangkat Android kita secara biasa. Sistem Android akan otomatis akan mengenali sebagai system apps karena memiliki signing key yang sama dengan ROM dan kemudian menempatkannya ke dalam partisi /system.

Cara kedua yaitu dengan rooting perangkat Android kita. Seperti yang saya jelaskan di atas, bahwa partisi /system bersifat read-only terhadap user biasa maka untuk bisa write (menempatkan APK) harus dengan root. Ada banyak tool untuk rooting, silakan cari di Google.

Jika perangkat Android kita sudah rooted, maka tinggal masukkan perintah ini untuk menempatkan APK kita.

adb rootadb remountadb push <nama file>.apk /system/priv-app/adb shell chmod 644 /system/priv-app/<nama file>.apkadb reboot

Setelah reboot, aplikasi kita sudah terpasang di Android kita sebagai system apps. Silakan cek dengan mencoba uninstall nya.

Semoga bermanfaat.

--

--