Difference between revisions of "OS: Android - Build CyanogenMod"

From OnnoWiki
Jump to navigation Jump to search
Line 119: Line 119:
 
  cd ~/android-cyanogenmod
 
  cd ~/android-cyanogenmod
 
  repo sync
 
  repo sync
  ~/android-cyanogenmod/vendor/cm/get-prebuilts
+
  cd ~/android-cyanogenmod/vendor/cm/get-prebuilts
 
  . build/envsetup.sh
 
  . build/envsetup.sh
 
  brunch e980
 
  brunch e980

Revision as of 10:17, 29 May 2014

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>


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
cd ~/android-cyanogenmod/vendor/cm/get-prebuilts
. 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

Pranala Menarik