Minggu, 16 September 2012

Rooting Android


Android sedang populer di waktu-waktu ini. Mungkin Anda juga salah satu orang yang baru saja membeli perangkat mobile (Tablet PC atau Smartphone)  ber Sistem Operasi Android. Anda mungkin banyak mendengar dari para pengguna Android yang menyarankan Anda untuk melakukan "Rooting" pada perangkat Anda namun Anda masih kurang jelas apa itu Root? Manfaat apa saja yang didapatkan? Resikonya apa? Serta, bagaimana cara melakukannya. Tulisan ini bertujuan untuk menjawab semua pertanyaaan Anda ini. Semoga dapat bermanfaat dan Anda dapat mengerti dengan jelas mengenai Rooting dan mampu memutuskan apakah Anda membutuhkan akses Root atau tidak. 

Dengan pengalaman Saya yang sudah pernah memiliki dan menggunakan 4 perangkat Android sejak tahun 2010, (Acer Liquid E, HTC Desire Z, Acer Iconia A500 dan HTC Sensation XE with Beats Audio), saya akan mencoba untuk berbagi pengetahuan dengan bahasa yang lebih sederhana dan diharapkan dapat dimengerti oleh pengguna awam.

1. Apa Itu Rooting?

Root pada dasarnya adalah sebuah hak akses. Dalam proses rooting, Anda memang akan menginstall beberapa aplikasi seperti Superuser, Recovery dan beberapa aplikasi lainnya namun pada dasarnya mendapatkan Root adalah Anda mendapatkan hak akses tertinggi (Super User) untuk mengatur  perangkat Anda. Dengan kata lain, Anda memiliki kontrol penuh terhadap perangkat Anda baik secara hardware maupun software

Perusahaan pengembang perangkat Android pada dasarnya tidak mendukung aksi "rooting" ini. Secara default, perangkat Android yang Anda beli dari toko pasti dalam kondisi yang tidak memiliki akses Root. Alasannya sederhana.. yaitu untuk memberikan batasan-batasan kepada pengguna agar tidak dapat melakukan hal-hal yang berpotensi "membahayakan" perangkat Android tersebut. Maka dari itu perusahaan dapat memberikan jaminan kestabilan perangkat tersebut (baca: garansi) jika pengguna mempergunakannya secara "normal" (tidak di root).

Android adalah sistem operasi yang terbuka. Sistem operasi ini men-share source code pembangunnya pada publik sehingga memungkinkan untuk komunitas pengembang pihak ketiga untuk melakukan modifikasi dan pengembangan terhadap Android. Berbeda dengan sistem operasi yang tertutup seperti IOS, Blackberry OS, Windows dan berbagai sistem lain yang tertutup dan tidak mempublikasi kode pembangunnya. Karena itu, banyak terbentuk komunitas yang mengembangkan berbagai aplikasi untuk meng-optimalisasi dan meng-efektifkan perangkat Android tersebut. Sebagian dari aplikasi tersebut memerlukan akses Root untuk menjalankannya. Maka dari itu, pengguna juga harus berperan aktif terlebih dahulu untuk berusaha mendapatkan akses root tersebut dengan cara rooting. 

Ada satu hal yang perlu Anda ketahui setelah Anda mempunyai akses ROOT dan menginstal aplikasi-aplikasi yang membutuhkan akses Root... "Anda bertangung jawab atas apa yang Anda lakukan sendiri". Karena Perusahaan sudah tidak lagi memberi jaminan (garansi), dan pengembang software juga tidak bertanggung jawab apabila ternyata software tersebut menyebabkan perangkat Anda rusak. Seharusnya peringatan ini sudah diberikan di setiap tutorial rooting sebagai pengetahuan umum yang harus diketahui oleh semua calon rooters.


2. Manfaat Rooting dan Aplikasi yang Membutuhkan Akses Root pada Android

Sebelum Saya jelaskan lebih jauh mengenai proses root, Saya akan jabarkan beberapa manfaat yang bisa Anda dapatkan jika Anda memiliki akses root. Berikut poin-poinnya:

2.1 Backup dan Restore full Rom

