This is strictly just a reference guide/tutorial! If you cannot simply follow directions and copy/paste, I'm not going to help you! This is idiot-proof.
Build Environment
Operating system -- Tested on Ubuntu 10.04 (64bit)
Terminal
Decent hardware (minimum of at least a dual core CPU and 4 GB of RAM)
Optimally have an SSD (standard mechanical drives work as well but slow down the process drastically)
Must have required packages for building installed, I will list them further down
Required Packages
Simply copy and paste this in a terminal window:
Code:
sudo apt-get install curl 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 g++-multilib lib32z1-dev lib32ncurses5-dev lib32readline5-dev gcc-4.3-multilib g++-4.3-multilib
Let that install and then proceed.
Getting the Source
Make required directories
Obtain repo binary
Add repo binary to your path
Give repo binary proper permissions
Initialize empty repo
Sync repo
Grab device tree and vendor tree which are not included in the AOKP manifest
Add Mecha to the vendor setup
Alright, so now we're getting there. I have outlined the basics of what we're about to do and broke them down as I know them. This is all pretty much going to be copy/paste so it'll be fairly difficult to screw this up
Copy/paste:
Make directory for repo binary
Code:
mkdir ~/bin
Add directory for repo binary to your path
Code:
PATH=~/bin:$PATH
Download repo binary and place it in the proper directory
Code:
curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
Give the repo binary the proper permissions
Code:
chmod a+x ~/bin/repo
Create directory for where the AOKP repo will be stored and synced
Code:
mkdir ~/aokp
Move to our new AOKP directory
Code:
cd ~/aokp
Initialize the AOKP repo and download the manifest
Code:
repo init -u git://github.com/AOKP/platform_manifest.git -b master
Sync AOKP source
Code:
repo sync -jX
X == Number of cores your CPU has
Start the build
This is probably the EASIEST part of all, simply copy/paste this command and walk away!
Code:
. build/envsetup.sh && lunch aokp_tenderloin-userdebug && make otapackage -jX
Where X == cores per CPU again.
Syncing the repo is dependent upon your Internet connection. It can take anywhere from 30 minutes to several hours to fully sync. Same thing goes for build times. Don't expect this to be short. If you have patience and have no build errors, you'll end up with a flashable zip in ~/aokp/out/target/product/tenderloin! Happy crack-flashing!
Thats nice, too bad i sold my i5 laptop recently, and the Internet speed is awful herr , but thanks dude
Sent from my HTC Desire HD using xda premium
Will it compile on a 32bit vm? Not worried about the time.
nomadman said:
Will it compile on a 32bit vm? Not worried about the time.
Click to expand...
Click to collapse
ICS requires a 64bit linux install afaik
http://groups.google.com/group/android-building/browse_thread/thread/168d757c41cdaf3d?pli=1
Jedipottsy said:
ICS requires a 64bit linux install afaik
http://groups.google.com/group/android-building/browse_thread/thread/168d757c41cdaf3d?pli=1
Click to expand...
Click to collapse
I don't think that's true, I've compiled an ICS ROM on a 32-bit machine. I think it should work.
Sent from my ZTE-BLADE using XDA App
What's advantage of using AOKP if they forked from CyanogenMod? It would be same for HP Touchpad, maybe it would be even behind in update until AKOP merge new commits from CyanogenMod git.
bhanvadia said:
What's advantage of using AOKP if they forked from CyanogenMod? It would be same for HP Touchpad, maybe it would be even behind in update until AKOP merge new commits from CyanogenMod git.
Click to expand...
Click to collapse
Dude, don't start this crap again. If you got beef, take it up via PM or somewhere else that isn't in the thread.
bhanvadia said:
What's advantage of using AOKP if they forked from CyanogenMod? It would be same for HP Touchpad, maybe it would be even behind in update until AKOP merge new commits from CyanogenMod git.
Click to expand...
Click to collapse
There are lots of advantages in using AOKP. Rom Control has so many tweaks. It's really a great build. Only certain things are forked (which you will find in every AOSP variant)
f_padia said:
I don't think that's true, I've compiled an ICS ROM on a 32-bit machine. I think it should work.
Sent from my ZTE-BLADE using XDA App
Click to expand...
Click to collapse
I would love to know how...I tried and had zero success. Switched to 64-bit and I'm good to go.
TMartin said:
I would love to know how...I tried and had zero success. Switched to 64-bit and I'm good to go.
Click to expand...
Click to collapse
Id try if I knew how lol. Don't have patience sometimes, haha. Maybe I'll try it since I got a 32-bit myself.
Sent from my Galaxy Nexus
I get the following:
[email protected]:~$ sudo apt-get install curl 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 g++-multilib lib32z1-dev lib32ncurses5-dev lib32readline5-dev gcc-4.3-multilib g++-4.3-multilib
[sudo] password for user:
Reading package lists... Done
Building dependency tree
Reading state information... Done
gnupg is already the newest version.
zip is already the newest version.
Package sun-java6-jdk is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Package sun-java6-jdk has no installation candidate
[email protected]:~$
worm9110 said:
I get the following:
[email protected]:~$ sudo apt-get install curl 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 g++-multilib lib32z1-dev lib32ncurses5-dev lib32readline5-dev gcc-4.3-multilib g++-4.3-multilib
[sudo] password for user:
Reading package lists... Done
Building dependency tree
Reading state information... Done
gnupg is already the newest version.
zip is already the newest version.
Package sun-java6-jdk is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Package sun-java6-jdk has no installation candidate
[email protected]:~$
Click to expand...
Click to collapse
It is in the partner repo so you need to make sure it is enabled.
If you open Synaptic and go to Tools/Repositories, then Other Software you should be able to check off Canonical Partners and Canonical Partners (Source Code). Reload, close Synaptic, and try again.
To anyone on the Ubuntu 12.04 nightlies, don't even bother trying to compile this, let alone install the dependencies. Build errors up the arse, repo sync errors, and a myriad of other hassles that just aren't worth it. A fresh install of 11.10 fixed everything for me, even following the same exact steps I was doing on 12.04.
Sent from my SCH-I500 using XDA App
Rather than do this in a VM, I'd like to create a second partition on my desktop and just run Ubuntu native.
Any recommendations for partition size? Whenever I create an Ubuntu VM, VirtualBox recommends 8GB, which I generally increase to 24GB (4GB for swap, 4GB for /home, and 16GB for / mounts) but as I've never tried to build from source, I have no idea what the space requirements are.
Please advise.
Went ahead and built it in a VirtualBox VM, on top of an SSD, with the device settings in VBox set to reveal to the guest OS that the host HDD is an SDD. Seems very fast. I configured my VM with a Dynamic drive, and set the max space to 64GB (doubt I'll ever come close to that) with 4GB RAM, 4 virtual CPU cores, and 4GB of swap space.
The current size of the virtual disk after my first build of the tenderloin source is 33GB. I'd say if you were going to set up an actual hard drive partition that 40GB would be a minimum, and probably closer to 64GB would be wise depending on if you want to build two versions simultaneously.
For those who struggle with the initial setup, if you're using Ubuntu 11.10, you won't be able to add sun-java6-jdk via apt-get simply by adding Canonical's partner repos. Sun is no longer making the package available via the partner repo's.
Instead, open a terminal window and do the following:
Code:
cd ~/
wget https://raw.github.com/flexiondotorg/oab-java6/master/oab-java6.sh -O oab-java6.sh
chmod +x oab-java6.sh
sudo ./oab-java6.sh
This downloads a shell script from flexion.org, which is the group that used to provide the sun-java6-jdk packages in Canonical's partner repo's before Canonical decided to block them for what they view as violating copyright law. The script is just a wrapper for steps you could take manually, and if you're curious what it does, before the last line above, you can always do the following to view the contents of the script:
Code:
cat oab-java6.sh
Obviously, use of this script presumes you've read and accepted Oracle's license terms, etc., found here:
http://www.oracle.com/technetwork/java/javase/terms/license/
Hopefully this helps some of our members who are getting stuck with the basics.
TMartin said:
I would love to know how...I tried and had zero success. Switched to 64-bit and I'm good to go.
Click to expand...
Click to collapse
I've been building on a 32-bit VM for some time. Pretty good guide here...
https://www.evernote.com/shard/s102...03022e318722/5b04667c8934a25489b86623805bfb31
I was able to successfully build the image. Can someone point me to how contributing back. How do i send files for review. How to revert back a file to original state if the modifications I made dont work.
If someone could point in the right direction , I would try to contribute something to the community.
suren21 said:
I was able to successfully build the image. Can someone point me to how contributing back. How do i send files for review. How to revert back a file to original state if the modifications I made dont work.
If someone could point in the right direction , I would try to contribute something to the community.
Click to expand...
Click to collapse
http://git-scm.com/documentation
worm9110 said:
I get the following:
[email protected]:~$ sudo apt-get install curl 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 g++-multilib lib32z1-dev lib32ncurses5-dev lib32readline5-dev gcc-4.3-multilib g++-4.3-multilib
[sudo] password for user:
Reading package lists... Done
Building dependency tree
Reading state information... Done
gnupg is already the newest version.
zip is already the newest version.
Package sun-java6-jdk is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Package sun-java6-jdk has no installation candidate
[email protected]:~$
Click to expand...
Click to collapse
I found this in another guide in the sensation forum for compiling cm9, seemed to work for me
sudo add-apt-repository ppa:ferramroberto/java
sudo apt-get update
sudo apt-get install sun-java6-jdk sun-java6-jre sun-java6-plugin
Noob question
I keep getting an error message, not sure how to fix it;
Code:
running: java -Xmx2048m -jar out/host/linux-x86/framework/signapk.jar -w build/target/product/security/testkey.x509.pem build/target/product/security/testkey.pk8 /tmp/tmpamHamk out/target/product/maguro/aokp_maguro-ota-eng.mandrew.zip
Could not create the Java virtual machine.
ERROR: signapk.jar failed: return code 1
make: *** [out/target/product/maguro/aokp_maguro-ota-eng.mandrew.zip] Error 1
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 strictly just a reference guide/tutorial! If you cannot simply follow directions and copy/paste, I'm not going to help you! This is idiot-proof.
Build Environment
Operating system -- Tested on Ubuntu 10.04 (64bit)
Terminal
Decent hardware (minimum of at least a dual core CPU and 4 GB of RAM)
Optimally have an SSD (standard mechanical drives work as well but slow down the process drastically)
Must have required packages for building installed, I will list them further down
Required Packages
Simply copy and paste this in a terminal window:
Code:
sudo apt-get install curl 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 g++-multilib lib32z1-dev lib32ncurses5-dev lib32readline5-dev gcc-4.3-multilib g++-4.3-multilib
Let that install and then proceed.
Getting the Source
Make required directories
Obtain repo binary
Add repo binary to your path
Give repo binary proper permissions
Initialize empty repo
Sync repo
Grab device tree and vendor tree which are not included in the AOKP manifest
Add Mecha to the vendor setup
Alright, so now we're getting there. I have outlined the basics of what we're about to do and broke them down as I know them. This is all pretty much going to be copy/paste so it'll be fairly difficult to screw this up
Copy/paste:
Make directory for repo binary
Code:
mkdir ~/bin
Add directory for repo binary to your path
Code:
PATH=~/bin:$PATH
Download repo binary and place it in the proper directory
Code:
curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
Give the repo binary the proper permissions
Code:
chmod a+x ~/bin/repo
Create directory for where the AOKP repo will be stored and synced
Code:
mkdir ~/aokp
Move to our new AOKP directory
Code:
cd ~/aokp
Initialize the AOKP repo and download the manifest
Code:
repo init -u git://github.com/AOKP/platform_manifest.git -b master
Sync AOKP source
Code:
repo sync -jX
X == Number of cores your CPU has
Grab the device tree needed for mecha
Code:
git clone git://github.com/ProTekk/device_htc_mecha.git -b aokp device/htc/mecha
Grab the vendor tree needed for mecha
Code:
git clone git://github.com/ProTekk/vendor_htc_mecha.git -b ics vendor/htc/mecha
Add mecha to the vendor setup
Code:
gedit vendor/aokp/vendorsetup.sh
Now here you'll have to do some "manual" work. At the end of the file add:
Code:
add_lunch_combo aokp_mecha-userdebug
Save and close the file.
Start the build
This is probably the EASIEST part of all, simply copy/paste this command and walk away!
Code:
. build/envsetup.sh && lunch aokp_mecha-userdebug && make otapackage -jX
Where X == cores per CPU again.
Syncing the repo is dependent upon your Internet connection. It can take anywhere from 30 minutes to several hours to fully sync. Same thing goes for build times. Don't expect this to be short. If you have patience and have no build errors, you'll end up with a flashable zip in ~/aokp/out/target/product/mecha! Happy crack-flashing!
Sorry I'm a noob so this is probably a really dumb question but r u supposed to have ur phone plugged into the computer while doing the terminal on Ubuntu???
Sent from my HTC Mecha using xda premium
Error on the first step
I'm interested in working on this (and hopfully learning a lot (because right now I know almost nothing)) - but on the first step, I get an error related to lib32zl-dev as follows:
[email protected]:~/Android ROMs/For Mecha/Archive$ sudo apt-get install curl 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 g++-multilib lib32z1-dev lib32ncurses5-dev lib32readline5-dev gcc-4.3-multilib g++-4.3-multilib
[sudo] password for tadiv:
Reading package lists... Done
Building dependency tree
Reading state information... Done
gnupg is already the newest version.
zip is already the newest version.
E: Couldn't find package lib32z1-dev
Any suggestions?
Thanks,
Tom
Since we have an official version of ICS now. Does the github have the updated stuffs so we can have a fully working build? I want this as I'm getting tired of sense.
Thanks for posting this ProTekk! I'd like to get this working as well, so maybe some Linux heads can chime in on the errors I'm getting after trying to install the required packages:
Code:
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package lib32readline5-dev is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
However the following packages replace it:
lib32readline-gplv2-dev
Package sun-java6-jdk is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Package 'sun-java6-jdk' has no installation candidate
E: Package 'lib32readline5-dev' has no installation candidate
E: Unable to locate package gcc-4.3-multilib
E: Couldn't find any package by regex 'gcc-4.3-multilib'
E: Unable to locate package g++-4.3-multilib
E: Couldn't find any package by regex 'g++-4.3-multilib'
raphytaffy said:
Thanks for posting this ProTekk! I'd like to get this working as well, so maybe some Linux heads can chime in on the errors I'm getting after trying to install the required packages:
Code:
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package lib32readline5-dev is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
However the following packages replace it:
lib32readline-gplv2-dev
Package sun-java6-jdk is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Package 'sun-java6-jdk' has no installation candidate
E: Package 'lib32readline5-dev' has no installation candidate
E: Unable to locate package gcc-4.3-multilib
E: Couldn't find any package by regex 'gcc-4.3-multilib'
E: Unable to locate package g++-4.3-multilib
E: Couldn't find any package by regex 'g++-4.3-multilib'
Click to expand...
Click to collapse
You don't have jdk 6 installed or any of the kernel tools you need.
Sent from my ADR6400L using Tapatalk 2
raphytaffy said:
Thanks for posting this ProTekk! I'd like to get this working as well, so maybe some Linux heads can chime in on the errors I'm getting after trying to install the required packages:
Code:
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package lib32readline5-dev is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
However the following packages replace it:
lib32readline-gplv2-dev
Package sun-java6-jdk is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Package 'sun-java6-jdk' has no installation candidate
E: Package 'lib32readline5-dev' has no installation candidate
E: Unable to locate package gcc-4.3-multilib
E: Couldn't find any package by regex 'gcc-4.3-multilib'
E: Unable to locate package g++-4.3-multilib
E: Couldn't find any package by regex 'g++-4.3-multilib'
Click to expand...
Click to collapse
I am following this as well, this seems to be an old document because a lot of the links are dead. What I did for the libs is:
(excluding the others that are required)
sudo apt-get install gcc-4.6-multilib g++-4.6-multilib lib32z1-dev lib32ncurses5-dev lib32readline-gplv2-dev
And I plan to grab the Java SDK from Oracle's website.
That is exactly what you have to do prior to building from source.
Sent from my ADR6400L using Tapatalk 2
ViperZ28 said:
I am following this as well, this seems to be an old document because a lot of the links are dead. What I did for the libs is:
(excluding the others that are required)
sudo apt-get install gcc-4.6-multilib g++-4.6-multilib lib32z1-dev lib32ncurses5-dev lib32readline-gplv2-dev
And I plan to grab the Java SDK from Oracle's website.
Click to expand...
Click to collapse
Thanks for this tip. I've installed the updated libs that you suggested, then installed the OpenJDK using:
Code:
sudo apt-get install openjdk-6-jdk
Is OpenJDK okay to use or is there a specific need for Sun Java JDK? I found the link for the JDK here: https://help.ubuntu.com/community/Java
Now that the updated libs and the JDK were installed properly, I ran the command that ProTekk posted minus the previously installed libs:
Code:
sudo apt-get install curl git-core gnupg flex bison gperf libsdl1.2-dev libesd0-dev libwxgtk2.6-dev squashfs-tools build-essential zip curl libncurses5-dev zlib1g-dev pngcrush schedtool g++-multilib
Everything installed properly. Just wanted to check if I'm now ready to build the source or if there's anything else I need to do beforehand.
http://forum.xda-developers.com/showthread.php?t=1920107
Here is a good guide getting java and all setup right to build from source. Of course don't use the git stuff just the java setup.
I don't think his mecha stuff is on there anymore. Could be wrong.
Sent from my Z0mbi3 ADR6425LVW using xda app-developers app
tburns said:
http://forum.xda-developers.com/showthread.php?t=1920107
Here is a good guide getting java and all setup right to build from source. Of course don't use the git stuff just the java setup.
I don't think his mecha stuff is on there anymore. Could be wrong.
Sent from my Z0mbi3 ADR6425LVW using xda app-developers app
Click to expand...
Click to collapse
Getting this error now:
Code:
repo init -u git://github.com/AOKP/platform_manifest.git -b master
error: revision master in manifests not found
raphytaffy said:
Getting this error now:
Code:
repo init -u git://github.com/AOKP/platform_manifest.git -b master
error: revision master in manifests not found
Click to expand...
Click to collapse
it's been updated... the new repo init is:
Code:
repo init -u https://github.com/AOKP/platform_manifest.git -b jb-mr1
The device tree i don't think is there anymore.
You need that to compile.
je2854 said:
it's been updated... the new repo init is:
Code:
repo init -u https://github.com/AOKP/platform_manifest.git -b jb-mr1
Click to expand...
Click to collapse
this is the updated specifics for the mecha
Code:
git clone git://github.com/CoolSilver/device_htc_mecha -b aokp device/htc/mecha
this is the updated vendor for the mecha
Code:
git clone git://github.com/ProTekk/vendor_htc_mecha.git -b ics vendor/htc/mecha
after the HARD WORK finding the updates everything else compiles correctly.
It took a LONG time to figure out the new links....
je2854 said:
this is the updated specifics for the mecha
Code:
git clone git://github.com/CoolSilver/device_htc_mecha -b aokp device/htc/mecha
this is the updated vendor for the mecha
Code:
git clone git://github.com/ProTekk/vendor_htc_mecha.git -b ics vendor/htc/mecha
after the HARD WORK finding the updates everything else compiles correctly.
It took a LONG time to figure out the new links....
Click to expand...
Click to collapse
Nice.
Also found these last night
https://github.com/ThePlayground
Some more stuff to play with..
Working?
So, after much digging and coding ... screenshot?
Does it run, do you have phone and data...?
Code:
including device/asus/grouper/vendorsetup.sh
including device/asus/tilapia/vendorsetup.sh
including device/generic/armv7-a-neon/vendorsetup.sh
including device/generic/armv7-a/vendorsetup.sh
including device/generic/mips/vendorsetup.sh
including device/generic/x86/vendorsetup.sh
including device/htc/mecha/vendorsetup.sh
including device/lge/mako/vendorsetup.sh
including device/samsung/maguro/vendorsetup.sh
including device/samsung/manta/vendorsetup.sh
including device/samsung/toroplus/vendorsetup.sh
including device/samsung/toro/vendorsetup.sh
including device/ti/panda/vendorsetup.sh
including vendor/aokp/vendorsetup.sh
including vendor/htc/mecha/vendorsetup.sh
including sdk/bash_completion/adb.bash
ls: cannot access vendor/aokp/products/mecha.mk: No such file or directory
build/core/product_config.mk:234: *** Can not locate config makefile for product "aokp_mecha". Stop.
** Don't have a product spec for: 'aokp_mecha'
** Do you have the right repo manifest?
This is what I get after attempting the actual build.
Also this is what I get with the following command.
Code:
~/aokp$ git clone git://github.com/ProTekk/vendor_htc_mecha.git -b ics vendor/htc/mecha
Cloning into 'vendor/htc/mecha'...
fatal: remote error:
Repository not found.
But I changed ProTekk to CoolSilver and it appeared to work fine. Anyone still attempting this that might be able to help?
I'm not sure what level of involvement any of you are interested in, but I'm currently working on porting CM9 to the Thunderbolt with sources at https://github.com/jblack248. Of course, it's not incorporated into the AOKP build process although that shouldn't be too difficult since it's probably just an additional makefile (an assumption).
Currently the RIL is being difficult with mobile data, but calling and SMS work using CM's HTC RIL. It's not ready for a release just yet, but I thought I'd give a shout to all of you since I see you're trying to build from source. Hopefully I can help in some way; the Thunderbolt forum could use some positive excitement.
The gitt link a few posts above is for the jellybean branch hence the -b jb for the AOKP git clone. Try -b ics
Ill take a look at the cm9 stuff tomorrow. Need to partition more HD space to Linux.
onedementedsmurf said:
Code:
including device/asus/grouper/vendorsetup.sh
including device/asus/tilapia/vendorsetup.sh
including device/generic/armv7-a-neon/vendorsetup.sh
including device/generic/armv7-a/vendorsetup.sh
including device/generic/mips/vendorsetup.sh
including device/generic/x86/vendorsetup.sh
including device/htc/mecha/vendorsetup.sh
including device/lge/mako/vendorsetup.sh
including device/samsung/maguro/vendorsetup.sh
including device/samsung/manta/vendorsetup.sh
including device/samsung/toroplus/vendorsetup.sh
including device/samsung/toro/vendorsetup.sh
including device/ti/panda/vendorsetup.sh
including vendor/aokp/vendorsetup.sh
including vendor/htc/mecha/vendorsetup.sh
including sdk/bash_completion/adb.bash
ls: cannot access vendor/aokp/products/mecha.mk: No such file or directory
build/core/product_config.mk:234: *** Can not locate config makefile for product "aokp_mecha". Stop.
** Don't have a product spec for: 'aokp_mecha'
** Do you have the right repo manifest?
This is what I get after attempting the actual build.
Also this is what I get with the following command.
Code:
~/aokp$ git clone git://github.com/ProTekk/vendor_htc_mecha.git -b ics vendor/htc/mecha
Cloning into 'vendor/htc/mecha'...
fatal: remote error:
Repository not found.
But I changed ProTekk to CoolSilver and it appeared to work fine. Anyone still attempting this that might be able to help?
Click to expand...
Click to collapse
I have been trying to figure this out as well. Any help would be appreciated.
I'm opening this thread as i myself came across certain problems during the compiling of Cyanogenmod7 for the ZTE Blade from Source. I'm not a developer of any sort and want to make this clear. I'm opening this thread in the General section as all can comment.
This thread may help people who want to make their own CM7 builds. This thread is based on Cyanogenmod's guide on compiling from source. I've added some extra commands for people who do not understand CM's guide very well as i didn't find it to be very transparent.
Firstly,this guide is written for the people who want to compile CM7 on a linux platform,especially Ubuntu as i'm writing this based on Ubuntu 11.10.
Secondly,this guide may not be perfect as i do not have extensive knowledge on Ubuntu. So,any recommendations will be highly appreciated.
Thirdly,thanks go to the entire CyanogenMod team without whom the blade wouldn't be what it is now. Also to Wbaw,for making the TPT procedure. And to all the Blade developers out there who're spending their precious time to help us.
Here we go..
Hardware Requirements:
- A minimum dual core pc, the more ram the better
- A working wifi connection or network connection
- Linux Operating System. Either 32-bit or 64-bit will work
Any time during the process if you need to type as Root,give the command,
Code:
sudo -i
A.Installing a few programs first.
The terminal is where we will be doing most work.
Open terminal and type the code under the given programs.
1.Python,rar,curl,git.
Code:
sudo apt-get install python rar curl git
2.Java
Setting up java is very important. You can download java from Ubuntu Software centre or through the terminal.
On Ubuntu's 10.10 and 11.10 variants,enabling the repository is important.
Code:
sudo add-apt-repository "deb http://archive.canonical.com/ maverick partner"
After that,type the following.
Code:
sudo apt-get update
You may want to repeat previous commands again. To do so you can simply type "!!".
After that,type,
Code:
sudo apt-get install sun-java6-jdk
Certain people may face the problem in the form of an error sayingackage is not available or has another installation candidate. If you get an error like this, add this and try again,
Code:
sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"
Code:
sudo apt-get update
Code:
sudo apt-get install sun-java6-jdk
For us to compile Gingerbread,we need a Java version of "1.6.x"
To check the version,type,
Code:
java -version
We're done setting up Java.
3.Android SDK.
Download the Android SDK from here- http://developer.android.com/sdk/index.html
Extract it to your home folder.
Navigate to android-sdk-linux/tools and open "android" and run it in terminal.
Install the platform files. The most important ones that we need are the Android SDK Tools and The Android 2.3.3 Files.
B.Setting up UDEV.
Type,
Code:
sudo gedit /etc/udev/rules.d/11-android.rules
and paste the following after editing your user name in the code,
Code:
SUBSYSTEMS=="usb", ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="1353", MODE="0660", OWNER="<your user name>" #Normal
SUBSYSTEMS=="usb", ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="1351", MODE="0660", OWNER="<your user name>" #Debug
SUBSYSTEMS=="usb", ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="1354", MODE="0660", OWNER="<your user name>" #Recovery
Type the following to change permissions to read.
Code:
chmod 0644 /etc/udev/rules.d/11-android.rules
Any extra info regarding UDEV can be found here- http://wiki.cyanogenmod.com/wiki/Udev
We have setup UDEV.
C.Installing the build packages.
For 32bit and 64bit systems,
Code:
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
For 64bit systems only,
Code:
sudo apt-get install g++-multilib lib32z1-dev lib32ncurses5-dev lib32readline-gplv2-dev gcc-multilib g++-multilib
D.Setting up some directories in the environment.
Type the following to create them,
Code:
mkdir -p ~/bin
Code:
mkdir -p ~/android/system
E.Installing the repositories.
Type the following to make executable the repo function.
Code:
curl https://raw.github.com/android/tools_repo/master/repo > ~/bin/repo
Code:
chmod a+x ~/bin/repo
You may need to reboot for the changes to take place.(Recommended)
To initialize the repositories,type the following (Note this will take very long and you will be asked for your name and email ID),
Code:
cd ~/android/system/
Code:
repo init -u git://github.com/CyanogenMod/android.git -b gingerbread --repo-url=git://github.com/android/tools_repo.git
Code:
repo sync
F.Copying of the proprietary files from a working Blade having Cyanogenmod7 installed on it.
Connect the device and ensure ADB is working.You can go here (http://wiki.cyanogenmod.com/wiki/ADB) if you have issues. Type the following for copying,
Code:
cd ~/android/system/device/zte/blade/
Code:
./extract-files.sh
G.Downloading of ROM Manager
Code:
~/android/system/vendor/cyanogen/get-rommanager
H.Building Cyanogenmod
Check for updates first,
Code:
cd ~/android/system/
Code:
repo sync
Configure your build and compile using,
Code:
. build/envsetup.sh && brunch blade
Copy your .zip file from ~/android/system/out/target/product/blade/update.cm-XXXXX-signed.zip to the root of the SD card.
Thats it,you're done.
You can flash the zip file from CWM or any other recovery or use an emulator.
You can also download Gapps and use that.
EDIT:I'm busy with my exams this whole month and maybe the next. So will try to update it and rectify any mistake ASAP. I haven't added the integration of the Eclipse ADT and will do so when i'm free again.
There is a guide on the CyanogenMod wiki here: http://wiki.cyanogenmod.com/index.php?title=Compile_CyanogenMod_for_Blade
wbaw said:
There is a guide on the CyanogenMod wiki here: http://wiki.cyanogenmod.com/index.php?title=Compile_CyanogenMod_for_Blade
Click to expand...
Click to collapse
I tried following the same and got stuck up on several occasions. It isn't very noob friendly. Thats's why i opened one here hoping it helps others like me.
Sent from my Blade using XDA app
The wiki guide seems perfect for me. It was written by & for technical people used to working with Linux though. Maybe you could help to make it more noob friendly.
As it's a wiki you should be able to create an account & submit changes if you want to make it better, although the site is really slow/down for me at the moment so I'm not sure what the rules are.
You can use apt-get install to install more than one package, you could combine all those apt-get install lines into one. Some people may also need to install more packages, the full list is on the wiki.
Also, if you have a multi-core cpu, you can make it compile a bit faster by using the -j option on brunch, -j2 for dual core, -j4 for quad core.
wbaw said:
The wiki guide seems perfect for me. It was written by & for technical people used to working with Linux though. Maybe you could help to make it more noob friendly.
As it's a wiki you should be able to create an account & submit changes if you want to make it better, although the site is really slow/down for me at the moment so I'm not sure what the rules are.
You can use apt-get install to install more than one package, you could combine all those apt-get install lines into one. Some people may also need to install more packages, the full list is on the wiki.
Also, if you have a multi-core cpu, you can make it compile a bit faster by using the -j option on brunch, -j2 for dual core, -j4 for quad core.
Click to expand...
Click to collapse
Ok. Thanks a lot. Will include the other packages and the -j option as soon as possible.
Edit:Have added the all in one apt command. Will add other packages tomorrow.
Sent from my Blade using XDA app
wbaw said:
Some people may also need to install more packages, the full list is on the wiki.
Click to expand...
Click to collapse
What packages are yet to be put here? I just saw the wiki. Except for the Eclipse IDE,i've put everything else here.
Sent from my Blade using XDA app
karthiknr said:
What packages are yet to be put here? I just saw the wiki. Except for the Eclipse IDE,i've put everything else here.
Sent from my Blade using XDA app
Click to expand...
Click to collapse
From the wiki...
For 32-bit & 64-bit systems:
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:
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:
add-apt-repository "deb http://archive.canonical.com/ maverick partner"
Click to expand...
Click to collapse
wbaw said:
From the wiki...
Click to expand...
Click to collapse
Its already there. The adding of the repository for java is under Java itself.
Sent from my Blade using XDA app
you still missed most of the required packages, fine if you already have them installed, but not everybody will.
wbaw said:
you still missed most of the required packages, fine if you already have them installed, but not everybody will.
Click to expand...
Click to collapse
It would be better for me to understand if you specified the packages.
I think only Eclipse is missing. Nothing else.
Sent from my Blade using XDA app
karthiknr said:
It would be better for me to understand if you specified the packages.
I think only Eclipse is missing. Nothing else.
Sent from my Blade using XDA app
Click to expand...
Click to collapse
I already did, here they are again...
For 32-bit & 64-bit systems:
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:
g++-multilib lib32z1-dev lib32ncurses5-dev lib32readline5-dev gcc-4.3-multilib g++-4.3-multilib
wbaw said:
I already did, here they are again...
For 32-bit & 64-bit systems:
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:
g++-multilib lib32z1-dev lib32ncurses5-dev lib32readline5-dev gcc-4.3-multilib g++-4.3-multilib
Click to expand...
Click to collapse
They're already there under the Building Packages heading.
Sent from my Blade using XDA app
wbaw said:
I already did, here they are again...
For 32-bit & 64-bit systems:
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:
g++-multilib lib32z1-dev lib32ncurses5-dev lib32readline5-dev gcc-4.3-multilib g++-4.3-multilib
Click to expand...
Click to collapse
He already has those listed, just later on in the post. They are in scrolling code boxes, so its not obvious they are all there at first. Might be better to put them at the start, and then you just install everything at once.
karthiknr said:
For 32bit and 64bit systems,
Code:
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
For 64bit systems only,
Code:
sudo apt-get install g++-multilib lib32z1-dev lib32ncurses5-dev lib32readline-gplv2-dev gcc-multilib g++-multilib
Click to expand...
Click to collapse
Amphoras said:
He already has those listed, just later on in the post. They are in scrolling code boxes, so its not obvious they are all there at first. Might be better to put them at the start, and then you just install everything at once.
Click to expand...
Click to collapse
I listed them later as they won't work if java isn't there. So i've put everything in order.
Sent from my Blade using XDA app
Thanks a lot for this should really help me . I have a quick question though, how much space should I need to successfully compile? I have Ubuntu 11.10 64 bit installed alongside windows via the application method and the default size was 18GB. I've read on the android developers that you need 25GB for a single build so how much do you recommend? Also is installing it via the application method ok or should I create a new partition on my HDD? Thank you once again.
youngsta2010 said:
Thanks a lot for this should really help me . I have a quick question though, how much space should I need to successfully compile? I have Ubuntu 11.10 64 bit installed alongside windows via the application method and the default size was 18GB. I've read on the android developers that you need 25GB for a single build so how much do you recommend? Also is installing it via the application method ok or should I create a new partition on my HDD? Thank you once again.
Click to expand...
Click to collapse
You need at least 25 to 30 GB. I don't recommend the application method of installing Ubuntu as you may have problems in the future. You better install Ubuntu alongside Windows. You don't have to make a new partiton for this. Ubuntu installer itself will choose a logical partition with the most space and will allow you to choose how much space you are willing to give for it.
Thanks I think that's what I did already, ran the wubi installer from windows, choose drive then choose how much space. I just went with the default which was 18GB. Then when I reboot I get the grub loader and choose windows or Ubuntu. I'm going to put one of my external drives in my desktop and install it to that. Thank you for the help.
youngsta2010 said:
Thanks I think that's what I did already, ran the wubi installer from windows, choose drive then choose how much space. I just went with the default which was 18GB. Then when I reboot I get the grub loader and choose windows or Ubuntu. I'm going to put one of my external drives in my desktop and install it to that. Thank you for the help.
Click to expand...
Click to collapse
Wubi is different. Boot with ubuntu on a disc or a usb stick and then install it alongside windows.
Sent from my Blade using XDA app
Ah ok, I'll do that. Thanks for the help man and the guide, it's appreciated.
karthiknr can I ask for your help again basically I have everything set up but I'm having trouble with adb and my phone. When I do
Code:
adb devices
without root I get
Code:
List of devices attached
???????????? no permissions
But if I do it with root I get
Code:
No command 'adb' found, did you mean:
I've set up udev according to your instructions and everything else went well until this. Thanks in advance.
Ok so this is a guide that me and my friend made for compiling ROMs for our LG-P350 Now, this is pretty much universal and can be used for general development
This is the stuff you will need :
Ubuntu-can be found on the Ubuntu website http://www.ubuntu.com/start-download?distro=desktop&bits=64&release=lts (this is a direct link to the Ubuntu 12.04 64-bit version)
Python (included)
GNU Make
Java Development Kit (JDK) 6
Git
Before you can do anything you need to install Ubuntu. You can go with newer versions but i still think that 10.10 is best and this guide is adapted to it. You can install it like dual boot or use Wubi (Windows Ubuntu Installer). However if you choose Wubi there is a good chance that you won't have enough storage, so that's not recommended.Those who want to dual-boot check out this post http://forum.xda-developers.com/showpost.php?p=34669858&postcount=26
NOTE: You can do this in a virtual machine (for example VM Ware and Virtual box) but it will be a lot slower unless you have a VERY strong CPU and a LOT of RAM.
Generally Python is not needed since it's already in Ubuntu. However if you want to install it separately here's how:
First of all open the terminal. Now copy/paste these codes (one by one) and execute them:
Code:
sudo apt-get install build-essential gcc
cd Downloads
wget http://www.python.org/ftp/python/2.5.6/Python-2.5.6.tgz
tar -xvzf Python-2.5.6.tgz
cd Python-2.5.6
./configure --prefix=/usr/local/python2.5
make
make test
sudo make install ([B]NOTE[/B]: [I]You will be asked for your password, enter it and press enter[/I])
sudo ln -s /usr/local/python2.5/bin/python /usr/bin/python2.5
Now you need Sun JDK 6. Same procedure as with Python:
Code:
sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"
sudo apt-get update
sudo apt-get install sun-java6-jdk
For those who get package error try these:
Code:
sudo add-apt-repository ppa:sun-java-community-team/sun-java6
sudo apt-get update
sudo apt-get install sun-java6-jdk
sudo update-java-alternatives -s java6-jdk
Now that JDK is installed it's time for GNU Make:
First of all download GNU Make from link given. Download version 3.82
Now extract the downloaded file to your Home directory.
Go to Home directory and change the name of GNU Make To make
Now open the Terminal and type the following codes
Link: http://ftp.gnu.org/gnu/make/
Code:
cd make
./configure
sudo make install
Now make is installed.
Next, we are going to install the dependencies:
FOR UBUNTU 10.10
Codes to type in terminal :
Code:
sudo apt-get install git-core gnupg flex bison gperf build-essential \ zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs \ x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev \ libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown \ libxml2-utils xsltproc
export USE_CCACHE=1
If that method didn't work then try this:
You use the same commands BUT the first one is:
sudo apt-get install git-core gnupg flex bison gperf build-essential
Now it should download some stuff. When its done you need to do the same for the rest in the right order.
NOTE: Since I don't remember the right order i will just put the commands how they should be written if you get error read what's missing and put that in first.
Here are the rest of the lines:
Code:
sudo apt-get install zip curl
sudo apt-get install zlib1g-dev
sudo apt-get install libc6-dev
sudo apt-get install lib32ncurses5-dev
sudo apt-get install ia32-libs
sudo apt-get install x11proto-core-dev
sudo apt-get install libx11-dev
sudo apt-get install lib32readline5-dev
sudo apt-get install lib32z-dev
sudo apt-get install libgl1-mesa-dev g++-multilib
sudo apt-get install mingw32
sudo apt-get install tofrodos python-markdown
sudo apt-get install libxml2-utils
sudo apt-get install xsltproc
FOR UBUNTU 12.04
Code:
sudo apt-get install git-core gnupg flex bison gperf build-essential \
zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \
libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \
libgl1-mesa-dev g++-multilib mingw32 openjdk-6-jdk tofrodos \
python-markdown libxml2-utils xsltproc zlib1g-dev:i386
sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
Now for the Android SDK, ADB and ADB path:
1. SDK (Software-Development-Kit) :
Go to this link and download the Android SDK for Linux:
http://developer.android.com/sdk/index.html
After downloading it, extract it to the Home folder. You can probably extract where you want and change all the steps below to to fit your set up, but I like putting it in Home folder.
When you have extracted it in the Home folder change the name of the folder of android-sdk-linux to sdk.
Then open the Terminal and run these codes:
Code:
cd ~/sdk/tools/
./android sdk
When you run this, a window will pop up. For this you only need "Android SDK Tools" and "Android SDK Platform-tools". Just check these two and install them.
2. ADB (Android-Debug-Bridge):
Run this command to see if your ADB works. You have to have your android device connected in debugging mode.
Run these codes in the Terminal :
Code:
cd ~/sdk/platform-tools ./adb devices
When you entered the codes above, you should see something similar to this:
List of devices attached 0123456789ABCDEF device
NOTE: If you see output like given bellow we need to give the device permissions. Don't worry I had this too when I set my computer up for the first time.
List of devices attached ???????????? no permissions
Here is how we fix it:
Open the Terminal and type this:
Code:
gksudo gedit /etc/udev/rules.d/51-android.rules
After you've entered it, a window will pop up that will be blank. Now add the following commands and save it.
Code:
SUBSYSTEM=="usb", ATTRS{idVendor}=="1004", MODE="0666"
Now save this File And follow the given codes
After you've entered those codes type these codes in too.
Code:
sudo service udev restart
sudo adb kill-server
sudo adb start-server
After you've entered those codes, restart Ubuntu.
Now to see if the problem is solved type these codes in:
Code:
cd ~/sdk/platform-tools ./adb devices
If everything is ok a output similar to this will be shown:
List of devices attached 0123456789ABCDEF device
Now to add the ADB path to system, so you don't have to cd to the SDK folder every time you want to use ADB:
So, first open up .bashrc with these codes:
Code:
sudo gedit ~/.bashrc
A window will pop up and there will be some text there. Scroll down to the bottom and add these lines:
Code:
export PATH=${PATH}:~/sdk/tools
export PATH=${PATH}:~/sdk/platform-tools
After you've done that, save it and reboot Ubuntu.
If everything is ok, you will get some output when you type the following codes in the terminal.
Code:
./adb devices
OR
Code:
adb shell
If you see:
Code:
adb not found[CODE]
Then it means you've done something wrong and ADB is not configured.
Next is GIT:
Open the browser and download git from given link
[URL]http://git-core.googlecode.com/files/git-1.7.9.6.tar.gz[/URL]
Extract GIT-1.7.9.6.tar.gz to your home directory
Rename the folder you extracted to from GIT-1.7.9.6.tar.gz to git
After you've done that, enter the following codes in the Terminal
[CODE]sudo aptitude build-dep git-core
sudo apt-get install zlib1g-dev
cd git
./configure
make
sudo make install
NOTE: If it doesn't work then install from this link:
http://kibyegon.wordpress.com/2010/0...u-lucid-10-04/
If the commands from above are not working then try this:
Code:
sudo apt-get install git-core
sudo apt-get install git
git
If it worked it should show this:
Code:
usage: git [--version] [--exec-path[=GIT_EXEC_PATH]] [--html-path]
[-p|--paginate|--no-pager] [--no-replace-objects]
[--bare] [--git-dir=GIT_DIR] [--work-tree=GIT_WORK_TREE]
[--help] COMMAND [ARGS]
The most commonly used git commands are:
add Add file contents to the index
bisect Find by binary search the change that introduced a bug
branch List, create, or delete branches
checkout Checkout a branch or paths to the working tree
clone Clone a repository into a new directory
commit Record changes to the repository
diff Show changes between commits, commit and working tree, etc
fetch Download objects and refs from another repository
grep Print lines matching a pattern
init Create an empty git repository or reinitialize an existing one
log Show commit logs
merge Join two or more development histories together
mv Move or rename a file, a directory, or a symlink
pull Fetch from and merge with another repository or a local branch
push Update remote refs along with associated objects
rebase Forward-port local commits to the updated upstream head
reset Reset current HEAD to the specified state
rm Remove files from the working tree and from the index
show Show various types of objects
status Show the working tree status
tag Create, list, delete or verify a tag object signed with GPG
See 'git help COMMAND' for more information on a specific command.
Now we will download the Repo and get the source code:
Codes to type in the Terminal :
Code:
mkdir ~/bin
PATH=~/bin:$PATH
sudo apt-get install curl
curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
chmod a+x ~/bin/repo
mkdir source
cd source
Ok so up to this part its mostly universal. However after this you need to sync up sources for your device. This will probably take a long time depending on your internet speed since the source is very big (also it will take up a lot of drive space: 14-30GB). After that you should build.
How to build
First you will need to get proprietary drivers from your device.
Connect your device via USB and enter the following commands (from the root of your source repository):
Code:
cd device/xxx/xxx where x is the path to your device
./extract-files.sh
cd ../../..
NOTE: Some developers can include these files in the source itself or can make them available for download from their Github page. Check that out with your developer for more info.
And start the build:
Code:
. build/envsetup.sh xxx
NOTE:Here x also varies since its unique for every device model
Now Android is building. You may need to wait a long time (depending on your hardware-mainly CPU and RAM for example I have a quad core 2.92Ghz CPU and 6GB of HyperX DDR3 ram and it took me about 10min for CM7 and about 20-30 min for CM9).Once it's done you should get this message:
Code:
Package complete:xxx.zip
That is your flashable .zip file you install from recovery.
Credits: Many thanks go to Keyur Maru who helped me learn how to develop and for making the base of this guide.
Reference: http://source.android.com/source/downloading.html
Very good tutorial for beginner
sangosnip69 said:
Very good tutorial for beginner
Click to expand...
Click to collapse
Thanks we tried our best since this is supposed to boost our dev base for our LG
Definitely one to try at home!
Sent from my GT-I9100 using xda premium
Wow 10min is real fast!! I recently tried CM9 directly from one of the Dev's forked repo and after about 4hours of build I got some build error! I need to get a better computer soon if I plan to get my hands real dirty! And if I may I have few suggestions - please mention that it will take a while to download the full repo from google sources else beginners may end up thinking something is wrong(which I did since it took me one full day to sync everything) and that it needs atleast 20-30GB disk space too..(Coz not everyone has Ubuntu as the only OS, I have three in my lapi!!)
A very good guide on the whole for a beginner!!!
pranks1989 said:
Wow 10min is real fast!! I recently tried CM9 directly from one of the Dev's forked repo and after about 4hours of build I got some build error! I need to get a better computer soon if I plan to get my hands real dirty! And if I may I have few suggestions - please mention that it will take a while to download the full repo from google sources else beginners may end up thinking something is wrong(which I did since it took me one full day to sync everything) and that it needs atleast 20-30GB disk space too..(Coz not everyone has Ubuntu as the only OS, I have three in my lapi!!)
A very good guide on the whole for a beginner!!!
Click to expand...
Click to collapse
Very true a great in depth and very informative tutorial for noobs like i was this would have helped me a lot.... Great work
btw pranks1989 i can help you with compiling for defy.... I used to compile roms from eppy's and quarx2k github and never got a error once it else onece eppy pinted out the mistake i was doing.... just send me a pm of your errors and i will try help
Great start for me!
You have been thanked!
Great start for me!
What would the procedure be if you want to create a rom that you can flash via Odin or Heimdall on a Mac client?
The guide I've been looking for ever since I had my first Android device (actually, my Optimus Me is my first Android device)...
Thanks for this great guide. I will try it today.
I already compiled a Rom, it took me 40 min. AMD 8 Core 3,1 MHz and 16 GB DDR3
But when i try a different device i always get errors, i hope your Guide will get me in to it.
serendipityguy said:
You have been thanked!
Great start for me!
What would the procedure be if you want to create a rom that you can flash via Odin or Heimdall on a Mac client?
Click to expand...
Click to collapse
I don't know but it's surely different for odin(I'm not sure that you can).And I don't know on mac either since I use ubuntu and windows. You can look up info on this on the official Android dev website.
Sent from my Optimus Me using xda premium
nerot said:
I don't know but it's surely different for odin(I'm not sure that you can).And I don't know on mac either since I use ubuntu and windows. You can look up info on this on the official Android dev website.
Sent from my Optimus Me using xda premium
Click to expand...
Click to collapse
Odlicno objasnjeno za pocetnike. Svaka cast
Good Beginners Guide. Thank you.
But 90% of it can also be found here:
http://source.android.com/source/initializing.html
This is what i used to build android for the pandaboard a few weeks ago.
And then I have a few questions.
1.
Why do you compile git when you can also download it from apt-sources? Imho this is just confusing for beginners.
2.
Where do you use git in your tutorial?
3.
Didn't you forget lunch and make at the very end of your tutorial?
". build/envsetup.sh" only sets up the environment, imho
(see also here: http://source.android.com/source/building.html)
nerot said:
First you will need to get proprietary drivers from your device.
Connect your device via USB and enter the following commands (from the root of your source repository):
Code:
cd device/xxx/xxx where x is the path to your device
./extract-files.sh
cd ../../..
Click to expand...
Click to collapse
How do I find out what the path is from my device?
I would add the option to install Ubuntu in a VM. Both VMWare player and VirtualBox are free and well supported. This way one can actually create some pre-packaged images with which one can start development right away. In fact I've already made two of them a year ago (one for Froyo and one for Gingerbread):
http://forum.xda-developers.com/showthread.php?t=881845
http://forum.xda-developers.com/showthread.php?t=1022407
One might also make on for ICS (for that Ubuntu 12.04 is also good, and since VMWare Player is free one could use that instead of VirtualBox, as VMWP has more user-friendly features)
If I had a nickle for every time I've seen a thread like this, I would have... a nickle.
Thank you from the bottom of my /dev/hda1
sztupy said:
I would add the option to install Ubuntu in a VM. Both VMWare player and VirtualBox are free and well supported. This way one can actually create some pre-packaged images with which one can start development right away. In fact I've already made two of them a year ago (one for Froyo and one for Gingerbread):
http://forum.xda-developers.com/showthread.php?t=881845
http://forum.xda-developers.com/showthread.php?t=1022407
One might also make on for ICS (for that Ubuntu 12.04 is also good, and since VMWare Player is free one could use that instead of VirtualBox, as VMWP has more user-friendly features)
Click to expand...
Click to collapse
True however unless you have a LOT of ram and a hexa-core CPU compilation under a vm is significantly slower and that's why I didn't add it.But the procedure is the same anyway.
Sent from my Optimus Me using xda premium
Gigadroid said:
How do I find out what the path is from my device?
Click to expand...
Click to collapse
Google is your friend
Sent from my Optimus Me using xda premium
TheBadFish said:
Good Beginners Guide. Thank you.
But 90% of it can also be found here:
http://source.android.com/source/initializing.html
This is what i used to build android for the pandaboard a few weeks ago.
And then I have a few questions.
1.
Why do you compile git when you can also download it from apt-sources? Imho this is just confusing for beginners.
2.
Where do you use git in your tutorial?
3.
Didn't you forget lunch and make at the very end of your tutorial?
". build/envsetup.sh" only sets up the environment, imho
(see also here: http://source.android.com/source/building.html)
Click to expand...
Click to collapse
1.Idk I found this thing simple as well
2.I will review it later since I'm on my phone now and its 00:13 here
3.I don't think it's necessary since I use the same procedure for my rom compilation. I will add it tough just in case someone gets an error.Thanks for the tip.
Sent from my Optimus Me using xda premium
I'll try this on my six core seeing as it would make a perfect devving machine.
just following
Just posting here to follow. I will have to try this tonight. This looks awesome!
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.