OS Hybrid Blackberry: Usaha yang sia-sia ???
izin copas dari blog tetangga yang menarik perhatian .. yang setuju monggo yang ga setuju monggo … mungkin bisa di jadikan referensi pembekalan masalah blackberry selanjutnya. saya copas tulisan ini dari blog :: http://blog.compactbyte.com/2010/11/03/os-hybrid-blackberry-usaha-yang-sia-sia/
dan banyak komentar yang tidak setuju dengan tesis isi tulisan ini .. mari di baca dulu.. untuk selanjutnya silahkan anda fikirkan kembali.
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
Perlu diketahui bahwa ketika merilis versi OS baru, RIM akan menyamakan semua nomor versi modul, meskipun modul tersebut sama sekali tidak berubah dari versi sebelumnya. Ada beberapa modul yang masih sama persis dari sejak versi 5 pertama hingga versi 6 terbaru. Perubahan ini agak sulit dilihat tanpa tools khusus, karena kadang versinya berbeda, ukuran filenya berbeda, tapi isi programnya masih sama persis.
Logika berikutnya yang saya pakai adalah: jika para pembuat hybrid ini tahu apa yang mereka lakukan, mereka hanya akan mengganti modul-modul yang memang berpengaruh untuk mengoptimasi. Jadi jika base OS-nya 822, lalu modul X tidak berubah sampai versi 900, maka tidak perlu mengganti file versi 822 ini dengan versi 900 (tidak berpengaruh sama sekali). Berikutnya saya punya program untuk mendisassemble isi file .COD, dengan program ini saya bisa melihat dengan tepat perubahan apa yang ada antara versi asli dengan versi pengganti. Ternyata sebagian besar file yang diganti tidak berubah sama sekali isinya (kecuali nomor versinya). Dalam contoh di atas, net_rim_cldc_srp_diagnostics, net_rim_bb_smime, net_rim_bb_videorecorder dan net_rim_services_impl ternyata isinya sama persis di kedua versi tersebut. Beberapa modul lain hanya berubah sedikit sekali, dan tidak akan berpengaruh pada penggunaan memori ataupun kecepatan.
Catatan: maaf program untuk disassemble file ini tidak bisa disebarkan secara legal, karena berdasarkan kode hasil reverse enginerring rapc.jar. Program ini dimungkinan karena saya melihat hasil dari pekerjaan drbolsen dan slawlerguy, saya cukup yakin para cracker aplikasi BB juga punya program semacam ini (itu sebabnya mereka bisa membuat serial number generator). Dengan program tersebut saya bisa melihat isi bytecode dari sebuah file cod. Isi bytecode ini seperti assembly, tapi relatif mudah dipahami. Secara teknis: semua nama package, serta name method dan field yang public dan protected bisa dilihat.
Modul-modul yang memang banyak berubah dari satu versi ke versi lain adalah browser. Di OS sebelum versi 6, rendering dilakukan dalam Java. Di OS versi 6, ini dilakukan dengan menggunakan webkit (dalam C, kodenya di firmware, bukan di file COD lagi). Sebelum versi 6, memang ada beberapa perbaikan browser, dan ini memang kadang berpengaruh dalam kecepatan browsing. Jadi dalam kebanyakan hybrid, bagian ini yang kadang-kadang berpengaruh. Saya katakan kadang-kadang karena perubahan yang dilakukan tidak selalu dalam hal kecepatan, sebagian perubahan adalah dalam hal dukungan terhadap tag HTML tertentu atau CSS tertentu (jadi ada kemungkinan browsing lebih cepat, tapi tampilan situs tertentu jadi kurang bagus atau bahkan tidak tampil). Tapi sejak OS 6, menukar-nukar isi COD tidak akan berpengaruh dalam masalah penggunaan memori ataupun kecepatan.
Nah sekarang kepada jawaban mengapa sebagian orang menyatakan hybrid lebih bagus. Pertama kebanyakan orang akan melakukan shrinking (menghapus modul yang tidak perlu) ketika menggunakan hybrid. Bagian shrinking ini lebih berpengaruh dibanding modul-modul hybrid. Pertama dengan shrinking, space jadi lebih banyak, lalu biasanya program-program yang tidak berguna juga dihapus (yang membuat BB jadi lebih cepat).
Kedua adalah masalah sugesti. Anda tidak akan bisa meyakinkan seseorang yang gila dengan audio atau video (audiophile/videophile) bahwa kabel HDMI 100 USD sama kualitasnya dengan yang 10 USD. Padahal dengan pengukuran digital, signal yang lewat adalah sama persis. Nah dalam bidang hybrid, kecepatan OS juga sulit diukur. Ketahanan batere juga sulit diukur (biasanya hanya dengan program secaram meterberry/bbmeter) karena batere juga dipengaruhi oleh suhu ruangan, dan juga dengan banyaknya aktivitas pada saat itu.
Ketiga adalah: ada kemungkinan memang ada komponen yang lebih baik dari versi lain. Tapi kemungkinan ini sangat kecil, lebih besar kemungkinan modul dari versi lain justru mengakibatkan masalah (ini bisa dilihat bahwa kadang-kadang para pembuat hibryd ini membuat patch karena beberapa fitur tidak jalan, misalnya fitur video). Banyak hybrid yang sangat serupa, karena meski versi modulnya berbeda, tapi ternyata isinya sama saja. Dari hasil penyelidikan saya, kemungkinan komponen yang berpengaruh hanyalah penggantian modul browser. Modul ini kecil sekali (hanya sekitar 2-3 mb) saja. Seharusnya para pembuat hybrid, cukup memberikan modul ini saja, hemat bandwidth.
Hybrid kemungkinan hanya diperlukan jika memang ada bug di versi OS Anda saat ini yang sudah diperbaiki di versi modul berikutnya. Tapi mengetahui bagian mana yang harus diganti tidaklah mudah. Jika Anda beruntung dan tahu bagian mana, maka di situlah OS Hybrid bisa berguna. Jika tidak tahu tepatnya, maka mencoba-coba berbagai hybrid hanya akan buang-buang waktu saja (walaupun ada kemungkinan Anda bisa beruntung dalam coba-coba setelah berkali-kali).
Jadi kesimpulannya adalah: menginstall Hybrid kemungkinan besar tidak akan membuat BB Anda menjadi lebih baik. Menginstall OS terbaru, melakukan shrink, dan menginstall hanya program yang diperlukan akan membuat Blackberry Anda lebih cepat. Anda juga melihat posting saya sebelumnya untuk mengetahui bagaimana menggunakan engineering screen untuk mencari modul atau aplikasi yang memakan banyak memori dan/atau batere.
Sedikit tambahan lagi: sebenarnya penyebaran OS hybrid adalah sesuatu yang illegal menurut License Agreement-nya RIM. Silakan Anda baca sendiri jika tidak percaya. Membuat OS Hybrid untuk dipakai sendiri merupakan hal yang legal, tapi menyebarkan modul-modul yang hak ciptanya dimiliki RIM adalah hal yang illegal.
Catatan Untuk Anda yang mau membantah posting ini, tolong jangan gunakan anecdotal evidence. Contohnya begini: di “BB saya pake hybrid bisa bagus kok”. Argumen ini sama saja dengan “kakek saya merokok kayak kereta api, dia sehat sampai umur 99 tahun kok”. Itu tidak membuktikan bahwa merokok itu bagus. Itu hanyalah satu contoh kebetulan saja, karena sebagian besar orang yang merokok tidak sehat dan mati muda. Bukti Ilmiah haruslah berdasarkan sesuatu yang bisa diukur dan dibuktikan oleh orang lain (klaim tersebut bisa diulangi/dicoba oleh orang lain).
bagian tambahan/respon pada forum-forum
Perlu saya sampaikan bahwa seorang pemula dalam satu hal kadang lebih baik dan lebih mengerti daripada orang-orang yang sudah lama dalam satu bidang. Ketika saya terlibat pelatnas TOKI (Tim Olimpiade Komputer Indonesia), saya melihat sendiri anak SMP yang kemampuan programmingnya lebih dari sebagian besar anak informatika ITB.
Jadi kalo ternyata ada “hybrid master” yang tersinggung, ya silakan saja tersinggung. Dari isi diskusi di kaskus kebanyakan level pengetahuan pada “hybrid master” ini sebenarnya tidak tinggi. Jangankan memprogram dan memahami OS Blackberry (sisi Java), memprogram dan mengkompilasi program Java pun belum tentu bisa. Jadi wajar saja kalo penjelasan teknis saya tidak bisa dipahami oleh mereka. Bahkan si kiplingmerah sampai mengolok-olok nama saya di forum kaskus (kelihatan kan kedewasaan perilakunya, apalagi intelegensinya).
Q: Anda cuma cari sensasi ya?
A: untuk apa? sensasi di mana? Di forum BB? ukuran pengguna BB di dunia ini tidaklah besar (apalagi pengguna Hybrid). Kalau sekedar mencari pemberitaan target saya lebih tinggi, salah satu posting saya di blog lain pernah masuk slashdot (mengenai emulator Apple ][ 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

saya adalah pengguna os hybrid. sblmnya os saya os 6.0.600. stlh pake hybrid dengan base os yang sama hasil membuktikan memory lebih irit dan lebih cepat, dicek dengan aplikasi meterberry.. jd sepertinya argumen anda SALAH BESAR.. os hybrid mengurangi modul2 yang jarang digunakan seperti help pada os official dll. maka akan lebih mengurangi memory dll.. sepertinya anda sebagai programmer cukup sok tau..
kayaknya anda salah pengertian … sehingga anda TIDAK PAHAM kenapa saya men-share tulisan orang ke blog saya ini …
Saya sudah lama meneliti tentang seluk-beluk OS BlackBerry. Saya sudah mendownload berbagai macam OS BlackBerry dari yang resmi sampai yang hybrid. Saya hanya seorang siswa SMA Negeri 1 Cirebon. Saya tidak mengerti banyak, saya cuma ingin memasang file CODs OS6 milik kepler ke gemini saya dengan platform gemini 5.0.0.104 dan saya tidak peduli dengan semua hybriders di berbagai forum. Saya ingin anda bisa membaca dan membuktikan bahwa anda sanggup untuk membuat satu modifikasi OS untuk gemini dipasang OS6. Ini tidak terlihat bodoh karena secara umum memori gemini mampu dipasangkan OS6, dan prosesornya tidak terlalu lemah. Saya menunggu jawaban email dari anda, admin dan para hybriders.