Ketika Anda melakukan Rooting, salah satu tahapannya adalah menginstal custom recovery yang dapat diakses pada bootloader (menu yang dapat diakses ketika perangkat dihidupkan sebelum masuk ke sistem operasi androidnya). Sebenarnya, Android sudah memiliki program Recovery bawaan sendiri. Namun, recovery bawaan Android sangatlah terbatas dan salah satunya adalah tidak dapat melakukan backup dan restore Rom (Rom: kata lain dari sistem operasi yang sudah diimplementasikan pada perangkat). Maka dari itu, Hal pertama yang saya Anjurkan setelah mendapatkan akses root adalah Anda dapat dan harus melakukan full backup (OS + aplikasi + data aplikasi) terhadap ROM yang dipakai sekarang denganmengasumsikan bahwa sistem saat ini berada pada kondisi yang paling stabil (belum di apa-apakan), sehingga apabila terjadi masalah di kemudian hari, Anda dapat melakukan full restore dan dapat kembali ke kondisi paling stabil. Ada banyak Custom Recovery yang tersedia seperti ClockworkMod (CWM) Recovery, RA Recovery, TeamWin Recovery (TWRP), dan sebagainya. Sebaiknya pilihlah recovery image yang direkomendasikan oleh komunitas pengembang perangkat Anda (Tidak perlu bingung. Biasanya sudah include dalam tutorial rooting). 

2.2 Partisi, Swap Memory, Link2SD dan Ram Manager

Partisi adalah menyisihkan sebagian dari memori eksternal (MicroSD Card) Anda untuk dijadikan virtual memori internal dan Swap memori adalam menyisihkan sebagian dari memori eksternal menjadi virtual RAM. Mengapa partisi diperlukan? Android diatas versi 2.2 (Froyo) sebenarnya sudah ada fitur bawaan untuk "Move to SDCARD" untuk beberapa aplikasi yang support. Namun, cara ini tidak seluruhnya (tidak 100%) memindahkan aplikasi dari memori internal dan tidak semua aplikasi bisa di move to SDCARD. Sehingga untuk perangkat Android yang kebetulan dianugerahi memori internal yang sangat terbatas akan tidak leluasa dalam menginstal aplikasi.

Dengan membuat partisi (dengan bantuan custom recovery) dan dengan bantuan aplikasi Link2SD (butuh Root) Kita dapat meng-ekspan memori internal kita menjadi up to + 4GB. 


Pada contoh diatas, Saya membuat partisi untuk SD Card 2nd Part sebesar 2GB. Aplikasi-aplikasi yang makan memori besar saya pindahkan (Link) ke memori internal kedua itu sehingga memori internal bawaan saya jadi lebih lenggang. 

Hal kedua adalah menambah RAM dengan membuat file swap (swap memory). Dengan bantuan RAM Manager Pro, saya dapat menambah RAM dari perangkat saya sebesar 256MB lagi. Dengan demikian Ram perangkat saya yang semula hanya 768MB menjadi 1GB dengan tambahan 256MB secara virtual. 


Untuk lebih optimal, pastikan Anda menggunakan kartu memori (MicroSD Card) dengan kecepatan diatas class 6. Preferably class 10 atau ULTRA agar tidak memperlambat performa memori. Perlu diketahui bahwa penambahan ram dengan cara swap memori dapat mereduksi umur SD Card cukup signifikan karena SDcard akan secara intense diakses untuk keperluan swap memori.

2.3 Ad Blocker

Android memang memiliki banyak aplikasi-aplikasi gratis yang cukup berguna. Namun, aplikasi-aplikasi ini sebagian besar menampilkan iklan. Taukah Anda bahwa dibutuhkan daya (batrai) dan bandwith (internet) yang cukup besar untuk menampilkan iklan iklan tersebut? Tidak heran bahwa jika Anda kelupaaan menggunakan paket internet yang besar, tagihan Anda bisa membengkak karena sebenarnya perangkat Anda mengunduh iklan-iklan untuk ditampilkan pada Anda, bahkan ada beberapa aplikasi yang tetap mengunduh iklan padahal aplikasi tersebut sedang tidak digunakan. 

Anda dapat menginstal berbagai software ad-block untuk menghalangi perangkat Anda mengunduh iklan iklan tersebut. Salah satu aplikasi yang menyediakan fitur ad-blocker adalah ROM Toolbox yang cara kerjanya adalah mem black-list puluhan ribu URL iklan agar aksesnya ditolak oleh perangkat Anda ataupun Anda juga dapat menghapus manual setiap iklan dari aplikasi-aplikasi populer dengan menggunakan Lucky Patcher (ada unsur probabilitas keberhasilannya). 

