android rom geliştirme

20
Android Rom Geliştirme Muharrem Taç M2 Bilişim - Gelecekonline

Upload: muharrem-tac

Post on 06-May-2015

8.470 views

Category:

Education


4 download

DESCRIPTION

19 Aralık Bahçeşehir Üniversitesi'nde sunduğum ROM Geliştirme Semineri'nin sunumu.

TRANSCRIPT

  • 1.Android Rom Gelitirme Muharrem Ta M2 Biliim - Gelecekonline

2. Akademik almalar, Farkl uygulamalar ieren derlemeler, Deneysel almalar, zellemi datmlar, Kurumsal zmler, Neden ROM Gelitirme? 3.

  • AOSP Android Open Source Project nedir?
  • ROM, Firmware,letim sistemi nedir?
  • Android kaynak kodlarn derleme
  • BirROMDerleyip Cihaza Ykleme
  • Cus t omROM'lar
  • Cyanogenmod
  • MoDaCo
  • MIUI
  • DierROM'lar
  • HTC'nin kaynak kod deposu

4. Android iletim sisteminin depolara (repositories) gnderilen kodlar, aralar, dkmanlarndan oluur, Android 4.0.3 dahil bu zamana kadarki tm Android kaynak kodlar, Android SDK Kaynak kodlar, Eclipse plugin (ADT) kodlar, Dkmantasyon, Googlen kard cihazlarn 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.orgdu) Kullanlan versiyonlama sistemi: git rnek bir indirme: git clone URL Bunun yannda github'da ok sayda Android Custom ROM kodlar bulunmaktadr, AOSP (Android Open Souce Project) nedir 6. ROM , Read Only Memorynin ksaltmasdr ama konumuz bu ROM deil. Aslnda Android cihazla birlikte gelen ROMun bir snapshotundan bahsediyoruz. Firmware , donanmlarn en alt seviye yazlmdr. Bir bilgisayarn ierisinde bile her bir donanmn firmwarei olabilir. Harddisk, DVD firmwareleri gibi lkemizde firmware yerine ROM kelimesi yaygnlat ama dorusu firmwaredir. Android letim Sistemiise eitli ilemlerle bir Firmware olarak derlenebilecei gibi bir bilgisayar iletim sistemi olarak da derlenebilir. ROM, Firmware,letim sistemi nedir? 7. ROM, Firmware,letim sistemi nedir? Cihaz disk balama noktalar /boot Bootloader, kernel /recovery Android recovery, clockwork, amon ra /system Android OS, Sense UI, boot animation /cache /data Kullanc uygulamalar, veriler, ayarlar 8. ROM derleme Gelitirme bilgisayarn hazrla (Git, Java, gibi yklemeler) Kaynak kodu indir Kaynak kodu derle Cihaz hazrla (unlock etme, fastboot modda ama..) Derlenen ROMu cihaza ykle 9. Gelitirme bilgisayarnda ykl miktarda RAM ve ilemci ekirdei olmal, 64 bit Ubuntu 10.04 olmal. Oracle (Sun) Java ykl olmal. Open JDK ve dier Java'lar olmaz!!! Git adl versiyonlama sistemi yklenmeli, Python yklenmeli, Gerekli derleme paketleri yklenmeli, Cihazlar iin USB ayarlamas yaplmal, http://source.android.com/source/initializing.html Gelitirme bilgisayarn hazrlama 10. repo scripti iin bin dizini oluturulup PATH'e eklenir $ mkdir ~/bin $ PATH=~/bin:$PATH repo scripti ekilir, altrma yetkisi verilir: $ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo $ chmod a+x ~/bin/repo ndirilecek kodlar iin bir dizin oluturulur $ mkdir ICS_SOURCE$ cd ICS_SOURCE repo scripti ile git ortam hazrlanr $ 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 balamas iin nihayi komut verilir $ repo sync Bu indirme ilemi ok uzun srer beklemek gerekiyor. lem sonunda Android'in 4.0.3 versiyonun tm kodlar ICS_SOURCE dizinine inecektir. http://source.android.com/source/downloading.html Kaynak kodunu indirme 11. ndirme ilemi tamamlandktan sonra ortamn set edilmesi iin gereken envsetup.sh scriptini altrmak gerekiyor. $ source build/envsetup.sh Veya $ . build/envsetup.sh Derleme (building) 12. Daha sonra bir ykleme listesi kmas iin lunch komutu veriyoruz $ lunch Derleme (building) 13. Burada hangi cihaz iin derleme yapmak istediimizi seiyoruz. $ Which would you like? [full-eng] 7Derleme (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) Cihazlarn kod adlar 15. Cihaza zel derleme yapmak iin nce cihaz iin gereken ak kodlu olmayan tescilli binary (proprietary binaries) dosyalarn indirmek gerekiyor. Bu dosyalar aslnda cihazlarn driverlarn ieren birer scripttir ve altrldklarnda vendor dizininde klasrler olutururlar. Bu binaries dosyalar olmadan cihaza zel yklemede donanmlar almayacaktr. Tm Android cihazlar iin bu dosyalar bulunmuyor Android gelitirme cihazlar iin Google tarafndan yaynlanmtr. ndirme adresi: http://code.google.com/intl/tr/android/nexus/drivers.htmlCihaz iin uygun tgz uzantl dosyalar karlp altrlnca artk cihaza zel derleme yaplabilir. Buradaki 8 derleme yaplan bilgisayarn ilemci saysna gre artabilir $ make -j8 Dikkat bu ilem uzun srebilir. 8 Core 12 GB RAM'lk makinede 1 saat srmtr. Cihaza zel derleme 16. Android cihazlarn eitli reticileri eitli ama ekilleri dzenlemitir. fastboot modda ama bootloader modda ama recovery modda ama gibi Bu genelde ses dmesi ile g dmesine ayn anda baslmas ile mmkndr. Cihazlar USB ile gelitirme ortamna baladmzda fastboot modda komut gnderebilmek iin Android SDK'nn indirilmi olmas gerekiyor. Andoid SDK ierisinde fastboot, adb ve ddms gibi nemli aralar bulunmaktadr. Cihazlara fastboot modda ilem yapabilmek iin nce OEM kilidini amak gerekiyor. Bu kilit ama ilemi de cihazdan cihaza farkl olabilir. Nexus S'in kilit ama ilemi: $ fastboot oem unlock Cihaza ykleme 17. Cihaz bu modda alr ve aaodaki komutlar gnderilir: Mevcut sistemi tamamen silmek iin$ fastboot erase cache $ fastboot erase userdata Derlenen sistem imajlarnn bulunduu dizini bildirmek : export ANDROID_PRODUCT_OUT=out/target/product/crespo $ fastboot flashall Bu komutla birilikte yeni sistem hazrdr. Dikkat : bu yeni sistemin iinde Google Uygulamalar yoktur. Cihaza ykleme 18. Cyanogenmod Custom ROM'lar 19. MIUI Custom ROM'lar 20. MoDaCo, Darky, Villain, Ve tm irket ROMlar, Touchwiz, Sense UI... Custom ROM'lar