Ini adalah bagian kedua dari blog saya seri yang membahas tentang membangun solusi MDM (Manajemen Perangkat Seluler) khusus. Jika Anda belum membaca bagian pertama, Anda harus memeriksanya. Di Sini.
Seperti yang telah disebutkan di blog sebelumnya, sebagai bagian dari solusi MDM, kami memiliki agen MDM yang berjalan di tablet yang mengambil operasi dari server, mengeksekusinya, dan mengembalikan status operasi tersebut ke server MDM. Sebagai pengingat singkat, berikut beberapa contoh operasi tersebut:
- Instalasi aplikasi secara senyap
- Pengaturan blok pada tablet
- Blokir aplikasi/aplikasi di tablet
- Setel ulang pin pada tablet
- Reset pabrik tablet
Dalam postingan ini, saya akan berbicara tentang bagaimana kami mewujudkan penerapan beberapa operasi yang menantang ini.
Jadi, untuk memperjelas konteksnya, jika Anda mengembangkan aplikasi Android biasa, Anda hanya akan memiliki akses ke API Android yang terbuka untuk umum. Arsitektur Anda akan terlihat seperti di bawah ini.

Namun, ketika Anda membangun agen MDM, API yang diekspos publik tidak cukup untuk mengimplementasikan beberapa operasi. Jadi, misalnya, jika Anda ingin menginstal aplikasi secara diam-diam (instalasi terjadi di latar belakang, tanpa sepengetahuan pengguna), tidak ada API publik untuk melakukannya. Namun, jika Anda melihat kode sumber Android, terdapat metode yang dapat melakukan hal tersebut. Lalu, apa yang harus kita lakukan?
Nah, di sinilah kita perlu sedikit memperluas wawasan. Seperti yang telah saya sebutkan sebelumnya, kami bertanggung jawab atas solusi menyeluruh, perangkat keras, dan perangkat lunak. Hal ini memberi kami ruang lingkup yang besar dalam hal kustomisasi platform Android, dan beginilah cara kami melakukannya.
Kami bekerja sama langsung dengan vendor perangkat keras untuk pengadaan perangkat Android. Perangkat ini dilengkapi dengan citra sistem Android yang dirancang khusus untuk kebutuhan kami. Citra sistem merupakan kombinasi dari sistem operasi Android, aplikasi OEM (Original Equipment Manufacturer, dalam hal ini, vendor perangkat keras), driver khusus perangkat, dan lain-lain. Seperti yang kita ketahui, Android adalah platform sumber terbuka dan vendor perangkat keras bebas untuk menyesuaikannya, selama memenuhi CTS (Compatibility Test Suite) Android.
Kami membangun layanan Android yang akan mengekspos beberapa API Android yang tidak tersedia untuk umum. Sebut saja "layanan jembatan". Kami menyerahkan layanan ini kepada vendor perangkat keras kami untuk disertakan dalam citra sistem kustom kami. Dengan menyertakan layanan jembatan dalam citra sistem, layanan ini akan memberikannya akses ke API non-publik Android, karena layanan ini akan dianggap sebagai bagian dari sistem operasi Android. Layanan jembatan ini selanjutnya akan diakses oleh agen MDM kami untuk mengimplementasikan beberapa operasi. Dan boom, selesai! Sekarang kami memiliki akses ke API non-publik Android.
Kami tidak berhenti hanya dengan mengekspos API non-publik; kami melangkah lebih jauh. Kami menyertakan beberapa komponen Android kustom dalam citra sistem. Misalnya, salah satu persyaratan bisnis adalah hanya mengizinkan aplikasi tertentu untuk berjalan di tablet. Untuk ini, kami memiliki utilitas App Killer yang mematikan aplikasi yang tidak termasuk dalam daftar "aplikasi yang diizinkan". Daftar ini diambil dari server MDM sebagai bagian dari suatu operasi dan diumpankan ke utilitas App Killer di tablet.
Beberapa persyaratan lainnya, seperti memblokir pengaturan tertentu di tablet, diterapkan dengan mengganti kode aplikasi Pengaturan yang merupakan bagian dari sistem operasi Android. Dengan semua penyesuaian ini, beginilah tampilan arsitektur kami.

Keren sekali rasanya menyadari bahwa kita bisa melakukan apa pun yang kita inginkan dengan sistem operasi Android! :). Tapi, tentu saja, semua ini ada harganya.
Pertama-tama, layanan jembatan ini menghadirkan risiko keamanan dan kami mengatasinya dengan memastikan bahwa layanan tersebut hanya dapat diakses oleh agen MDM kami. Kekhawatiran besar lainnya adalah, ketika Android mengubah salah satu API ini, yang mana API tersebut bebas mereka lakukan karena tidak dipublikasikan, kami harus melakukan perubahan yang sesuai pada layanan jembatan kami. Selain itu, menyusun logistiknya tidaklah mudah, terutama karena siklus umpan balik yang panjang yang terlibat dalam pengujian integrasi antara citra sistem, layanan jembatan, dan agen MDM. Setiap perubahan citra sistem harus disertifikasi oleh Google dengan melewati CTS, yang menambah penundaan. Membuat perubahan pada citra sistem mengharuskan kami untuk kembali ke vendor perangkat keras yang memakan waktu. Saat ini, vendor perangkat keras membutuhkan waktu sekitar 3 hari untuk memproses satu perubahan citra sistem, tergantung pada kompleksitas perubahannya. Oleh karena itu, kami harus merencanakan perubahan ini jauh-jauh hari.
Namun, ketika Anda membangun solusi manajemen perangkat seluler, Anda membutuhkan kemampuan ini. Hal ini telah meningkatkan pengalaman pengguna tablet secara signifikan. Misalnya, di tablet, kita dapat menginstal aplikasi secara diam-diam tanpa perlu mengklik tombol OK di beberapa layar. Bayangkan jika pengguna harus melakukan ini untuk ratusan aplikasi! Pada saat itu, hal ini menjadi sebuah kebutuhan, bukan sekadar 'kelebihan'.
Sungguh menyenangkan "meretas" dengan sistem operasi Android. Semoga Anda menyukai blog ini. Jangan ragu untuk memberi tahu saya pendapat Anda. Terima kasih sudah membaca!