Akademik çalışmalar, Farklıuygulamalar içeren derlemeler, Deneysel çalışmalar, Özelleşmiş dağıtımlar, Kurumsal çözümler, Neden ROM Geliştirme?
3.
AOSP Android OpenSource Project nedir? ROM, Firmware, İşletim sistemi nedir? Android kaynak kodlarını derleme Bir ROM Derleyip Cihaza Yükleme Cus t om ROM'lar Cyanogenmod MoDaCo MIUI Diğer ROM'lar HTC'nin kaynak kod deposu
4.
Android işletim sisteminindepolara (repositories) gönderilen kodlar, araçlar, dökümanlarından oluşur, Android 4.0.3 dahil bu zamana kadarki tüm Android kaynak kodları, Android SDK Kaynak kodları, Eclipse plugin (ADT) kodları, Dökümantasyon, Google’ın çıkardığı cihazların tescilli binary dosyaları (p roprietary binaries ) AOSP (Android Open Souce Project) nedir
5.
Bilgi adresi :http://source.android.com İndirme adresi : https://android.googlesource.com (önceden android.kernel.org’du) Kullanılan versiyonlama sistemi: git Örnek bir indirme: git clone URL Bunun yanında github'da çok sayıda Android Custom ROM kodları bulunmaktadır, AOSP (Android Open Souce Project) nedir
6.
ROM , ReadOnly Memory’nin kısaltmasıdır ama konumuz bu ROM değil. Aslında Android cihazla birlikte gelen ROM’un bir snapshot’undan bahsediyoruz. Firmware , donanımların en alt seviye yazılımıdır. Bir bilgisayarın içerisinde bile her bir donanımın firmware’i olabilir. Harddisk, DVD firmware’leri gibi… Ülkemizde «firmware» yerine «ROM» kelimesi yaygınlaştı ama doğrusu firmware’dir. Android İşletim Sistemi ise çeşitli işlemlerle bir Firmware olarak derlenebileceği gibi bir bilgisayar işletim sistemi olarak da derlenebilir. ROM, Firmware, İşletim sistemi nedir?
7.
ROM, Firmware, İşletim sistemi nedir? Cihaz disk bağlama noktaları /boot Bootloader, kernel /recovery Android recovery, clockwork, amon ra /system Android OS, Sense UI, boot animation /cache /data Kullanıcı uygulamaları, veriler, ayarlar
8.
ROM derleme Geliştirmebilgisayarını hazırla (Git, Java, gibi yüklemeler) Kaynak kodu indir Kaynak kodu derle Cihazı hazırla (unlock etme, fastboot modda açma..) Derlenen ROM’u cihaza yükle
9.
Geliştirme bilgisayarında yüklümiktarda RAM ve işlemci çekirdeği olmalı, 64 bit Ubuntu 10.04 olmalı. Oracle (Sun) Java yüklü olmalı. Open JDK ve diğer Java'lar olmaz!!! Git adlı versiyonlama sistemi yüklenmeli, Python yüklenmeli, Gerekli derleme paketleri yüklenmeli, Cihazlar için USB ayarlaması yapılmalı, http://source.android.com/source/initializing.html Geliştirme bilgisayarını hazırlama
10.
repo scripti içinbin dizini oluşturulup PATH'e eklenir $ mkdir ~/bin $ PATH=~/bin:$PATH repo scripti çekilir, çalıştırma yetkisi verilir: $ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo $ chmod a+x ~/bin/repo İndirilecek kodlar için bir dizin oluşturulur $ mkdir ICS_SOURCE $ cd ICS_SOURCE repo scripti ile git ortamı hazırlanır $ repo init -u https://android.googlesource.com/platform/manifest Veya hangi branch çekilecekse -b parametresiyle branch adı verilir (http://source.android.com/source/build-numbers.html) $ repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.3_r1 Ve indirmenin başlaması için nihayi komut verilir $ repo sync Bu indirme işlemi çok uzun sürer beklemek gerekiyor. İşlem sonunda Android'in 4.0.3 versiyonun tüm kodları ICS_SOURCE dizinine inecektir. http://source.android.com/source/downloading.html Kaynak kodunu indirme
11.
İndirme işlemi tamamlandıktansonra ortamın set edilmesi için gereken envsetup.sh scriptini çalıştırmak gerekiyor. $ source build/envsetup.sh Veya $ . build/envsetup.sh Derleme (building)
12.
Daha sonra biryükleme listesi çıkması için lunch komutu veriyoruz $ lunch Derleme (building)
13.
Burada hangi cihaziçin derleme yapmak istediğimizi seçiyoruz. $ Which would you like? [full-eng] 7 Derleme (building)
14.
Galaxy Nexus GSM/HSPA+: maguro Galaxy Nexus CDMA/LTE : toro Nexus S : crespo Nexus S 4G : crespo4g Xoom (Wifi) : wingray Xoom (CDMA/LTE) : stingray Nexus One : passion Android Developer Phone 1: dream Android Developer Phone 2: sapphire http://source.android.com/source/build-numbers.html Derleme (building) Cihazların kod adları
15.
Cihaza özel derlemeyapmak için önce cihaz için gereken açık kodlu olmayan tescilli binary (proprietary binaries) dosyalarını indirmek gerekiyor. Bu dosyalar aslında cihazların driverlarını içeren birer scripttir ve çalıştırıldıklarında vendor dizininde klasörler oluştururlar. Bu binaries dosyaları olmadan cihaza özel yüklemede donanımlar çalışmayacaktır. Tüm Android cihazlar için bu dosyalar bulunmuyor Android geliştirme cihazları için Google tarafından yayınlanmıştır. İndirme adresi: http://code.google.com/intl/tr/android/nexus/drivers.html Cihaz için uygun tgz uzantılı dosyalar çıkarılıp çalıştırılınca artık cihaza özel derleme yapılabilir. Buradaki 8 derleme yapılan bilgisayarın işlemci sayısına göre artabilir $ make -j8 Dikkat bu işlem uzun sürebilir. 8 Core 12 GB RAM'lık makinede 1 saat sürmüştür. Cihaza özel derleme
16.
Android cihazların çeşitliüreticileri çeşitli açma şekilleri düzenlemiştir. fastboot modda açma bootloader modda açma recovery modda açma gibi Bu genelde ses düğmesi ile güç düğmesine aynı anda basılması ile mümkündür. Cihazları USB ile geliştirme ortamına bağladığımızda fastboot modda komut gönderebilmek için Android SDK'nın indirilmiş olması gerekiyor. Andoid SDK içerisinde fastboot, adb ve ddms gibi önemli araçlar bulunmaktadır. Cihazlara fastboot modda işlem yapabilmek için önce OEM kilidini açmak gerekiyor. Bu kilit açma işlemi de cihazdan cihaza farklı olabilir. Nexus S'in kilit açma işlemi: $ fastboot oem unlock Cihaza yükleme
17.
Cihaz bu moddaaçılır ve aşağodaki komutlar gönderilir: Mevcut sistemi tamamen silmek için $ fastboot erase cache $ fastboot erase userdata Derlenen sistem imajlarının bulunduğu dizini bildirmek : export ANDROID_PRODUCT_OUT=out/target/product/crespo $ fastboot flashall Bu komutla birilikte yeni sistem hazırdır. Dikkat : bu yeni sistemin içinde Google Uygulamaları yoktur. Cihaza yükleme