|
- Öncelikle repository’e erişmek için gerekli kurulumları yapacağız.
- Android Opensource işletim sistemini bilgisayarımıza indireceğiz.
- Kaynak kodlarda istediğimiz değişiklikleri yapacağız.
- İşletim sistemini derleyerek kendi custom ROM’umuzu oluşturacağız.
- ROM’u telefonumuz yükleyeceğiz.
Gerekli Paketler
- Git 1.5.4 veya daha yüksek sürümü
- JDK 5.0, update 12 veya üstü. Java 6 desteklenmiyor.
- flex, bison, gperf, libsdl-dev, libesd0-dev, libwxgtk2.6-dev (optional), build-essential, zip, curl.
- valgrind
$ sudo apt-get install git-core gnupg sun-java5-jdk flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev
$ sudo apt-get install valgrind
Not: Ubuntu 9.10′da sun-java6-jdk ön tanımlıdır. Bu sürüm desteklenmediği için sun-java5-jdk kurduk ancak bunu default jdk yapmak için aşağıdaki komutu çalıştırmalıyız:$ sudo update-java-alternatives -s java-1.5.0-sun
Not2: sun-java5-jdk kurulumunda paket bulunamadı hatasıyla karşılaşırsanız aşağıdaki repo’ları eklemeniz gerekebilir:$ deb http://us.archive.ubuntu.com/ubuntu/ jaunty multiverse
$ deb http://us.archive.ubuntu.com/ubuntu/ jaunty-updates multiverse
Repo Tanımlama ve İndirme
Android Git versiyon kontrol sistemini kullanır, bu nedenle repo tanımlayıp kodu checkout edeceğiz.Öncelikle repo scripti indirilir:
$ cd ~
$ mkdir bin
$ echo $PATH
$ curl http://android.git.kernel.org/repo >~/bin/repo
$ chmod a+x ~/bin/repo
Proje için dizin yaratılır ve repo, Android’in repodaki son sürümü için initialize edilir, şu anda son sürüm olarak eclair bulunmakta yani 2.0 sürümü :) dizinin adını istediğiniz gibi verebilirsiniz.$ mkdir mydroid
$ cd mydroid
$ repo init -u git://android.git.kernel.org/platform/manifest.git
Eğer özellikle belli bir Android sürümünü indirmek istiyorsanız mesela donut (1.6) için komut şöyle olmalı:$ repo init -u git://android.git.kernel.org/platform/manifest.git -b donut
cupcake (1.5) için:$ repo init -u git://android.git.kernel.org/platform/manifest.git -b cupcake
Ben son sürüm için çalıştırdım ve 2.0′ın kaynak kodlarını indirdim, yazının devamı 2.0 için geçerlidir.initialize işlemi esnasında isim ve email adresi isteyecek, biz checkin yapmayacağımız için çok önemli değil :)
İşem başarı ile bittiyse aşağıdaki mesajı görmeliyiz.
repo initialized in /mydroid
Ve son adım! Burası uzun sürecek, makinamızdaki repo ile sunucu tarafı sync edilecek yani tüm kaynak kodları indirmeye başlıyoruz:$ repo sync
Customization
Sync işlemi bittiğinde, Android kaynak kodları arasında gezintiye çıkmak için önümüzde hiç bir engel kalmadı. Bundan sonrası size kalıyor ama emin olun keşfetmek ilginç bir deneyim olacak. Ben bir kaç tane ufak ipucu vereyim:Programların kaynak kodları burada (Launcher,Phone,Calendar,Contacts,Settings vb..):
mydroid/packages/apps/
ROM’u ilk kurduğunuzda gelen ön tanımlı duvar kağıdı aşağıda, ismini değiştirmeden kendi duvar kağıdınızı koyabilirsiniz:~/mydroid/frameworks/base/core/res/res/drawable/default-wallpaper.jpg
Telefon açılırken ekrana gelen splash screen resimleri burada:~/mydroid/frameworks/base/core/res/assets/images/
Lockscreen ROM’un içine gömülmüş, burada bazı hassas işler yapıldığı için apps altında yer almıyor, çünkü apps altındaki tüm uygulamalar sonradan silinebiliyor ya da bir başkası ile replace edilebiliyor. Yeri:~/mydroid/frameworks/policies/base/phone/com/android/internal/policy/impl/LockScreen.java
Lockscreen resource dosyaları:~/mydroid/frameworks/base/core/res/res
Derleme
Eğer uygulamalardan birinde değişiklik yaptıysanız sadece onu derleyip cihazınıza kurabilirsiniz. Örneğin Launcher programında değişiklik yaptınız, derlemek aşağıdaki make komutunu kullanıyoruz:$ make Launcher
Uygulama derlenerek şu path’e yazılıyor~/mydroid/out/target/product/generic/system/app/Launcher.apk
İşletim sisteminin tamamını derlemek için aşağıdaki adımları takip etmek gerekiyor. Eğer bir G1 developer phone sahibi iseniz bu ROM’u telefonunuza yükleyebilirsiniz.- HTC’nin sitesinden recover image indirilir ve ~/mydroid klasörüne kopyalanır: http://developer.htc.com/adp.html
- HTC’nin sitesinden HTC Proprietary Binaries for ADP1 indirilir: http://developer.htc.com
- Proprietary binary ~/mydroid/vendor/htc/dream-open/ altına kopyalanır ve açılır sonra bu dizinde çalıştırılır.
- ~/mydroid/vendor/htc/dream-open/ altında unzip-files.sh çalıştırılır.
- ~/mydroid altında . build/envsetup.sh çalıştırılır.
- ~/mydroid altında lunch aosp_dream_us-eng çalıştırılır.
- ~/mydroid altında make -j4 çalıştırılır.
Not: Daha önce build yaptıysak tekrar yapacaksak export USE_CCACHE=1 komutu işi hızlandırır, tertemiz bir build yapacaksan önce m clean diyoruz sonra make diyoruz.
Not2: packages altındaki uygulamaları eclipse ile açtıysak R.java ve Manifest.java dosyalarını silmeden make yapamıyoruz.
Yükleme
- cihaz usb’ye bağlanır
- Ubuntu’da root’a geçilir
$ sudo su #
out/host/linux-x86/bin/adb kill-server
out/host/linux-x86/bin/adb devices
export ANDROID_PRODUCT_OUT=out/target/product/dream-open
out/host/linux-x86/bin/fastboot -w flashall
out/host/linux-x86/bin/adb install out/target/product/generic/system/app/Launcher.apkAndroid’in açık kaynak kodlu olması sayesinde biraz linux ve java bilgisi ile evde kendi işletim sisteminizi yapmanız mümkün olabiliyor, zaten şimdiye kadar bir çok customize edilmiş Android işletim sistemli telefon gördük,duyduk. Bir kaç örnek vermek gerekirse:
- Google, kendi servislerini ve Market’i ekledi
- HTC, Hero ile UI konusunda başarılı bir hamle yaptı
- Motorola, DROID ile sosyal networklerle entegre oldu ve çok tutudu
- Sadece büyük firmalar değil bağımsız geliştiriciler de kendi ROM’larını yapıp internet üzerinde paylaştılar, en güzel örnek: http://www.cyanogenmod.com/
Hiç yorum yok:
Yorum Gönder