OS: Android - Build CyanogenMod
Persiapan
Buang openjdk
sudo apt-get purge openjdk*
Install oracle java6
sudo add-apt-repository ppa:webupd8team/java sudo apt-get update sudo apt-get install oracle-java6-installer sudo apt-get install oracle-java7-installer y
Install ia32(?) Tampaknya ini tidak di perlukan & hanya dibutuhkan di Ubuntu Mint
sudo dpkg --add-architecture i386 sudo apt-get update sudo apt-get install ia32-libs sudo apt-get install ia32-libs y
Download & Extract
mkdir -p ~/android wget http://dl.google.com/android/adt/adt-bundle-linux-x86_64-20130729.zip
Extrak di
cp adt-bundle-linux-x86_64-20130729.zip ~ cd ~ rm -Rf ~/android/* unzip adt-bundle-linux-x86_64-20130729.zip mv adt-bundle-linux-x86_64-20130729/* ~/android cd ~/android/sdk/tools/ ./android sdk
Instalasi aplikasi pendukung
sudo apt-get install git-core gnupg flex bison gperf libsdl1.2-dev \ libesd0-dev libwxgtk2.8-dev squashfs-tools build-essential zip curl \ libncurses5-dev zlib1g-dev pngcrush schedtool libxml2 libxml2-utils \ xsltproc g++-multilib lib32z1-dev lib32ncurses5-dev \ lib32readline-gplv2-dev gcc-multilib y
sudo apt-get install android-tools-adb sudo apt-get install android-tools-fastboot
Siapkan perintah repo
mkdir -p ~/bin mkdir -p ~/android-cyanogenmod
curl http://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo chmod a+x ~/bin/repo
Edit bashrc
gedit ~/.bashrc export PATH=${PATH}:~/bin export PATH=${PATH}:~/android/sdk/adt-bundle/sdk/tools export PATH=${PATH}:~/android/sdk/adt-bundle/sdk/platform-tools
Set identitas kita
git config --global user.email "username@mail.com" git config --global user.name "Nama Anda"
Siapkan Folder Source
repo sync ke folder source
cd ~/android-cyanogenmod/ repo init -u git://github.com/CyanogenMod/android.git -b cm-10.2 repo sync
atau
repo init -u git://github.com/CyanogenMod/android.git -b cm-10.1
atau
repo init -u git://github.com/CyanogenMod/android.git -b cm-11.0
Clean
Jika kita perlu membersihkan / clean build directory dapat menggunakan perintah
cd ~/android-cyanogenmod/ make clean
Build
cd ~ vi android-cyanogenmod/.repo/local_manifests/roomservice.xml
<manifest> <project name="TheMuppets/proprietary_vendor_lge.git" path="vendor/lge" remote="github" revision="cm-11.0"/> </manifest>
Edit roomservice.xml tampaknya tidak perlu dilakukan untuk CM 11.0.
mako
cd ~/android-cyanogenmod repo sync ~/android-cyanogenmod/vendor/cm/get-prebuilts . build/envsetup.sh brunch mako
LG Optimus G Pro
cd ~/android-cyanogenmod repo sync ~/android-cyanogenmod/vendor/cm/get-prebuilts cd ~/android-cyanogenmod . build/envsetup.sh brunch e980
versi e980 bisa untuk LG F240K tapi suara tidak keluar. Versi LG F240K yang tidak pernah di release ke publik.
LG Optimus L7
PERCOBAAN
cd ~/android-cyanogenmod repo sync ~/android-cyanogenmod/vendor/cm/get-prebuilts . build/envsetup.sh brunch p700
LG Optimus L7 II
PERCOBAAN
cd ~/android-cyanogenmod repo sync ~/android-cyanogenmod/vendor/cm/get-prebuilts . build/envsetup.sh brunch p713 breakfast p713
Jika Berhasil
Jika berhasil compile akan tampak seperti di bawah ini
LG Optimus G Pro
unzipping target target-files... running: unzip -o -q /home/onno/android-cyanogenmod/out/target/product/e980/obj/PACKAGING/target_files_intermediates/cm_e980-target_files-9c81b5d85f.zip -d /tmp/targetfiles-qs2iRf --- target info --- blocksize = (int) 131072 boot_size = (int) 23068672 build.prop = (dict) {'ro.setupwizard.enterprise_mode': '1', 'ro.url.legal': 'http://www.google.com/intl/%s/mobile/android/basic/phone-legal.html', 'ro.build.product': 'e980', 'wifi.supplicant_scan_interval': '15', 'ro.build.id': 'JLS36I', 'ro.hwui.gradient_cache_size': '1', 'ro.build.version.sdk': '18', 'ro.telephony.ril.v3': 'qcomdsds', 'ro.qc.sensors.wl_dis': 'true', 'dalvik.vm.heapmaxfree': '8m', 'ro.build.fingerprint': 'lge/geefhd_open_eu/geefhd:4.1.2/JZO54K/E98610b.1373081564:user/release-keys', 'ro.product.manufacturer': 'LGE', 'ro.hwui.layer_cache_size': '32', 'ro.build.description': 'geefhd_open_eu-user 4.1.2 JZO54K E98610b.1373081564 release-keys', 'dalvik.vm.heapstartsize': '16m', 'ro.product.brand': 'lge', 'wifi.interface': 'wlan0', 'ro.product.model': 'LG-E980', 'af.resampler.quality': '4', 'dalvik.vm.heapsize': '512m', 'persist.audio.fluence.voicecall': 'true', 'persist.audio.fluence.mode': 'endfire', 'dalvik.vm.heaptargetutilization': '0.75', 'ro.build.host': 'android-asus', 'ro.com.android.dataroaming': 'false', 'dalvik.vm.heapminfree': '2m', 'ro.board.platform': 'msm8960', 'drm.service.enabled': 'true', 'ro.bt.bdaddr_path': '/data/misc/bdaddr', 'ro.build.version.release': '4.3.1', 'ro.build.version.codename': 'REL', 'net.bt.name': 'Android', 'ro.build.type': 'userdebug', 'ro.hwui.text_large_cache_width': '2048', 'ro.config.alarm_alert': 'Hassium.ogg', 'ro.opengles.version': '196608', 'ro.cmlegal.url': 'http://www.cyanogenmod.org/docs/privacy', 'ro.hwui.text_small_cache_height': '1024', 'ro.build.display.id': 'cm_e980-userdebug 4.3.1 JLS36I 9c81b5d85f test-keys', 'ro.rommanager.developerid': 'cyanogenmod', 'ro.config.ringtone': 'Orion.ogg', 'dalvik.vm.dexopt-flags': 'm=y', 'dalvik.vm.stack-trace-file': '/data/anr/traces.txt', 'ro.carrier': 'unknown', 'ro.product.board': 'geefhd', 'ro.com.google.clientidbase': 'android-google', 'ro.build.date': 'Kam Mar 20 13:48:36 WIT 2014', 'ro.build.date.utc': '1395298116', 'keyguard.no_require_sim': 'true', 'persist.audio.dualmic.config': 'endfire', 'dalvik.vm.lockprof.threshold': '500', 'ro.build.selinux': '1', 'persist.sys.root_access': '1', 'ro.hwui.text_small_cache_width': '1024', 'ro.product.cpu.abi': 'armeabi-v7a', 'debug.egl.recordable.rgba8888': '1', 'ro.cm.version': '10.2-20140320-UNOFFICIAL-e980', 'persist.audio.handset.mic.type': 'digital', 'ro.url.legal.android_privacy': 'http://www.google.com/intl/%s/mobile/android/basic/privacy.html', 'ro.product.name': 'geefhd_open_eu', 'ro.hwui.drop_shadow_cache_size': '5', 'ro.telephony.call_ring.multiple': '0', 'ro.wifi.channels': , 'ro.hwui.r_buffer_cache_size': '4', 'ro.modversion': '10.2-20140320-UNOFFICIAL-e980', 'telephony.lteOnGsmDevice': '1', 'ro.build.characteristics': 'default', 'ro.telephony.default_network': '9', 'persist.hwc.mdpcomp.enable': 'true', 'ro.build.version.incremental': '9c81b5d85f', 'ro.hwui.text_large_cache_height': '1024', 'ro.build.tags': 'test-keys', 'ro.sf.lcd_density': '480', 'ro.com.android.dateformat': 'MM-dd-yyyy', 'persist.audio.lowlatency.rec': 'false', 'persist.audio.handset.mic': 'dmic', 'ro.product.cpu.abi2': 'armeabi', 'ro.build.user': 'onno', 'ro.product.locale.language': 'en', 'ro.hwui.path_cache_size': '24', 'ro.product.device': 'e980', 'ro.hwui.texture_cache_flushrate': '0.5', 'ro.product.locale.region': 'US', 'ro.hwui.texture_cache_size': '48', 'ro.cm.device': 'e980', 'ro.qualcomm.sensors.smd': 'true', 'ro.com.android.wifi-watchlist': 'GoogleGuest', 'persist.radio.apm_sim_not_pwdn': '1', 'dalvik.vm.heapgrowthlimit': '192m', 'ro.telephony.ril_class': 'LgeLteRIL', 'ro.config.notification_sound': 'Argon.ogg', 'media.aac_51_output_enabled': 'true'} default_system_dev_certificate = (str) build/target/product/security/testkey extfs_sparse_flag = (str) -s extra_recovery_keys = (str) build/target/product/security/cm fs_type = (str) ext4 fstab = (dict) {'/sns': <common.Partition object at 0x2cca510>, '/cache': <common.Partition object at 0x2cca410>, '/boot': <common.Partition object at 0x2cca290>, '/system': <common.Partition object at 0x2cca310>, '/persist': <common.Partition object at 0x2cca490>, '/recovery': <common.Partition object at 0x2cca2d0>, '/firmware': <common.Partition object at 0x2cca4d0>, '/data': <common.Partition object at 0x2cca450>, '/factory': <common.Partition object at 0x2cca550>} fstab_version = (int) 2 mkbootimg_args = (str) --ramdisk_offset 0x02000000 recovery_api_version = (int) 2 recovery_size = (int) 23068672 selinux_fc = (str) /tmp/targetfiles-qs2iRf/BOOT/RAMDISK/file_contexts system_size = (int) 880803840 tool_extensions = (str) device/lge/gproj-common/loki userdata_size = (int) 6189744128 using device-specific extensions in device/lge/gproj-common/loki building image from target_files BOOT... running: mkbootfs -f /tmp/targetfiles-qs2iRf/META/boot_filesystem_config.txt /tmp/targetfiles-qs2iRf/BOOT/RAMDISK running: minigzip running: mkbootimg --kernel /tmp/targetfiles-qs2iRf/BOOT/kernel --cmdline vmalloc=600M console=ttyHSL0,115200,n8 lpj=67677 user_debug=31 msm_rtb.filter=0x0 ehci-hcd.park=3 coresight-etm.boot_enable=0 androidboot.hardware=geefhd --base 0x80200000 --pagesize 2048 --ramdisk_offset 0x02000000 --ramdisk /tmp/tmpHDe1K1 --output /tmp/tmphsLWVh boot size (6842368) is 29.66% of limit (23068672) running: openssl pkcs8 -in build/target/product/security/testkey.pk8 -inform DER -nocrypt running: java -Xmx2048m -jar /home/onno/android-cyanogenmod/out/host/linux-x86/framework/signapk.jar -w build/target/product/security/testkey.x509.pem build/target/product/security/testkey.pk8 /tmp/tmpl3eXiQ /home/onno/android-cyanogenmod/out/target/product/e980/cm_e980-ota-9c81b5d85f.zip done. Package Complete: /home/onno/android-cyanogenmod/out/target/product/e980/cm-10.2-20140320-UNOFFICIAL-e980.zip
Referensi
- http://forum.xda-developers.com/showthread.php?t=2404841
- http://bernaerts.dyndns.org/linux/74-ubuntu/245-ubuntu-precise-install-android-sdk
- http://wiki.cyanogenmod.org/w/Build_for_blade
Pranala Menarik
- Android
- Pemrogramman Android
- OS: Android - Mempersiapkan Development Environment
- OS: Android - Memeriksa Spesifikasi Handphone yang digunakan
- OS: Android - Membuat Mirror Source
- OS: Android - Download
- OS: Android - Membuat Folder untuk Bekerja
- OS: Android - Mirror Source
- OS: Android - Mirror Source AOKP
- OS: Android - Mirror Source CyanogenMod
- OS: Android - Build
- OS: Android - Build CyanogenMod
- OS: Android - Build AOSP