Perlu diketahui bahwa aksi ad-blocking ini merugikan para pengembang aplikasi.



2.4 Menghapus aplikasi bawaan

Perusahaan pengembang perangkat Android biasanya memasukkan banyak aplikasi-aplikasi pre-install (system app) yang secara normal tidak dapat Anda uninstall. Anda hanya dapat melakukan uninstall pada aplikasi-aplikasi yang Anda install sendiri (user app). Aplikasi-aplikasi bawaan tersebut kadang memakan banyak memori internal dan apabila Anda merasa tidak pernah menggunakannya dan tidak membutuhkannya, Anda dapat meng-uninstallnya dengan menggunakan bantuan aplikasi Rom Toolbox

Selain itu, Anda juga dapat membuat suatu system app menjadi user app maupun sebaliknya. Anda perlu berhati-hati dan jangan sampai melakukan uninstall pada system app yang penting bagi kestabilan sistem Android. Karena Anda sudah memiliki akses tertinggi, tidak ada lagi peringatan yang diberikan. Anda harus tahu sendiri mana yang "aman" untuk dibuang dan mana yang tidak. 

Anda juga dapat melakukan "Freeze app" untuk me-non aktifkan suatu aplikasi secara total tanpa menghapusnya (meng-uninstalnya). 


2.5 Start Up Manager

Dngan bantuan Rom Toolbox, Anda dapat mengatur aplikasi apa sajakah yang boleh dijalankan ketika startup (Perangkat dinyalakan pertama kali). Ada beberapa aplikasi yang memasang "Receiver" untuk menangkap suatu event dan meresponinya walaupun aplikasi utama sedang tidak dijalankan. Jika Anda menginstal banyak aplikasi dan banyak receiver yang aktif, otomatis startup akan jadi lebih lama dan memori RAM perangkat Android Anda akan semakin sedikit. Maka dari itu, Dengan adanya startup manager ini Anda dapat menghentikan beberapa receiver dari aplikasi-aplikasi yang jarang Anda gunakan sehingga perangkat Anda tetap dalam kondisi prima walaupun menginstal ratusan aplikasi. 


2.6 CPU Control dan Auto Memory Manager

Selain mengontrol perangkat lunak, dengan adanya akses Root, Anda juga mampu mengontrol secara langsung behavior (cara kerja) dari CPU perangkat Anda (CPU Control). Mulai dari yang paling sederhana adalah memilih profil Governor hingga menentukan profil apabila terjadi suatu event (Ketika layar mati, ketika batrai dibawah sekian persen, ketika kondisi charging/full, temperatur diatas sekian derajat, layar hidup, ketika on call, dan sebagainya).


Tujuannya adalah, agar penggunaan CPU dapat lebih hemat daya apabila sedang tidak dibutuhkan namun tetap cepat dan responsif apabila sedang dibutuhkan. Misal pada gambar diatas, Saya menggunakan Governor On Demand untuk kinerja secara default dengan minimum  clock rate 385MHz dan maksimum 1512MHz. Namun ketika kondisi layar mati (Screen Off), CPU clock rate akan langsung diturunkan pada 384MHz - 756MHz dengan governor Powersave. 

Sedikit akan dijelaskan apa itu Governor dari CPU. CPU Governor adalah kumpulan 'logic' yang sudah ditanamkan pada kernel yang menentukan penggunaan CPU apabila user melakukan sesuatu. Jadi, program pengatur CPU seperti Rom Toolbox, SetCPU dan lain sebagainya hanya memanggil berbagai profil tersebut dari kernelnya. 
  • On Demand: Mode On Demand biasanya ada di sebagian besar kernel. Pada mode ini CPU akan dengan sangat cepat menaikkan performa (clock rate) apabila sedang dibutuhkan (perangkat digunakan) untuk memenuhi permintaan, kemudian akan memperlambat performa (clock rate) secara bertahap (perlahan). Profil ini menghasilkan perangkat yang responsif namun lebih boros daya.
  • Conservative: Mode conservative ditemukan di beberapa kernel. Mirip dengan On Demand, namun CPU akan menaikkan clock rate secara bertahap untuk memenuhi kebutuhan. Performa pada mode conservative mungkin akan kurang responsif dibandingkan On Demand, namun akan lebih hemat daya. 
  • Performance: CPU akan disetel bekerja pada clock rate maksimal setiap waktu. Profil governor ini sebaiknya digunakan untuk proses benchmarking saja karena akan sangat panas dan boros daya. 
  • Powersave: Kebalikan dari profil  performance, CPU pada profil powersave akan disetel untuk selalu bekerja pada nilai clock rate minimum.
  • Userspace: Metode pengontrolan CPU yang saat ini tidak digunakan pada program set CPU (Khusus pengembang). Sebaiknya pengguna awam tidak menggunakan metode ini.
  • Interactive
