Google keyboard pada Kit Kat (CM11) boros bandwidth


::: Abstract :::

Oke, judulnya memang kurang tepat, tapi sepertinya judul tersebut cukup mewakili kesimpulan akhir tulisan ini. Setelah lama tidak menulis pada blog ini, saya mohon maaf jika tulisan yang muncul justru tidak memberikan banyak pencerahan, namun justru memberikan banyak pertanyaan. Tujuan dibuatnya tulisan ini pun lebih ke arah dokumentasi pribadi, sekaligus untuk berbagi pengalaman yang terjadi beberapa jam lalu. Singkatnya, tulisan ini menceritakan tahapan yang dilakukan ketika memeriksa penggunaan bandwidth oleh keyboard android (LatinImeGoogle.apk) bandwidth yang sangat besar (dalam waktu kurang dari 1 bulan, bandwidth yang digunakan mencapai 50 GB).

Kesimpulan sejauh ini adalah tidak jelas mengapa dan untuk apa penggunaan bandwidth tersebut, namun disarankan bagi pengguna android agar memantau penggunaan datanya, terutama pada jaringan wifi. Jika memang dirasa tidak wajar, sebaiknya menggunakan keyboard lain yang banyak tersedia di play store. Bagaimanapun juga banyak data sensitif (seperti password, nomor rekening, dsb) yang bisa didapatkan dari keyboard.

NB: Android yang digunakan merupakan Android Kit Kat (Android 4.4.2) dengan rom CyanogenMod 11 (CM11), ClockWordMod (CWM) Recovery v.6.0.4.6 yang dijalankan pada Samsung Galaxy Ace 2 (GT-I8160).

Sumber: Screenshot handphone

::: Latar Belakang :::

image
Sumber: Graphing RouterOS Mikrotik

Selama beberapa hari, jaringan yang biasanya sangat cepat dan lancar dirasakan tidak stabil dan lambat. Menurut pengamatan pada mikrotik (gambar di atas), memang terlihat penggunaan bandwidth sangat penuh, hampir stabil di 2 Mbps. Mengingat bahwa bittorrent, bitcoin, shoutcast radio dan youtube hampir selalu aktif, grafik tersebut tidak dirasakan aneh, bahkan cenderung wajar. Ketidak wajaran baru dirasakan ketika grafik tetap menunjukkan penggunaan yang tinggi meskipun layanan lainnya tidak digunakan.

::: Investigasi :::

Mengingat layanan yang aktif merupakan layanan yang sudah terkenal menggunakan bandwidth tinggi, maka dugaan awal penyebab dari penuhnya jaringan adalah penggunaan layanan tersebut. Setelah mematikan layanan bitcoin dan shoutcast radio, bittorrent dan youtube dibatasi penggunaan bandwidth-nya menggunakan simple queue hingga maksimal hanya menggunakan masing-masing 256 kbps. Setelah simple queue diterapkan, memang terjadi pengurangan penggunaan bandwidth, namun tidak seberapa dan hanya sesaat. Jika diamati dari statistics yang ada, paket yang ditangkap tidak seberapa.

image    image

Sumber: Screenshot mikrotik

Karena memang layanan yang diduga tadi terbukti bukan sebagai penyebab masalah, dilakukanlah monitoring terhadap seluruh koneksi yang sedang aktif. Hal ini dilakukan dengan fitur torch pada mikrotik. Setelah melihat koneksi yang aktif, akhirnya diketahui bahwa pengguna bandwidth tertinggi saat itu merupakan Handphone yang memang ketika itu sedang terkoneksi ke wifi. Hal yang menarik adalah, pada saat itu, handphone tidak digunakan sama sekali sehingga adalah aneh ketika handphone terus melakukan transmisi data secara aktif ke beberapa IP dan menggunakan bandwidth hingga 1500 kbps. Lebih anehnya lagi adalah, transmisi dilakukan melalui HTTPS.

image

Sumber: Screenshot mikrotik

Setelah mengetahui bahwa pengguna bandwidth paling tinggi dilakukan oleh handphone, pemeriksaan dilanjutkan dengan melihat aplikasi apa saja yang menggunakan bandwidth pada handphone tersebut. Di sini diketahui hal yang sangat mengejutkan, yaitu penggunaan bandwidth untuk wifi itu mencapai 60 GB dalam waktu satu minggu kurang. Lebih mengejutkan lagi adalah penggunaan bandwidth Google Keyboard adalah hampir seluruhnya. Untungnya, hal ini tidak terjadi pada koneksi paket data biasa sehingga tidak sampai menimbulkan kerugian material ataupun kehabisan kuota paket data.

