Copy Paste dari OS Hybrid Blackberry Buang Waktu dan Sia-sia :)
Menarik untuk di diskusikan dari pakarnya?
Karena jadi bahan diskusi di berbagai tempat, saya tambahkan FAQ di bagian akhir, supaya orang yang kurang mengerti teknis bisa mengikuti. Saya baru balas sekarang, karena anak pertama saya baru lahir (lihat posting mengenai Jonathan mengenai beritanya). Baca juga komentar saya atas komentar orang lain, sebelum Anda membuat komentar baru.
Salah satu hal yang menarik bagi saya di komunitas BB adalah adanya OS Hybrid. OS Blackberry terdiri atas banyak modul, dan OS Hybrid ini adalah gabungan modul-modul dari berbagai versi OS. Teorinya katanya begini: di OS versi X browsingnya cepat, tapi memorinya boros, di OS versi Y memorinya hemat tapi browsingnya lambat, nah untuk mendapatkan hasil terbaik, modul-modul kedua OS tersebut digabung, supaya browsingnya cepat dan memorinya hemat.
Sebagai programmer, hal yang terpikir oleh saya adalah: bagaimana caranya orang-orang ini tahu modul mana yang harus dipilih? Jangan-jangan mereka hanya ngasal saja. Berdasarkan penyeledikan saya, kesimpulan yang saya dapatkan adalah: ya mereka cuma ngasal saja. Atau boleh dibilang 99% Hybrid sebenarnya tidak perlu (akan saya jelaskan yang 1% itu di bagian akhir).
Kenapa “menuduh” demikian? Saya tidak menuduh, saya menggunakan metode ilmiah untuk membuktikannya. Mengapa saya menghabiskan waktu cukup banyak (beberapa jam) untuk menyelediki hal ini? pertama saya penasaran, kenapa ada banyak sekali hybrid, dan nasihatnya kebanyakan sama: “dicoba aja dulu”, dan “cari yang mana yang cocok”. Kalau memang OS hybrid tersebut bagus, seharusnya akan berjalan dengan baik di semua handset (yang hardwarenya sama persis). Jadi saya kemudian mulai meragukan OS hybrid, dan ingin membuktikan bahwa OS hybrid ini adalah hal yang sia-sia. Siapa tahu tulisan saya ini bisa membujuk banyak orang agar menghemat bandwidth (tidak mendownload OS hybrid), dan menghemat waktu (instalasi dan boot Blackberry butuh waktu lama).
Pertama perlu diketahui bahwa setiap versi OS Blackberry, terdiri atas dua bagian penting, bagian pertama adalah firmware (disebut juga file radio). Firmware ini hanya berupa satu file. Dan bagian kedua adalah file module Java (.cod), ada banyak modul (banyak file .cod) dalam sebuah paket OS.
Isi file firmware adalah yang paling penting, di situlah JVM (Java Virtual Machine) dan segala driver hardware (termasuk driver GSM, driver kamera). Di OS 6, komponen terpenting browser (rendering engine) juga berada di firmware. Firmware ini ditulis dalam bahasa C, dan dikompilasi untuk target ARM. Beberapa komponen yang membutuhkan kecepatan tinggi juga ditulis dalam C (seperti misalnya Video decoder/encoder, lalu SQL engine yang menggunakan SQLite). Saat ini belum ada yang bisa memodifikasi file firmware ini, karena file ini ditandatangani secara digital oleh RIM, dan belum ada yang bisa (atau mau meluangkan waktu) untuk mencari kelemahan bootloadernya. Yang dilakukan oleh para pembuat Hybrid hanyalah memakai firmware versi sebelumnya atau sesudahnya (jadi mereka tidak bisa memodifikasi file ini).
Bagian yang disusun oleh para pembuat hibrid adalah file-file/modul .cod. File dari berbagai OS bisa dicampur menjadi satu, dan inilah yang disebarkan. Klaim dari para pembuat hibrid biasanya adalah: pemakaian memori lebih sedikit, lebih stabil, dan batere akan tahan lebih lama. Kadang ada juga klaim kamera akan lebih baik gambarnya.
Secara teori beberapa hal bisa diatur dari file cod milik sistem. Misalnya di engineering screen (escreen), kita bisa mengubah beberapa parameter firmware. Tapi hasil penyelidikan saya menunjukkan bahwa nilai yang digunakan adalah selalu nilai default dari firmware, dan tidak ada ada modul RIM yang mengubah-ubah parameter GPS, kamera, atau signal radio GSM/GPRS/3G/CDMA. Jadi secara praktis: menukar COD dari satu versi OS ke versi yang lain tidak akan mempengaruhi kinerja GPS, signal, atau kamera.
Lalu bagaimana membuktikan bahwa OS hybrid itu kebanyakan hanya ngawur saja? Lalu apa penjelasannya yang setelah memakai hybrid, pemakaian memorinya turun atau baterenya bisa bertahan lebih lama?. Pertama saya jelaskan dulu pembuktiannya, lalu saya akan mencoba menjawab pertanyaan mengapa hybrid tampaknya “berhasil”.
Logika pembuktiannya sederhana:
Coba download OS asli, coba download OS hybrid. Bandingkan versi modulnya
Untuk versi modul yang berbeda, bandingkan isinya, benarkah modul pengganti lebih baik dari modul yang ada di OS aslinya. Jika sama saja atau lebih jelek, berarti mereka hanya asal saja mencampur versi.
Pertama saya download beberapa OS asli, dan beberapa OS hybrid (saya pilih beberapa OS hybrid yang paling terkenal, tidak perlu saya sebutkan namanya). Untungnya di Thailand sini internet sangat cepat (saya memiliki ADSL 8mbps), jadi proses download tidak memakan banyak waktu. Kemudian saya menggunakan program buatan saya untuk melihat versi modul dari semua file .cod yang ada di OS asli (yang menjadi base untuk hybrid), dan versi hybrid. Kemudian saya bisa membuat tabel perbedaan antara versi yang ada di OS asli dan versi yang ada di OS hybrid.
Berikut ini cuplikan kira-kira output program pembanding versi, versi di kiri adalah dari OS asli, dan kanan adalah dari OS hyhrid. Perhatikan bahwa di sebelah kiri versi modul semuanya sama (dalam hal ini 822) dan di sebelah kanan versi modulnya berbeda (ada yang 938, ada yang 977).
net_rim_cldc_srp_diagnostics 5.0.0.822 5.0.0.938
net_rim_bb_smime 5.0.0.822 5.0.0.977
net_rim_bb_videorecorder 5.0.0.822 5.0.0.938
net_rim_services_impl 5.0.0.822 5.0.0.938[ for Wii yang saya buat).
Q: Anda bilang para hybrider itu ngasal, berarti asal campur bisa jalan dong?
A: Saya tidak menyatakan asal campur bisa jalan. Tapi lebih ke asal campur yang penting jalan. Jadi ada banyak modul yang isinya memang masih sama, dicampur-campur supaya seolah-olah mix dari berbagai versi (padahal isinya itu-itu juga).
Coba tanyakan pada para “hybrid master” apa fungsi dan kegunaan masing-masing file modul .cod, dan saya berani taruhan saya bisa memberikan deskripsi yang lebih akurat untuk masing-masing modul (catatan: taruhannya jangan recehan ya), termasuk jika ada hidden menu yang tidak terdokumentasi.
Pikirkan ini: kalau mereka tidak bisa mendeskripsikan kegunaan sebuah modul, bagaimana mereka akan menyusun OS yang lebih baik?
Q: Selain COD dan SFI kan ada file ALX, kenapa tidak dibahas?
A: File ALX hanya digunakan di sisi desktop untuk loading, tidak dibutuhkan dari sisi OS blackberry.
Q: Anda cuma programmer, tidak mengerti hardware, ya kan?
A: Saya mengerti hardware sampai soldering sampai membuat device driver, contohnya: saya memodifikasi router saya sendiri. Saya membuat driver hardware sendiri ketika porting kernel FreeBSD.
Q: Anda mau bikin OS Hybrid tapi gagal ya?
A: Anda ngawur, ngapain iseng bikin hybrid? Apalagi kalo ada yang nuduh programmer iri pada hybrider. Programmer bisa membuat program baru, dengan hak cipta miliknya, hybrider hanya bisa menyusun dan menyebarkan modul-modul hak cipta RIM (illegal).
Q: Anda bilang OS Hybrid illegal, mengapa?
A: Karena melanggar BLACKBERRY END USER / SOFTWARE LICENSE AGREEMENT.
No 7. Software License
…You may not print, copy, reproduce, distribute, modify or in any other manner duplicate the Software, in whole or in part.
Dan definisi “software” menurut EULA adalah:
“Software” shall mean the RIM software product(s) provided under this license to You for use in conjunction with the BlackBerry Handheld Product including any such BlackBerry Desktop Software, and RIM proprietary software products, firmware and data residing on the BlackBerry Handheld Product at the time of purchase.
Sebagai catatan: saya cukup memperhatikan masalah legalitas software. Saya pernah mewakili Indonesia di Asia Open Source Symposium di Singapore, Vietnam, dan Taiwan (dan menjadi panitia codefest untuk AOSSS di Bali).
Q: Secara teori, bisa gak bikin hybrid yang “bener”
A: Secara teori kita bisa membuat hybrid yang benar jika kita mau mendisassemble tiap modul yang dirilis dan membandingkannya. Ini ibaratnya seperti mentrack file patch kernel Linux. Kernel Linux dalam satu hal lebih sederhana: sourcenya terbuka, bisa dibaca dengan komentar. Sekarang coba tanyakan ke kanan kiri Anda, ke orang yang Anda anggap hacker, atau programmer, berapa banyak yang mengenal kernel Linux. Berapa banyak yang sudah melakukan porting kernel. Berapa banyak yang mengikuti dengan tepat apa saja perubahan di kernel Linux. Nah sekarang berapa banyak yang bisa melakukannya jika source codenya tanpa komentar?, lalu berikutnya lagi: bagaimana jika tidak ada sourcenya? hanya binarynya saja.
Q: Anda bilang beberapa modul isinya sama persis, hanya nomor versinya berbeda, apakah beneran isinya sama persis, jangan-jangan mereka mengubah sesuatu sehingga nomor versinya ditambah.
A: tidak ada yang berubah, sama persis. Jika saya katakan sama persis, berarti hanya nomor versi kode yang berubah
Q: mengapa Anda tidak membuat sendiri OS Hybrid?
A:
Meskipun kalau saya mau, saya bisa membuat OS Hybrid, ada banyak alasan mengapa saya memilih untuk tidak melakukannya:
Pertama: legalitas, mengapa saya melakukan sesuatu yang legalitasnya diragukan. Saya punya banyak proyek lain yang lebih legal (lihat berbagai aplikasi buatan saya di http://yohan.es/applications).
Kedua: pihak RIM akan terus membuat OS baru. Meracik hybrid tiap kali ada os baru akan memakan banyak waktu. Untuk handheld lama dan OS-nya tidak diupdate lagi oleh RIM, jumlah penggunanya sudah sedikit, jadi saya juga malas menghabiskan waktu untuk hardware yang terlalu lama.
Ketiga: ada banyak hardware BB. Hardware biasanya cepat kadaluarsa (berapa banyak orang yang masih memakai hardware elektronik lama yang usianya 5 atau 10 tahun?)
Keempat: saya punya banyak project lain yang lebih serius. Lebih tahan lama, lebih legal, dan lebih berguna untuk banyak orang. Beberapa contohnya adalah: porting kernel FreeBSD (sebagai informasi: kernel OS X adalah perkawinan kernel Mach dan FreeBSD). Banyak kode dalam FreeBSD sudah lebih tua dari Linux (karena turunan dari BSD, nama FreeBSD sendiri baru tahun 1993 sedang Linux tahun 1991, terima kasih untuk ryosaeba untuk koreksi detailnya) dan kontribusi saya akan “lebih abadi“ dibanding OS hybrid yang 1-2 tahun sudah kadaluarsa (atau bahkan dalam minggu/bulan jika ada OS baru dirilis RIM).
Saya juga punya proyek pembaca Alkitab yang membutuhkan banyak perhatian (saya tidak hanya membuat versi BB saja).
So yang masih mau berhybrid silakan saja. Tapi coba pelajari dengan benar, secara ilmiah, apa sih yang menyebabkan hybrid Anda berjalan lebih baik (jika menurut Anda berjalan lebih baik).
Silakan berkomentar, berdiskusi dan berkreasi. Semoga banyak orang makin mau belajar internal blackberry, bukan sekedar campur-campur modul saja.
Kemungkinan saya tidak akan membalas isi blog/komentar untuk waktu yang cukup lama. Saya ingin bermain dengan anak saya, selain itu masih punya banyak karya yang harus saya kerjakan dan tentunya saya masih harus melakukan pekerjaan kantoran yang full time. Tapi saya usahakan jika ada waktu akan saya balas, komentar teknis akan saya utamakan, jangan pakai argumen dengan fallacy, karena artinya Anda orang yang gak kenal logika yang benar, jadi malas menjawab orang yang seperti itu.
Saya sendiri heran, banyak banget ya orang yang meributkan posting ini. Dan masih terus lanjut di forum lain, jadi akan saya kutip tulisan yang logis dari user arkent di kaskus:
Lagian dia tulis di blog dia.ngapain disini yang repot…ah balik ngehybrid tour ane aja dah…
Gw baca dari awal…menyimak n kesimpulannya bodo amat omongan di blognya, laen soal kalo dia posting disini.blog2 orang ya rumah orang.yang salah ts nya cuman copas.yang pnting gw nyaman make bb gw.ttkhbs