The 'interactive' governor has a different approach. Instead of sampling the cpu

at a specified rate, the governor will scale the cpu frequency up when coming

out of idle. When the cpu comes out of idle, a timer is configured to fire

within 1-2 ticks. If the cpu is 100% busy from exiting idle to when the timer

fires then we assume the cpu is underpowered and ramp to MAX speed.


If the cpu was not 100% busy, then the governor evaluates the cpu load over the
last 'min_sample_rate' (default 50000 uS) to determine the cpu speed to ramp down

  • SmartAss dan SmartAssV2: Singkat kata: logic yang lebih baik daripada mode interactive. Biasanya terdapat pada kernel custom rom. 

2.7 "Membajak Aplikasi" lebih mudah

Poin ini sebenarnya kontroversial karena disatu sisi merugikan para developer. Saya tetap akan bahas poin ini karena hal ini juga termasuk "to-do list yang dapat dilakukan jika Anda memiliki akses Root. Aplikasi Android pada dasarnya mudah sekali untuk dibajak. Dengan menggunakan file manager yang mendukung  root browser (Misalnya Es File Explore) , Anda dapat menelusuri sistem Android dan mengambil installer (file berekstensi .apk) dari sistem kemudian men-copy kan nya pada perangkat lain. Anda sebenarnya tidak memerlukan akses root untuk dapat menginstal aplikasi bajakan ini. Anda cukup men-centang "Unknown Resource" pada setting "Security" dan Anda dapat dengan bebas menginstal aplikasi berekstensi .apk diluar market (PlayStore). 


Walaupun Anda dapat menginstalnya, namun beberapa aplikasi menambahkan sendiri mekanisme keamananan didalam aplikasi tersebut. Mekanisme keamanan ini misalnya sinkronisasi pada server dan server dapat mengidentifikasi apakah aplikasi tersebut dari pembeli yang sah atau tidak. Apabila Anda terdeteksi bukan pembeli yang sah, maka aplikasi akan menolak untuk bekerja. Untuk masalah ini ada aplikasi seperti Lucky Patcher yang membutuhkan akses root untuk menghilangkan "license verification" ataupun memberikan "custom patch" supaya aplikasi tersebut tetap bisa digunakan. Lucky patcher sendiri memiliki daftar aplikasi apa saja yang bisa dibajak (diberi custom patch). Biasanya aplikasi-aplikasi populer.


2.9 Flashing Custom Rom

Pada dasarnya Anda hanya perlu membuka (unlock) bootloader dan menginstal custom recovery saja untuk dapat melakukan flashing custom rom (tidak perlu rooting). Namun, biasanya proses pemasangan custom recovery sudah "satu paket" dalam proses rooting. Dengan menggunakan custom recovery, Anda dapat menginstal custom rom yang dibuat oleh komunitas perangkat Anda. Custom rom biasanya menawarkan berbagai hal yang biasanya tidak terdapat pada Stock Rom atau Rom bawaan pada perangkat Anda, misalnya, 
  1. Versi OS yang lebih baru, misalnya secara resmi baru menggunakan Android 2.3.3 (Gingerbread), namun komunitas pengembang di XDA Developers sudah mengembangkan versi 4.0.3 (Icecream Sandwich) nya.
  2. Dapat menggunakan versi OS dari perangkat berbeda (tergantung pengembang). Misalnya, HTC Desire Z saya dapat menggunakan rom dari HTC Desire HD yang sudah di sesuaikan drivernya dengan HTC Desire Z. 
  3. Kernel CPU yang sudah di overclock. Ada beberapa pengembang yang sengaja downclock CPU suatu perangkat. Proses overclock yang disarankan pengembang sebenarnya tidak berbahaya karena hanya sekedar "mengembalikan" kecepatannya ke semula. Misalnya, HTC Desire Z saya sebenarnya memiliki processor yang sam dengan HTC desire HD. Namun HTC Desire saya di downclock oleh HTC secara default di kecepatan 800Mhz (Desire HD 1Ghz). 
  4. Memiliki optimisation RAM script, Dalvix tweak (yang intinya untuk optimalisasi hardware agar kinerja lebih smooth). Adrenaline Engine, Supercharger, Zipaligned, dan lain sebagainya.
  5. Kadang, custom rom juga bisa mengusung teknologi dari pengembang lain. Misalnya Sony Bravia Engine dapat diimplementasikan di HTC. atau HTC beats audio dapat diimplementasikan di perangkat lain.
  6. Custom rom umumnya sudah dalam kondisi rooted. 
  7. Berbagai kostumisasi tampilan yang unik seperti boot animation, tema warna icon, font dan sebagainya.