Sumber: Screenshot handphone

Mengingat keyboard selalu kita gunakan untuk melakukan login pada berbagai akun, hal ini menimbulkan kekhawatiran jika segala aktifitas pada keyboard dicatat dan dikirimkan ke pihak yang tak bertanggung jawab. Mengantisipasi hal tersebut, maka dilakukanlah resolving untuk IP yang telah diketahui sebelumnya. Ternyata semua Ip tersebut dimiliki oleh domain 1e100.net yang tak lain merupakan domain milik google untuk semua servernya. Hal ini menimbulkan pertanyaan: transmisi data apa yang dilakukan oleh google yang bisa menghabiskan bandwidth dalam jumlah besar seperti itu?

image

Sumber: Screenshot command prompt

Hasil pencarian pada google tidak memuaskan. Pada dasarnya, mayoritas pengguna berpendapat bahwa transmisi data tersebut bisa jadi merupakan akibat daripada pengumpulan data penggunaan keyboard (yang belakangan ini beredar isu disalah gunakan oleh NSA sebagai media mata-mata), atau memang proses unduh kamus yang digunakan pada fitur auto-completion. Kedua jawaban tersebut tidak berhasil menjelaskan terkait besarnya ukuran yang dibutuhkan. Secara logika sederhana, ukuran data sebesar 1 GB saja sudah mampu menampung jumlah kata yang cukupp untuk membuat ribuan novel.

Penasaran akan jawaban dari pertanyaan tersebut, diunduhlah kode aplikasi keyboard android yang memang bersifat opensource. Ternyata untuk keseluruhan project aplikasi keyboard tersebut sendiri berukuran 298 MB, sehingga proses unduh memakan waktu yang cukup lama. Sembari menunggu proses unduh tersebut selesai, dilakukanlah proses debugging dengan memanfaatkan logcat pada eclipse. Hasil dari logcat sepertinya membuktikan bahwa memang benar transfer data yang dilakukan murni untuk pengunduhan kamus. Namun, terlihat bahwa pengunduhan tersebut sepertinya dilakukan secara terus menerus (bug?), sehingga menjelaskan mengapa jumlah bandwidth yang digunakan sangat tinggi. Secara tidak langsung, tentunya ini akan mempengaruhi performa baterei dan hp secara keseluruhan.

image

Sumber: Screenshot eclipse

Setelah source code selesai diunduh, niat untuk investigasi lebih lanjut sudah tidak terlalu besar karena sudah mendapatkan penjelasan yang cukup masuk akal. Niat untuk melakukan investigasi lebih dalam dan sekaligus memperbaiki masalah (bug) yang ada pun semakin pudar begitu melihat source code yang ada. Selain banyaknya file, dependency yang dibutuhkan juga belum lengkap diunduh. Akhirnya, investigasi yang dilakukan diakhiri sampai disini.

image

Sumber: Screenshot SmartGit

::: Kesimpulan :::

Google keyboard yang diuji memang menggunakan bandwidth yang cukup tinggi ketika diaktifkan dalam kondisi wifi. Hal ini tentu akan merugikan jika wifi yang digunakan berasal dari wifi tethering yang pada umumnya menggunakan paket data yang terbatas dan mahal. Lebih lanjut, karena kondisi penggunaan jaringan secara aktif dan terus menerus, tentunya akan membuat kinerja handphone tidak optimal, dan penggunaan baterei pun lebih boros.

Selain alasan performa dan biaya, juga terdapat kekhawatiran terkait privasi pengguna handphone. Mengingat banyak orang yang mengakses data sensitif seperti internet banking melalui handphone, hal ini patut dijadikan pertimbangan untuk berhati-hati menggunakan google keyboard ini.

Sebagai penutup, beberapa alternatif solusi yang dapat digunakan untuk meminimalisir kejadian yang tidak diinginkan adalah:

  • Menghapus google keyboard, kemudian menggantinya dengan keyboard yang lain semisal SwiftKey, Swype Keyboard ataupun GO Keyboard
  • Tidak memberikan ijin kepada google keyboard untuk melakukan akses jaringan
  • Tidak menggunakan rom tidak resmii
  • Tidak menggunakan HP android apapun *peace*

::: Pengetahuan Lanjut :::

Beberapa hal menarik yang mungkin berminat untuk diketahui lebih lanjut adalah:

::: Outro :::

Listening to: SelectivFm Chillstep

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s