ROM Android: Porting A80A
Dapatkan /system/build.prop
mkdir backup-A80A cd backup-A80A/ adb devices adb pull /system/build.prop
Hasilnya
# begin build properties
# autogenerated by buildinfo.sh
ro.build.id=JDQ39
ro.build.display.id=EVERCOSS_V1.0_0601
ro.build.version.incremental=20140108.173524
ro.custom.build.version=1402409603
ro.build.version.sdk=17
ro.build.version.codename=REL
ro.build.version.release=4.2.2
ro.build.date=2014年 06月 10日 星期二 22:18:31 CST
ro.build.date.utc=1402409911
ro.build.type=user
ro.build.user=yangning
ro.build.innner.version=SW_W99601A4_V004_M10_EVERCOSS
ro.build.host=yubosong-desktop
ro.build.tags=test-keys
ro.product.model=A80A
ro.product.brand=EVERCOSS
ro.product.name=a80a
ro.product.device=a80a
ro.product.board=a80a
ro.product.cpu.abi=armeabi-v7a
ro.product.cpu.abi2=armeabi
ro.product.manufacturer=EVERCOSS
ro.product.locale.language=en
ro.product.locale.region=US
ro.wifi.channels=
ro.board.platform=
ro.build.hardware.version=P1
ro.build.customer=EVERCOSS
# ro.build.product is obsolete; use ro.product.device
ro.build.product=a80a
# Do not try to parse ro.build.description or .fingerprint
ro.build.description=wt99601-user 4.2.2 JDQ39 eng.yangning.1402409603 test-keys
ro.build.fingerprint=EVERCOSS/a80a/a80a:4.2.2/JDQ39/20140108.173524:user/test-keys
ro.build.flavor=
ro.build.characteristics=default
# end build properties
# begin mediatek build properties
ro.mediatek.version.release=SW_W99601A4_V004_M10_EVERCOSS
ro.mediatek.platform=MT6592
ro.mediatek.chip_ver=S01
ro.mediatek.version.branch=ALPS.JB9.MP
ro.mediatek.version.sdk=1
# end mediatek build properties
#
# system.prop for generic sdk
#
rild.libpath=/system/lib/mtk-ril.so
rild.libargs=-d /dev/ttyC0
# MTK, Infinity, 20090720 {
wifi.interface=wlan0
# MTK, Infinity, 20090720 }
# MTK, mtk03034, 20101210 {
ro.mediatek.wlan.wsc=1
# MTK, mtk03034 20101210}
# MTK, mtk03034, 20110318 {
ro.mediatek.wlan.p2p=1
# MTK, mtk03034 20110318}
# MTK, mtk03034, 20101213 {
mediatek.wlan.ctia=0
# MTK, mtk03034 20101213}
#
wifi.tethering.interface=ap0
#
ro.opengles.version=131072
wifi.direct.interface=p2p0
dalvik.vm.heapgrowthlimit=128m
dalvik.vm.heapsize=256m
# USB MTP WHQL
ro.sys.usb.mtp.whql.enable=0
# Power off opt in IPO
sys.ipo.pwrdncap=2
# Switching Menu of Mass storage and MTP
ro.sys.usb.storage.type=mtp,mass_storage
# USB BICR function
ro.sys.usb.bicr=yes
# USB Charge only function
ro.sys.usb.charging.only=yes
# audio
ro.camera.sound.forced=0
ro.audio.silent=0
ro.zygote.preload.enable=0
# temporary enables NAV bar (soft keys)
qemu.hw.mainkeys=1
ro.ota.xml_url=http://update.archos.com/update_archos_gen8_daos.xml
ro.ota.xml_prefix=http://update.archos.com/AFMv1/storage/xml/update_
ro.ota.product_name=a80a
ro.ota.product_device=a80a
ro.ota.firmware_file_basename=update
ro.ota.firmware_file_extension=zip
ro.com.google.clientidbase=android-archos
ro.operator.optr=CUST
#
# ADDITIONAL_BUILD_PROPERTIES
#
persist.gemini.sim_num=2
ro.gemini.smart_sim_switch=false
ro.gemini.smart_3g_switch=0
ril.specific.sm_cause=0
bgw.current3gband=0
ro.build.display.wtid=SW_W99601A4_V004_M10_EVERCOSS
ril.external.md=0
ro.btstack=blueangel
ro.sf.hwrotation=0
ril.current.share_modem=2
launcherplus.allappsgrid=2d
launcher2.allappsgrid=3d_20
curlockscreen=1
ro.mediatek.gemini_support=true
persist.radio.fd.counter=15
persist.radio.fd.off.counter=5
persist.radio.fd.r8.counter=15
persist.radio.fd.off.r8.counter=5
persist.mtk.wcn.combo.chipid=-1
drm.service.enabled=true
fmradio.driver.enable=1
ril.first.md=1
ril.flightmode.poweroffMD=1
ril.telephony.mode=0
dalvik.vm.mtk-stack-trace-file=/data/anr/mtk_traces.txt
persist.mtk.anr.mechanism=1
mediatek.wlan.chip=MTK_CONNSYS_MT6592
mediatek.wlan.module.postfix=_mtk_connsys_mt6592
ril.radiooff.poweroffMD=0
ro.config.notification_sound=Proxima.ogg
ro.config.alarm_alert=Alarm_Classic.ogg
ro.config.ringtone=Backroad.ogg
ter.service.enable=0
persist.sys.display.clearMotion=1
persist.clearMotion.fblevel.nrm=255
persist.clearMotion.fblevel.bdr=255
ro.setupwizard.mode=OPTIONAL
ro.com.google.gmsversion=4.2_r4
net.bt.name=Android
dalvik.vm.stack-trace-file=/data/anr/traces.txt
# begin adupsfota properties
ro.adups.fota.oem=MTK88_92
ro.adups.fota.device=A80A
ro.adups.fota.version=EVERCOSS_V1.0_0601
# begin adupsfota properties
Diperoleh
ro.product.manufacturer=EVERCOSS > vendor evercoss ro.product.device=a80a > codename a80a
Dapatkan partisi
Lakukan
adb pull /proc/dumchar_info
Hasilnya
Part_Name Size StartAddr Type MapTo Region preloader 0x0000000000040000 0x0000000000000000 2 /dev/misc-sd BOOT_1 mbr 0x0000000000080000 0x0000000000000000 2 /dev/block/mmcblk0 USER ebr1 0x0000000000080000 0x0000000000080000 2 /dev/block/mmcblk0p1 USER pro_info 0x0000000000300000 0x0000000000100000 2 /dev/block/mmcblk0 USER nvram 0x0000000000500000 0x0000000000400000 2 /dev/block/mmcblk0 USER protect_f 0x0000000000a00000 0x0000000000900000 2 /dev/block/mmcblk0p2 USER protect_s 0x0000000000a00000 0x0000000001300000 2 /dev/block/mmcblk0p3 USER seccfg 0x0000000000040000 0x0000000001d00000 2 /dev/block/mmcblk0 USER uboot 0x0000000000060000 0x0000000001d40000 2 /dev/block/mmcblk0 USER bootimg 0x0000000000a00000 0x0000000001da0000 2 /dev/block/mmcblk0 USER recovery 0x0000000000a00000 0x00000000027a0000 2 /dev/block/mmcblk0 USER sec_ro 0x0000000000600000 0x00000000031a0000 2 /dev/block/mmcblk0p4 USER misc 0x0000000000080000 0x00000000037a0000 2 /dev/block/mmcblk0 USER logo 0x0000000000800000 0x0000000003820000 2 /dev/block/mmcblk0 USER ebr2 0x0000000000080000 0x0000000004020000 2 /dev/block/mmcblk0 USER expdb 0x0000000000f60000 0x00000000040a0000 2 /dev/block/mmcblk0 USER android 0x0000000032000000 0x0000000005000000 2 /dev/block/mmcblk0p5 USER cache 0x0000000008000000 0x0000000037000000 2 /dev/block/mmcblk0p6 USER usrdata 0x00000001c0000000 0x000000003f000000 2 /dev/block/mmcblk0p7 USER fat 0x00000001a3900000 0x00000001ff000000 2 /dev/block/mmcblk0p8 USER bmtpool 0x0000000001500000 0x00000000ffff00a8 2 /dev/block/mmcblk0 USER Part_Name:Partition name you should open; Size:size of partition StartAddr:Start Address of partition; Type:Type of partition(MTD=1,EMMC=2) MapTo:actual device you operate
Lakukan
adb pull /proc/partitions
Hasilnya
major minor #blocks name 7 0 1254 loop0 253 0 524288 zram0 179 0 15246336 mmcblk0 179 1 1 mmcblk0p1 179 2 10240 mmcblk0p2 179 3 10240 mmcblk0p3 179 4 6144 mmcblk0p4 179 5 819200 mmcblk0p5 179 6 131072 mmcblk0p6 179 7 7340032 mmcblk0p7 179 8 6874112 mmcblk0p8 179 64 4096 mmcblk0boot1 179 32 4096 mmcblk0boot0 179 96 7802880 mmcblk1 179 97 7798784 mmcblk1p1
Beberapa partisi yang penting
uboot /dev/block/mmcblk0 bootimg /dev/block/mmcblk0 recovery /dev/block/mmcblk0 android /dev/block/mmcblk0p5 cache /dev/block/mmcblk0p6 usrdata /dev/block/mmcblk0p7
Dapatkan boot.img
Dapatkan recovery.img
Teliti Struktur Partisi
cat /proc/partitions
Menggunakan script mkvendor.sh untuk membuat file
Gunakan mkvendor.sh script ada di build/tools/device/ untuk secara automatis membuat directory.
Script mkvendor hanya dapat digunakan untuk device yang menggunakan file standard boot.img , menggunakan standard konvesi dan dan header Android standard. Script ini tidak jalan untuk device yang berbeda dari standard, seperti Nook Color, Touchpad, dll.
Script ini menerima tiga parameter: vendor, codename, dan file boot.img
Contoh penggunaan:
$ ./build/tools/device/mkvendor.sh samsung i9300 ~/Desktop/i9300boot.img
Dalam contoh , samsung menunjukan vendor, i9300 menunjukan codename dan parameter terakhir path ke file boot.img yang di ekstrak dari partisi boot dengan dd atau diberikan oleh vendor dalam file .zip seperti di diskusikan di atas.
Perintah di atas akan membuat folder /device/samsung/i9300/ dalam struktur repo source CyanogenMod. Dalam folder tersebut ada file AndroidBoard.mk, AndroidProducts.mk, BoardConfig.mk, cm.mk, device_[codename].mk, kernel (binary), recovery.fstab, dll
Langkah di atas tidak akan membuat directory kernel/ . Kita perlu melakukannya nanti, saat kita sudah siap untuk membuat kernel.
Jika responds yang diberikan adalah
"unpackbootimg not found. Is your android build environment set up and have the host tools been built?"
pastikan anda menjalankan perintah berikut saat mensetup developer environment:
$ make -j4 otatools