Berikut berbagai tips dalam memilih custom rom:
  1. Custom rom dikembangkan oleh pihak ketiga sehingga tidak menjamin kestabilannya. Silahkan kunjungi situs yang terpercaya dalam memilih custom rom (misal: XDA Developers)
  2. Perhatikan dengan seksama spesifikasi custom rom. Pastikan semua persyaratan, jenis perangkat dan sebagainya sudah cocok dengan milik Anda. 
  3. Perhatikan juga "work" dan "not work". Karena custom rom yang belum stabil dan masih dalam tahap pengembangan terkadang ada beberapa komponen yang belum jalan (misal kamera, wifi, dll). Pilihlah custom rom yang sudah berumur cukup lama, sudah di update banyak versi dan banyak testimoni "stabil" dari para penggunanya. 
  4. Selalu lakukan Nandroid Backup terlebih dahulu sebelum flashing custom rom

2.10. Multi Boot Rom

Sama seperti layaknya PC, Anda juga dapat memiliki multi-boot atau banyak sistem operasi (ROM) Android pada sebuah perngkat dengan bantuan aplikasi Boot Manager. Tidak semua perangkat Android disupport oleh Boot Manager (Ada compatibility listnya). 
Current Supported Devices
Samsung Galaxy Nexus
HTC Desire
HTC Desire HD
Htc Desire S
HTC Desire Z
Htc Evo 3D
HTC EVO 4G
HTC G2(aka Vision)
HTC Incredible 1
Htc Incredible 2
Htc Incredible S
HTC Inspire4g
HTC MyTouch 4G
HTC Nexus One
Htc Sensation
HTC Thunderbolt
HTC Rezound
Motorola Droid 1
Motorola Droid 2
Motorola Droid 2 Global
Motorola Droid X
Motorola Razr
Silahkan kunjungi halaman aplikasi Boot Manager pada link diatas untuk tahu lebih detailnya. 

2.11. Backup aplikasi dan data aplikasi

Jika Anda suka gonta-ganti ROM, maka akan sangat merepotkan jika Anda harus menginstal lagi puluhan aplikasi-aplikasi Anda secara Manual. Anda dapat memanfaatkan aplikasi seperti Titanium Backup untuk "Batch Backup" dan "Batch Restore" aplikasi-aplikasi Anda (Membackup dan menginstal kembali semua aplikasi Anda dalam 1x klik). Aplikasi tersebut tidak hanya menginstal namun juga merestore semua data yang tersedia. Jadi Anda tidak memulai lagi dari nol (fresh install).

2.12 Install External Script

Jika Anda memiliki akses root pada perangkat Anda, ada banyak script yang dapat dipasangkan untuk mengoptimalisasi perangkat Android Anda. Misalnya sebuah script untuk mengoptimalkan GPS. Dengan menggunakan script ini diharapkan GPS perangkat Anda dapat lebih cepat mendapatkan posisi dan mengunci lokasi (satelit). Selain itu ada script seperti Supercharger yang membuat perangkat Anda jadi lebih cepat dan hemat baterai. Biasanya, script-script ini sudah include dalam custom rom. Namun jika belum sekalipun Anda dapat bereksperimen dan memasangnya sendiri.
Perlu diingat bahwa pemasangan script ini cukup beresiko. Pastikan Anda membaca forum, mempelajari kendala dan error yang terjadi pada pengguna-pengguna lain dan jangan lupa melakukan Full backup menggunakan custom recovery. 

