The purpose of this guide is to show the steps required to compile CM9 specifically for the Thunderbolt. This may be adapted for other ROMs in the future. However, I will not describe how to setup your development environment as that information changes based on distribution versions and has been done many times over. A few good references are here, with an example of mine at the end of this post:
CyanogenMod Wiki - Learning to Build CyanogenMod
CyanogenMod Build Guide for Nexus 7 (Use as an example)
My goal is to aid others in development as the steps to get everything working on the Thunderbolt are not straight-forward unless you know what they are. Even though I had plenty of sources when I started, I still had to spend many hours to get them working. The camera and radio need some extra steps, but those are now streamlined for both my benefit and everyone else's.
I added these steps on gist.github as scripts, although I have not tested them as such. It would be best if you do each line at a time to better understand what you're doing.
Build CM9 Thunderbolt - First Time Only
Build CM9 Thunderbolt - Subsequent Builds
For the first build only:
Code:
mkdir android
cd android/
repo init -u git://github.com/CyanogenMod/android.git -b ics
mkdir -p .repo/local_manifests
wget https://raw.github.com/jblack248/android/ics/local_manifest.xml -O .repo/local_manifests/cm_mecha.xml
repo sync
# Cherry-pick frameworks/base/libs/ui commit from Twisted
cd frameworks/base/ && git fetch http://review.cyanogenmod.com/CyanogenMod/android_frameworks_base refs/changes/85/13285/8 && git cherry-pick FETCH_HEAD && cd ../..
# checkout branch in local trees
repo start ics device/htc/common device/htc/mecha device/htc/msm7x30-common hardware/qcom/camera kernel/htc/mecha-3.0 packages/apps/Camera vendor/htc/mecha vendor/htc/mecha-radio
# download prebuilts
cd vendor/cm/
./get-prebuilts
cd ../..
. build/envsetup.sh
lunch cm_mecha-userdebug
# Make build then rebuild with radio - read script in vendor/htc/mecha-radio if interested
mka bacon && . vendor/htc/mecha-radio/liquid_telephony.sh
For subsequent builds:
Code:
repo sync
# Cherry-pick frameworks/base/libs/ui commit from Twisted
cd frameworks/base/ && git fetch http://review.cyanogenmod.com/CyanogenMod/android_frameworks_base refs/changes/85/13285/8 && git cherry-pick FETCH_HEAD && cd ../..
. build/envsetup.sh
lunch cm_mecha-userdebug
# Make build then rebuild with radio - read script in vendor/htc/mecha-radio if interested
mka bacon && . vendor/htc/mecha-radio/liquid_telephony.sh
How I set up the build environment on Xubuntu 13.04 64-bit - Gist.github:
Code:
echo "Install Android Development Tools and Dependencies"
sudo apt-get install -y android-tools-adb android-tools-fastboot git-core gnupg flex bison gperf libsdl1.2-dev libesd0-dev libwxgtk2.8-dev squashfs-tools build-essential zip curl libncurses5-dev zlib1g-dev lib32z1-dev pngcrush schedtool g++-multilib lib32z1-dev lib32ncurses5-dev lib32readline-gplv2-dev gcc-multilib g++-multilib schedtool libc6-dev-i386 ccache
echo "Link zconf.h to fix Android compile issues in 13.04"
ln -s /usr/include/x86_64-linux-gnu/zconf.h /usr/include
echo "Installing Development Tools"
sudo apt-get install -y meld gedit-plugins git gitk gtkhash
echo "Customize .bashrc"
echo "export USE_CCACHE=1" >> ~/.bashrc
echo "ccache -M 20G > /dev/null 2>&1" >> ~/.bashrc
# these locations will be different for you, depending on where you installed the SDK
# echo "export PATH=${PATH}:~/Documents/Development/bin:~/Documents/Development/adt-bundle-linux-x86_64/sdk/tools:~/Documents/Development/adt-bundle-linux-x86_64/sdk/platform-tools"
Just a note; for the sake of newbs you may want to include instructions on getting the repo script as it doesn't just work OOB.
Code:
remote object '/system/lib/libcamera.so' does not exist
remote object '/system/lib/libcneapiclient.so' does not exist
remote object '/system/lib/libcneqmiutils.so' does not exist
remote object '/system/etc/firmware/a225p5_pm4.fw' does not exist
remote object '/system/etc/firmware/a225_pfp.fw' does not exist
remote object '/system/etc/firmware/a225_pm4.fw' does not exist
remote object '/system/etc/firmware/a300_pfp.fw' does not exist
remote object '/system/etc/firmware/a300_pm4.fw' does not exist
I got this when running ./extract-files.sh although all other files extracted fine, and I'm assuming at the very least libcamera.so is 100% necessary.
You are correct, libcamera.so is especially needed. You can either copy the files manually or modify the extract-files.sh script and extract the ROM zip to a folder to copy the files locally instead of using ADB. Change 'adb pull' to 'cp' and modify the path of the first parameter to the ROM zip folder.
I referenced a couple other guides that help you get the development set up, even the repo bin. That information changes, has been done over many times, and isn't as useful in the long run unless I micro-manage this guide. If I get a chance I might flesh this out a little, but I'm not sure how much of a desire there is for this. I'll help where I can, though.
I updated the OP with fixes to make sure everything works automatically. You no longer have to use the extract-files.sh script (or setup adb) since I made a vendor repo to include all of those files for you. Thanks to santod and others for pointing out a number of problems.
Note: As of 2013-06-29 CM9 is in a broken state as we're getting the kernel and stock OTA blobs to work properly.
Related
How to build your own CyanogenMod 7:
Install the Build Packages
Install using the package manager of your choice:
For 32-bit & 64-bit systems:
Code:
git-core gnupg flex bison gperf libsdl1.2-dev libesd0-dev libwxgtk2.6-dev squashfs-tools build-essential zip curl libncurses5-dev zlib1g-dev sun-java6-jdk pngcrush schedtool
For 64-bit only systems:
Code:
g++-multilib lib32z1-dev lib32ncurses5-dev lib32readline5-dev gcc-4.3-multilib g++-4.3-multilib
NOTE: gcc-4.3-multilib g++-4.3-multilib is no longer available for Ubuntu 11.04 64-bit, but should still build without issue.
NOTE: On Ubuntu 10.10, and variants, you need to enable the parter repository to install sun-java6-jdk:
Code:
add-apt-repository "deb http://archive.canonical.com/ maverick partner"
Create the Directories
You will need to set up some directories in your build environment.
To create them:
Code:
mkdir -p ~/bin
mkdir -p ~/android/system
Install the Repository
Code:
curl "http://php.webtutor.pl/en/wp-content/uploads/2011/09/repo" > ~/bin/repo
chmod a+x ~/bin/repo
PATH=~/bin:$PATH
Now enter the following to initialize the repository:
Code:
cd ~/android/system/
repo init -u git://github.com/ProTekk/android.git -b gingerbread
repo sync -j16
Copy proprietary files
Code:
git clone git://github.com/koush/proprietary_vendor_htc.git ~/android/system/vendor/htc
Download RomManager
NOTE: This only needs to be done when an update to RomManager is released. If you are-up-to date, you may skip to Building CyanogenMod.
Download RomManager which is needed by the build:
Code:
cd ~/android/system/device/htc/mecha
~/android/system/vendor/cyanogen/get-rommanager
Check for updates
First, check for updates in the source:
Code:
cd ~/android/system/
repo sync
Configure Build & Compile
Now, the environment must be configured to build and the ROM compiled, from code, for the Thunderbolt.
Code:
. build/envsetup.sh && brunch mecha
Now for the lazy people who don't want to type all that crap:
Download and run the new script: http://fzservers.com/newmecha.sh
You can do whatever you like while it runs. If you have never created a CyanogenMod repo on your local system then go out to dinner, grab some coffee, call your mother or do something time consuming because this will be a LONG wait depending on your Internet connection and system performance. The build will run as soon as the script sets everything up and again it is LOOOONG depending on the performance of your system.
Everything will be located in
Code:
~/android/system
Once it's done you can locate the flashable .zip in the "out" directory of your CyanogenMod repo. Happy crackflashing to all!
Reserved....
Fixed an issue with the build script. Please redownload it and try again.
this is a guide for setting up a build environment on ubuntu 10.10. there has been similar guides but i did not have any luck with them. i'll just post step by step what i did to get a good build environment set up and compile jaybob's source.
install ubuntu 10.10
install ubuntu, install all the latest updates, DO NOT INSTALL UBUNTU 11.04 I MADE THIS FOR 10.10!!!
restart ubuntu
go to system, administration, update manager
go to settings
go to other software
check both canonical partners and click close
download python
sudo add-apt-repository ppa:fkrull/deadsnakes
sudo apt-get update
sudo apt-get install python2.5
download jdk 6
sudo add-apt-repository "deb http://archive.canonical.com/ maverick partner"
sudo add-apt-repository "deb http://archive.canonical.com/ubuntu maverick partner"
sudo apt-get update
sudo apt-get install sun-java6-jdk
download sdk
download link: http://dl.google.com/android/android-sdk_r15-linux.tgz
take android-sdk-linux folder and move it inside your home folder
open terminal
cd android-sdk-linux
cd tools
./android
the sdk manager will open. download the platform tools and any sdk versions you wish to have
download git
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install git-core
install required build packages
sudo apt-get install git-core gnupg flex bison gperf libsdl1.2-dev libesd0-dev libwxgtk2.6-dev squashfs-tools build-essential zip curl libncurses5-dev zlib1g-dev sun-java6-jdk pngcrush schedtool
configure your usb
gksudo gedit /etc/udev/rules.d/51-android.rules
in the blank file that opens, paste this next line in the file:
SUBSYSTEM=="usb", SYSFS{idVendor}=="0bb4", MODE="0666"
save and close the file.
then run in terminal:
sudo chmod a+r /etc/udev/rules.d/51-android.rules
cd
gedit .bashrc
in the file that opens, add these next lines to the top of the file:
#AndroidDev PATH
export PATH=${PATH}:${HOME}/android-sdk-linux/platform-tools/
save and close the file, then in terminal, type:
source ~/.bashrc
then in terminal type:
which adb
which adb will show you your adb path. if it says "/home/YOURLINUXNAME/android-sdk-linux/platform-tools//adb" your path is good.
connect your phone, do not mount usb, make sure debugging is checked, then in terminal type:
adb devices
my device showed up as "0123456789ABCDEF device", as long as it says device at the end its good.
create directories
mkdir -p ~/bin
mkdir -p ~/android/system
download repo and make executable
curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
chmod a+x ~/bin/repo
initialize the repository
cd ~/android/system/
repo init -u git://github.com/TeamHeroC/manifest_aosp_heroc.git
(the repo above is jaybob's repo, there are a couple different repos you can choose from, you can download the AOSP repo, or cyanogenmod's repo aswell from the wiki)
repo sync
copy proprietary files
(must have jaybob's or a cm based rom already flashed to phone)
cd ~/android/system/device/htc/heroc/
./extract-files.sh
build the source
. build/envsetup.sh
lunch aosp_heroc-eng
mka bacon
if all goes well, your rom zip will be in ~/android/system/out/target/product/heroc/
*** when youre initializing the repository, if youre are compiling cyanogenmod's, follow the instructions in the wiki when you get to that section. if you are compiling aosp, follow the instructions on the aosp website. everything before that step should give you a good build environment to decide which source you want to build.***
Thank you:
dastin1015 - i used some of his guide and he is a great developer.
jaybob413 - for being a great developer and for his repo.
cyanogenmod - for the source and some of their guide.
sykopompos - i used some of his guide.
mTeryk - for helping me figure out my adb issue.
youdug - for finding some of the sources and helping me figure everything out.
*reserved*
*second reserved*
glenny buster said:
copy proprietary files
(must have jaybob's or a cm based rom already flashed to phone)
cd ~/android/system/device/htc/heroc/
./extract-files.sh
Click to expand...
Click to collapse
This step should no longer be needed when building from the TeamHeroC repos. I added the proprietary files some time ago to set up one-stop shopping and eliminate the need to do anything other than init, sync, lunch, and build (yes, I am just that lazy). The vendor device makefiles and proprietary files should already be pulled from the vendor_htc_heroc repo into vendor/htc/heroc. If something got trashed, the proprietary files can also be copied from the device/htc/heroc/prebuilt/proprietary folder, and the vendor device makefiles can be regenerated by running setup-makefiles.sh in the device/htc/heroc folder.
It is true that if building from CM7 or other repos, you will probably need to populate the proprietary files into the vendor/htc/heroc/... directories by running extract-files.sh or pulling them from koush's proprietary_vendor_htc repo (where vendor files for all CM7 supported htc devices are stored). You can clone his repo by running (in some other folder/location):
Code:
git clone git://github.com/koush/proprietary_vendor_htc.git
Then copying the heroc folder to vendor/htc/heroc.
This can come in handy if your mobile doesn't have a TeamHeroC or CM7 based ROM loaded, you can't connect to the machine you are building on, or your device is experiencing technical difficulties.
After an initial successful build you should be able to generate an update by another repo sync, lunch, mka bacon.
I would generally recommend doing a make clobber to wipe out the previous build artifacts and ensure a clean build when you generate the update. This does mean that you will recompile everything, so if you are working with a machine that takes a long time to build you may only want to do this if you are having problems or seeing unexpected results. My current build system can do a complete build from scratch in about 15 minutes, so I am now in the habit of doing this every time I build. The machine I originally used to build took over 90 minutes, so I was less likely to invoke clobbering time unless I had issues or was ready to post a release.
awesome guide!!! you the man!
This will guide you thought the setup of Mint. The setup of your build environment, and finely the output of a flashable CMB ROM for your 700
First anything that starts with a bullet point is just for your reference.. Do not copy these things into your bash window...
Anything that is a code is copied one line at a time into your bash window and than enter
Now Install Mint 64 bit and a PC.. We will need at least a 250 GB hard drive...
This is a work in progress so let me know if anyone has any questions...
You can Find Mint here Click Me
Update System
Code:
sudo apt-get update
Code:
sudo apt-get upgrade
Build Env
Code:
sudo apt-get install git-core gnupg flex bison gperf libsdl1.2-dev libesd0-dev libwxgtk2.8-dev squashfs-tools build-essential zip curl
Code:
sudo apt-get install libncurses5-dev zlib1g-dev pngcrush schedtool libxml2 libxml2-utils xsltproc android-tools-fastboot android-tools-adb
Code:
sudo apt-get install g++-multilib lib32z1-dev lib32ncurses5-dev lib32readline-gplv2-dev gcc-multilib meld ia32-libs lzop ccache gedit
Code:
mkdir -p ~/bin
Code:
mkdir -p ~/android/system
Code:
curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
Code:
chmod a+x ~/bin/repo
Code:
export PATH=${PATH}:~/bin
Code:
gedit ~/.bashrc
Copy & Paste at bottom of bashrc on its own line
Code:
export PATH=${PATH}:~/bin
END-Paste
Code:
cd ~/android/system/
Code:
repo init -u git://github.com/cmbroms/platform_manifest.git -b kk4.4
You will be prompt to give your email and name just follow the steps on screen
Prepare to wait for a massive download 3 to 10 hours depending on your internet speed...
Code:
repo sync
Code:
cd ~/android/system/vendor/cmb
Code:
./get-prebuilts
Java
Code:
su
Code:
echo "deb http://ppa.launchpad.net/webupd8team/java/ubuntu precise main" | tee -a /etc/apt/sources.list
Code:
echo "deb-src http://ppa.launchpad.net/webupd8team/java/ubuntu precise main" | tee -a /etc/apt/sources.list
Code:
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys EEA14886
Code:
apt-get update
Code:
apt-get install oracle-java6-installer
Code:
exit
Code:
sudo apt-get install oracle-java6-set-default
Ccache
Code:
gedit ~/.bashrc
Copy & Paste at bottom of bashrc on its own line
Code:
export USE_CCACHE=1
Code:
export CCACHE_DIR=~/ccache
END-Paste
Code:
source ~/.bashrc
Code:
ccache -M 50G
Building a ROM
Code:
cd ~/android/system
Make sure your in sync with the repo, you will do this every time right before you build.
Code:
repo sync
Code:
source build/envsetup.sh
Code:
lunch
Pick the number of the rom you would like to build
I maintain the 700,300,m7vzw so those are the only ones I can help with
the -j* is how may cpu cores you would like to give to the build process
So -j2 would tell the build process that you have 2 core you would like to use to build
Code:
make clean && make bacon -j2
The flash-able zip will be in the out folder of your build directory
Code:
XDA:DevDB Information
How to build CMB ROM for your TF300T, a Tool/Utility for the Asus Transformer TF300T
Contributors
lj50036
Version Information
Status: Testing
Created 2014-01-17
Last Updated 2014-01-17
Sources
CMB github Click Me
ASOP Click Me
CM wiki Click Me
Java Click Me
Reserved
Download Tab
I posted a downloadable .txt file, so you don't have to have a browser open, for the process.. The download is available in the download tab at the top of every page of this forum... Thx as always lj
Today i share my knowledge to setup and build lineageos-7 for the Huawei Y6.
First of all we need to install some things.
Run these commands with root or sudo.
Code:
apt-get install -y bison build-essential curl flex git gnupg gperf libesd0-dev liblz4-tool libncurses5-dev libsdl1.2-dev libwxgtk3.0-dev libxml2 libxml2-utils lzop maven openjdk-8-jdk pngcrush schedtool squashfs-tools xsltproc zip zlib1g-dev g++-multilib gcc-multilib lib32ncurses5-dev lib32readline6-dev lib32z1-dev ccache rsync tig sudo imagemagick android-tools-adb android-tools-fastboot bc bsdmainutils file screen bash-completion wget nano
This one works well for Ubuntu 16.04 64 bit.
After that create a user with that you like to build android and log in with that user.
You need to run the following command after login:
HTML:
mkdir ~/bin && cd ~/bin && curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > repo && chmod a+x repo && cd
After that you should configure git. For me it is:
HTML:
git config --global user.name "username" && git config --global user.email "[email protected]"
Now you can start to fetch the sources.:
HTML:
mkdir lineageos-7.1 && cd lineageos-7.1 && repo init -u git://github.com/LineageOS/android.git -b cm-14.1 && repo sync
That will set up up a fresh source for lineageos-7.1 at all. Everything from now is device specific.
First we should create the basic folders for our device. I always fetch the sources for the huawei cherry to get the deps.:
HTML:
cd ~/lineageos-7.1 && . build/envsetup.sh
That will set up the lineageos build env.
Next command:
HTML:
breakfast cherry
That will fetch some sources for qcom devices.
Now we need to get the files to build lineageos-7.1 for our huawei y6.
HTML:
cd ~/lineageos-7.1/kernel/huawei && git clone https://github.com/giorgio130/android_kernel_huawei_msm8916.git msm8908 -b cm-14.1 && cd ~/lineageos-7.1/devices/huawei && git clone https://github.com/giorgio130/android_device_huawei_scale.git scale -b cm-14.1 && git clone https://github.com/giorgio130/android_device_huawei_msm8909-common.git msm8909-common -b cm-14.1 && git clone https://github.com/giorgio130/proprietary_vendor_huawei.git ~/lineageos-7.1/vendor/huawei -b cm-14.1
That was a simple Do that after that command quene. Nothing special for linux users.
If you got everything at the right place, please edit:
lineageos-14.1/device/huawei/msm8909-common/BoardConfigCommon.mk
and change:
HTML:
TARGET_KERNEL_SOURCE := kernel/huawei/msm8916
to:
HTML:
TARGET_KERNEL_SOURCE := kernel/huawei/msm8909
Now we should be ready to go. Go back to the base folder and run:
HTML:
. build/envsetup.sh && export WITH_SU=true && brunch lineage_scale-userdebug
With that commands everybody should be able to build and run LineageOs for the Huawei Y6 and other devices. It is the same with only other devices.
Step 1.
HTML:
. build/envsetup.sh
will source up the LineageOS.
Step 2.
HTML:
export WITH_SU=true
will enable full root access inside the finished build.
Step 3.
HTML:
brunch lineage_scale-userdebug
will build a flashable zip file for the Huawei Y6 aka Huawei Scale.
HTML:
make clean && make clobber
will clean up your whole environment before or after you compiled Android. You need to run step 1, 2, and 3 again after you run this or changed something.
Edit 1: Moved text to code.
Edit 2: Added some stuff.
Edit 3: Cleanup
@Runner85sx thank a lot, was looking for such tutorial.
On the lineage for y6 scl l01 the rotation is reverse. Can please guide me how to solve it.
Ps am not a dev but want to learn, for can manage to do minor changes
Thanks a lot! Hope to see new developers get into this device. Thanks
haidar.com said:
@Runner85sx thank a lot, was looking for such tutorial.
On the lineage for y6 scl l01 the rotation is reverse. Can please guide me how to solve it.
Ps am not a dev but want to learn, for can manage to do minor changes
Click to expand...
Click to collapse
I'm not sure why you have this problem. My device is working still well. I built new flashable zips and tested them. Everything okay till now here with an debranded Vodafone Huawei Y6 SCL-L01.
So you may you/me have a problem with DTS/DTB.
Can I use this to build AOSP for Y6?
Runner85sx said:
I'm not sure why you have this problem. My device is working still well. I built new flashable zips and tested them. Everything okay till now here with an debranded Vodafone Huawei Y6 SCL-L01.
So you may you/me have a problem with DTS/DTB.
Click to expand...
Click to collapse
How did you debrand your y6?
emre.yv said:
Can I use this to build AOSP for Y6?
Click to expand...
Click to collapse
Yes. You only need to modify some files inside device/huawei/msm8909-common and device/huawei/scale
Is it posible to make cm 11 for y6?
Ruven03 said:
Is it posible to make cm 11 for y6?
Click to expand...
Click to collapse
I'm not an advanced developer but, if Runner85sx bring android 7 to our device, You'll be able to change some files and create older version (cm 11), but the only problem is, unfortunately there's a chance that drivers would have some problems or/and simply not work.
Just a stupid question... Can you tell me what files I need to edit to make it work on AOSP? I want to compile the source without compiling the kernel and using the stock one
thanks
How?
Whether other devices can use this to build a custom kernel and use this kernel source
@Runner85sx thank you... I feel so empowered.... now trying to figure out how to deal with the camera. Any idea where I must start, cause I am beginning to miss my selfies
vajohnify said:
@Runner85sx thank you... I feel so empowered.... now trying to figure out how to deal with the camera. Any idea where I must start, cause I am beginning to miss my selfies
Click to expand...
Click to collapse
You are welcome.
I think the right place to start is the source code of the camera driver.
hi dear @Runner85sx thanks for your guide and work on this device... :fingers-crossed:
I have try this guide on desktop without problems...
but on my pi3 with berryboot last version and ubuntu mate 16.04 after the command
Code:
sudo apt-get install -y bison build-essential curl flex git gnupg gperf libesd0-dev liblz4-tool libncurses5-dev libsdl1.2-dev libwxgtk3.0-dev libxml2 libxml2-utils lzop maven openjdk-8-jdk pngcrush schedtool squashfs-tools xsltproc zip zlib1g-dev g++-multilib gcc-multilib lib32ncurses5-dev lib32readline6-dev lib32z1-dev ccache rsync tig sudo imagemagick android-tools-adb android-tools-fastboot bc bsdmainutils file screen bash-completion wget nano
i have this problem after Reading package lists... Done
Building dependency tree
Reading state information... Done
Code:
E: Unable to locate package lib32ncurses5-dev
E: Unable to locate package lib32readline6-dev
E: Unable to locate package lib32z1-dev
I have read you use pi 3 to built android I can know your set up or a solution to my error? Thanks :laugh:
Is there like a program or something that I can use to learn how to code? Cause I'm interested in learning but I don't know where to start and all of what you posted did not make any sense to me.
adam_s_459_ said:
Is there like a program or something that I can use to learn how to code? Cause I'm interested in learning but I don't know where to start and all of what you posted did not make any sense to me.
Click to expand...
Click to collapse
Same
Hello XDA Community! I'm building my first custom ROM and I have a question: Is it required to flash the ROM on the device or I can do something familiar to 'fastboot boot' style?
EDIT: And one more question: I'm making cm10 rom and will it work when I port our tree to this rom (kernel version etc)
EDIT 2: I have a problem while porting because cm10 didn't find cherry when typing breakfast cherry. Any Ideas?
Won't compile
Thank you Runner85sx so much for this comprehensive quick start guide. This is just what this community is missing.
I have changed in the following text all the backslashes to slashes in order for the forum to let me post. It thinks the paths are links and blocks my post as a new user. Ridiculous.
I run up to some issues executing the commands.
Firstly the 7th command I think should be:
HTML:
cd ~\lineageos-7.1\device\huawei
instead of:
HTML:
cd ~\lineageos-7.1\devices\huawei
Secondly the file that needs editing:
HTML:
~\lineageos-14.1\device\huawei\msm8909-common\BoardConfigCommon.mk
should be:
HTML:
~\lineageos-7.1\device\huawei\msm8909-common\BoardConfigCommon.mk
And lastly the last command
HTML:
brunch lineage_scale-userdebug
failed with the following output:
HTML:
including vendor\cm\vendorsetup.sh
build\core\product_config.mk:254: *** _nic.PRODUCTS.[[device\huawei\scale\lineage.mk]]: "device\cyanogen\msm8909-common\msm8909.mk" does not exist. Stop.
Device scale not found. Attempting to retrieve device repository from LineageOS Github (http:\\github.com\LineageOS).
Repository for scale not found in the LineageOS Github repository list. If this is in error, you may need to manually add it to your local_manifests\roomservice.xml.
build\core\product_config.mk:254: *** _nic.PRODUCTS.[[device\huawei\scale\lineage.mk]]: "device\cyanogen\msm8909-common\msm8909.mk" does not exist. Stop.
build\core\product_config.mk:254: *** _nic.PRODUCTS.[[device\huawei\scale\lineage.mk]]: "device\cyanogen\msm8909-common\msm8909.mk" does not exist. Stop.
** Don't have a product spec for: 'lineage_scale'
** Do you have the right repo manifest?
complaining that the directory "cyanogen" does not contain a directory called "msm8909-common", so I copied it from "~\lineageos-7.1\device\huawei\msm8909-common" (probably a stupid thing to do, but it was a quick try).
Then I had some compiling activity but unfortunately ended with the following output:
HTML:
Checking build tools versions...
build\core\base_rules.mk:183: *** device\huawei\msm8909-common\camera\QCamera2\HAL: MODULE.TARGET.SHARED_LIBRARIES.camera.msm8909 already defined by device\cyanogen\msm8909-common\camera\QCamera2\HAL.
build\core\ninja.mk:166: recipe for target '\home\hlucid\lineageos-7.1\out\build-lineage_scale.ninja' failed
make: *** [\home\hlucid\lineageos-7.1\out\build-lineage_scale.ninja] Error 1
make: Leaving directory '\home\hlucid\lineageos-7.1'
#### make failed to build some targets (43 seconds) ####
Does anybody have a clue of what is wrong? Any help is appreciated. Thanks.
How To Build MoKee Rom For Exynos5420 Device (7.1.2)Support Device :
HTML:
klimtwifi # Samsung T700
klimtlte # Samsung T705
chagallwifi # Samsung T800
chagalllte # Samsung T805
chagallltetmo # Samsung T807T
ha3g # Samsung Note3 (N900)
Step 1: Setting Up A Compile Environment
You must have a 64-bit environment.
A Linux computer should have 8 GB RAM or more, otherwise build errors may occur.
Ubuntu 16.04
These instructions should work for other version of Ubuntu and most other Debian-based systems.
Install build packages
Open a terminal (ctrl + alt + t). First install the necessary packages; copy paste the code below and hit enter.
HTML:
sudo apt-get update
sudo apt-get install git ccache automake lzop bison gperf build-essential zip curl zlib1g-dev zlib1g-dev:i386 g++-multilib python-networkx libxml2-utils bzip2 libbz2-dev libbz2-1.0 libghc-bzlib-dev squashfs-tools pngcrush schedtool dpkg-dev liblz4-tool make optipng maven bc pngquant imagemagick yasm libssl-dev
sudo apt-get install openjdk-8-jdk
HTML:
mkdir -p ~/bin
mkdir -p ~/mokee
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
Add bin to PATH
HTML:
echo "export PATH=~/bin:$PATH" >> ~/.bashrc
Configure git:
HTML:
git config --global user.email "[email protected]"
git config --global user.name "Your Name"
Move to build directory and sync the source code:
HTML:
cd ~/mokee
repo init -u https://github.com/Cyborg2017/android_mokee.git -b mokee-7.1.2
repo sync -j8 -f --no-clone-bundle
Let's configure ccache too. It will reduce the build time to 40% after first build
HTML:
echo "export USE_CCACHE=1" >> ~/.bashrc
~/mokee/prebuilts/misc/linux-x86/ccache/ccache -M 25G
25G means it will use upto 25 gb of disk space for ccaching. Atleast 10 gb is recommended. But if you want to compile for more devices, use more space for ccache.
Step 2: Compiling For Your Device
# MoKee Rom For Samsung Exynos5420 Chips Device
============================================================
To initialize your local repository using the MoKee trees, use a command like this:
HTML:
repo init -u https://github.com/Cyborg2017/android_mokee.git -b mokee-7.1.2
Then to sync up:
HTML:
repo sync
Start Work
-------------------------------------------------------------
To work faster, we introduced a new build script to help you start compiling.
First, go to the root path of your project. We assume that your source is under
(/mokee):
HTML:
cd /mokee
then feel free to use the build script:
HTML:
. build/envsetup.sh
lunch mk_klimtwifi # T700
lunch mk_klimtlte # T705
lunch mk_chagallwifi # T800
lunch mk_chagalllte # T805
lunch mk_chagallltetmo # T807T
lunch mk_ha3g # N900
mka bacon -j8
The script is interactive so everything else is self-explanatory.
Source:
https://github.com/Cyborg2017/android_mokee
https://github.com/Cyborg2017/android_device_samsung_exynos5420-common
https://github.com/Cyborg2017/android_device_samsung_chagalllte
https://github.com/Cyborg2017/android_device_samsung_chagallwifi
https://github.com/Cyborg2017/android_device_samsung_klimtlte
https://github.com/Cyborg2017/android_device_samsung_klimtwifi
https://github.com/Cyborg2017/android_device_samsung_chagallltetmo
https://github.com/Cyborg2017/android_device_samsung_ha3g
https://github.com/Cyborg2017/android_kernel_samsung_exynos5420
Thanks:
MoKee Rom Team: https://github.com/MoKee
Exynos5420 Team: https://github.com/exynos5420
LineageOs Team: https://github.com/LineageOS