2.13 [Dalam pengembangan] Menginstal Sistem Operasi lain pada perangkat Android

Mengingat saat ini perankgat mobile sudah memiliki hardware yang sangat mumpuni, Anda dapat menginstal beberapa sistem operasi lain pada perangkat Android. 
  1. Linux (Ubuntu)
  2. Windows 95/98/XP

3. Bagaimana Cara Rooting?

Cara rooting setiap perangkat berbeda-beda untuk setiap seri, merk, dan beberapa versi android. Jika Anda memiliki teman yang berhasil melakukan rooting pada perangkat Androidnya, jangan diharapkan bahwa dia juga dapat melakukannya pada perangkat Anda apabila berbeda seri dan merk. Setiap perangkat memiliki cara yang unik dan dapat Anda temukan dengan menjelajahi forum XDA Developers pada sub-forum Android Development untuk setiap perangkat. Ada perangkat yang gampang di root, ada yang sukar. Ada yang sudah memiliki "one click root", ada yang masih harus manual menggunakan ADB shell. 

Berikut ini saya sediakan beberapa link menuju tutorial rooting untuk beberapa merk dan seri perangkat. Selebihnya silahkan cari sendiri di forum XDA Developers.

4. Resiko Rooting

Rooting pada dasarnya tidak beresiko yang fatal. Jika Anda gagal, Anda belum mendapatkan akses root. Itu saja. Secara umum, proses yang membahayakan adalah proses flashing. Flashing yang tidak berjalan semestinya bisa menyebabkan bootloop (mengulang-ulang booting), boot stuck (berhenti pada titik tertentu.. misal logo produk), semi brick, bahkan brick (rusak total). Pada beberapa perangkat yang sudah melalui OTA (Over The Air) Update ke versi OS yang terbaru biasanya lebih skar di root. Perangkat Anda harus di flashing ke versi software yang lebih lawas, yang root-able. Selain itu, ada beberapa perangkat yang harus melakukan flashing ketika meng-unlock bootloader (supaya bisa di root). Anda harus berhari hati ketika proses flashing berjalan. Pastikan proses tersebut tidak terinterupsi. Perhatikan baterai perangkat harus diatas 70%, konekkan ke charger dan jika proses menggunakan PC, pastikan PC memiliki UPS atau menggunakan laptop yang ber-baterai.

5. Un-Root

Seperti yang sudah disebutkan di awal bahwa aksi rooting me-revoke garansi. Apabila perangkat anda mengalami kerusakan, ada kemungkinan service center tidak mau menerima jika diketahui perangkat tersebut sudah di root. Ada berbagai cara untuk menghilangkan root. Namun sekali lagi, cara-cara tersebut juga bergantung pada setiap perangkat. Ada yang bisa meng-unroot dengan tools, ada yang harus manual menggunakan ADB Shell. Cara paling mudah dan biasanya dipakai ketika mau menservice perangkat adalah flashing ke STOCK ROM (Rom bawaan waktu beli pertamakali). Setiap pengembang perangkat biasanya menyediakan stock rom untuk masing masing perangkat di websitenya. Anda tinggal apply update dan perangkat Anda akan di flashing ke kondisi awal sebelum memiliki akses root.

Akses root juga bisa hilang apabila Anda melakukan update OTA (Over The Air) update.

6. Kesimpulan 

Salah satu ke'asyikan' dari memiliki perangkat android adalah ke oprek-able an nya. Anda dapat mengoptimalisasi perangkat Anda sehingga memiliki performa yang lebih tinggi bahkan menyamai performa perangkat yang memiliki spesifikasi hardware lebih mahal. Sebagai contoh, tablet Acer Iconia A500 saya, yang merupakan tablet dual core generasi pertama yang seharusnya memiliki skor benchmark (Quadrant) sekitar 2000an, setelah menggunakan custom rom Flexreaper Rev 7, overclock ke 1,5GHZ dan segala optimalisasinya dapat menembus angka benchmark 3700. Berada diatas Samsung Galaxy Tab 10.1.