HTC Rezound cherry pick - Android Q&A, Help & Troubleshooting

I need help with this error while cherry picking -
[email protected]:~/cm9/packages/apps/Settings$ git fetch http://review.cyanogenmod.com/CyanogenMod/android_packages_apps_Settings refs/changes/55/17555/1 && git cherry-pick FETCH_HEAD
From http://review.cyanogenmod.com/CyanogenMod/android_packages_apps_Settings
* branch refs/changes/55/17555/1 -> FETCH_HEAD
error: could not apply fe56ef0... Bottom statusbar (2/2)
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
any help would be appreciated

Related

[HOWTO][STEPBYSTEP] Build Rom From Source

I put this tutorial together in an attempt to create the most complete and easy to follow guide for building a ROM from source. Including steps for adding apps to your build, changing toolchains and more... The entire guide uses a single Linux terminal window from start to finish in an attempt to keep everything as user friendly as possible. Please feel free to PM me suggestions on where changes need be made.
If you find this guide helpful please press the Thanks button on my posts and rate the thread a 5.​
Prerequisites​1. This guide is for 64-bit, 32-bit machines will not work for building newer android versions, Ubuntu 12+ based machine, I run Linux Mint 15. Follow links at end of OP for alternate directions
Windows Users: Setup Ubuntu in Virtualbox Instructions
2. You need to know the location for your device, vendor, and kernel repos. This can be found fairly easily in the forum for your phone. Also take note of your phones codename.
For example the Optimus G is the e970 and its device repo can be found here https://github.com/CyanogenMod/android_device_lge_e970
Note*All terminal commands will be in Code boxes*
Part 1 - Setting Up The Build Environment​
Install Java JDK
Code:
sudo add-apt-repository ppa:webupd8team/java
Code:
sudo apt-get update
Lollipop Roms:
Code:
sudo apt-get install oracle-java7-installer
Kit-Kat Roms:
Code:
sudo apt-get install oracle-java6-installer
Installing required packages
Ubuntu 14 based:
Code:
sudo apt-get install bison g++-multilib git gperf libxml2-utils
Ubuntu 12 based:
Code:
sudo apt-get install git 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 tofrodos \
python-markdown libxml2-utils xsltproc zlib1g-dev:i386
Code:
sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
Set-up ccache This Is Optional
Code:
nano ~/.bashrc
Add these two lines
export USE_CCACHE=1
export CCACHE_DIR=<path-to-your-cache-directory>
Click to expand...
Click to collapse
Save and exit by pressing ctrl+x, selecting Y then enter.
Install ADB & Fastboot This is optional, as you may already have them working. If not, they're a good thing to have.
Code:
sudo add-apt-repository ppa:nilarimogard/webupd8
Code:
sudo apt-get update
Code:
sudo apt-get install android-tools-adb android-tools-fastboot
Setup Repo
Code:
mkdir ~/bin
Code:
PATH=~/bin:$PATH
Code:
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
Code:
chmod a+x ~/bin/repo
Create working directory
Code:
mkdir [I][B]working-dir[/B][/I]
(Replace working-dir with whatever you'd like to call it, ie. aokp)
Code:
cd working-dir
Part 2 - Get Source​ROM Source
Choose which custom rom you are going to build and initialize the repo for it
Code:
repo init -u [I][B]chosen-manifest[/B][/I]
(Replace chosen-manifest appropriately from the list below)
AOKP: https://github.com/AOKP/platform_manifest.git -b Branch
Cyanogenmod: https://github.com/CyanogenMod/android.git -b Branch
CarbonDev: https://github.com/CarbonDev/android.git -b Branch
Liquid Smooth: https://github.com/LiquidSmooth/android.git -b Branch
Replace Branch with appropriate branch from github repo ie cm-10.2 or jb3
If unsure which branch click the link above to locate appropriate branch
Click to expand...
Click to collapse
Device Source
Go HERE and follow instructions on obtaining your device specific repos.
Sync the repo
Code:
repo sync
This will take a while as it downloads all the required source
Part 3 - Preparing Source​Before you're ready to build your source needs to be configured to include your device. This preparation varies slightly for different custom Roms.
Go HERE and follow instructions for your ROM choice
Part 4 - Edit Source​This Is Optional​This is where you can make edits to the source before building to suit your needs.
Go HERE and follow the instructions to tweak source
Part 5 - Building ROM​
Code:
. build/envsetup.sh
Code:
lunch
Locate your device on the list and enter appropriate number
Code:
make -j[B][I]# [/I][/B]otapackage
Replace # with the number of cores in your system (Is the number of jobs that will be done at once, more cores means more jobs)
Build Errors​
This can be hard, especially if you're new to programming languages and building. Meet Google your new best friend.
Here is a basic overview to get you started, and if no more at least googling in the right direction.
Finished​When it's done you're rom will be in working-dir/out/target/product/codename/
Enjoy.
I used these sites while making this guide
http://source.android.com/source/initializing.html
http://www.webupd8.org/2012/11/oracle-sun-java-6-installer-available.html
http://www.webupd8.org/2012/08/install-adb-and-fastboot-android-tools.html
Device Source​ As stated in the prerequisites you will need a device specific Device repo, Vendor repo, and Kernel repo. You can find links to them in the threads for your devices. Also take note of your device codename ie Nexus 4 is mako, Optimus G is gee.
There are two options for adding in device specific source, local manifest and git clone.
Local manifest syncs the device repos each time a repo sync is run. This is probably the better choice if you don't make edits and rely on the repo's maintainer for changes.
Git clone is a one time download of a specific repo to the directory indicated and is not affected by repo sync. This is probably the better choice if you make edits to the device source as they won't be over written or cause conflicts when syncing.
The local path for your phone's repos be device/manufacturer/codename, vendor/manufacturer/codename, kernel/manufacturer/codename regardless of method chosen.
Git Clone
Code:
git clone [B][COLOR="DarkOrange"]repo[/COLOR][/B] -b [B][COLOR="Magenta"]branch[/COLOR][/B] [B][COLOR=Lime]destination-path[/COLOR][/B]
here is and example for the vendor repo for the E973 from TeamPlaceHolder
git clone https://github.com/TeamPlaceholder/proprietary_vendor_lge_gee -b cm-10.2 vendor/lge/gee
Click to expand...
Click to collapse
Local Manifest
Code:
mkdir .repo/local_manifests
Code:
touch .repo/local_manifests/local_manifest.xml
Code:
nano .repo/local_manifests/local_manifest.xml
Add these lines replacing path, name and revision according to the repo's you are using.
This example is for E973 using TeamPlaceHolder repos, adding all device/vendor/kernel repos.
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<remote name="gh"
fetch="git://github.com/" />
<project path="kernel/lge/gee" name="TeamPlaceholder/android_kernel_lge_gee" remote="gh" revision="cm-10.2-merge" />
<project path="device/lge/geeb" name="TeamPlaceholder/android_device_lge_geeb" remote="gh" revision="cm-10.2" />
<project path="device/lge/gee-common" name="TeamPlaceholder/android_device_lge_gee-common" remote="gh" revision="cm-10.2" />
<project path="vendor/lge/gee" name="TeamPlaceholder/proprietary_vendor_lge_gee" remote="gh" revision="cm-10.2" />
</manifest>
Click to expand...
Click to collapse
Preparing Source​ROM specific setup instructions prior to building. All source should be downloaded already.
Manufacturer and codename MUST be updated to reflect your device.
Cyanogenmod
Add this line to vendor/cm/vendorsetup.sh
cm_device-userdebug
Click to expand...
Click to collapse
device - The codename for your device. ie. mako for the Nexus 4
Code:
touch [COLOR="Purple"]path-to-device-tree[/COLOR]/cm.mk
path-to-device-tree - Example device/lge/mako for the Nexus 4
Code:
nano [COLOR="Purple"]path-to-device-tree[/COLOR]/cm.mk
Add these lines **This example is for the Nexus 4 Mako, change mako references to reflect your device**
## Specify phone tech before including full_phone
$(call inherit-product, vendor/cm/config/gsm.mk)
# Inherit some common CM stuff.
$(call inherit-product, vendor/cm/config/common_full_phone.mk)
# Enhanced NFC
$(call inherit-product, vendor/cm/config/nfc_enhanced.mk)
# Inherit device configuration
$(call inherit-product, device/lge/mako/full_mako.mk)
## Device identifier. This must come after all inclusions
PRODUCT_DEVICE := mako
PRODUCT_NAME := cm_mako
PRODUCT_BRAND := google
PRODUCT_MODEL := Nexus 4
PRODUCT_MANUFACTURER := LGE
# Enable Torch
PRODUCT_PACKAGES += Torch
Click to expand...
Click to collapse
Save and exit by pressing ctrl+x, selecting Y then enter.
Now you're ready to build! Go back to the OP and complete the guide from where you left off.
AOSP
AOSP requires a prebuilt kernel for your device. HERE is a guide for building a kernel if you do not have a prebuilt kernel for your device
The rest coming soon...
Liquid Smooth
Coming soon...
AOKP
Code:
nano vendor/aokp/vendorsetup.sh
Add this line
add_lunch_combo aokp_geeb-userdebug
Click to expand...
Click to collapse
Save and exit by pressing ctrl+x, selecting Y then enter.
Code:
touch vendor/aokp/products/geeb.mk
Code:
nano vendor/aokp/products/geeb.mk
Add these lines
If building for CDMA network change gsm.mk to cdma.mk
# Inherit AOSP device configuration for geeb
$(call inherit-product, device/lge/geeb/full_geeb.mk)
# Inherit AOKP common bits
$(call inherit-product, vendor/aokp/configs/common.mk)
# Inherit GSM common stuff
$(call inherit-product, vendor/aokp/configs/gsm.mk)
# Setup device specific product configuration
PRODUCT_NAME := aokp_geeb
PRODUCT_BRAND := google
PRODUCT_DEVICE := geeb
PRODUCT_MODEL := Optimus G
PRODUCT_MANUFACTURER := LGE
Click to expand...
Click to collapse
Save and exit by pressing ctrl+x, selecting Y then enter.
Code:
nano vendor/aokp/products/AndroidProducts.mk
Add this line
$(LOCAL_DIR)/geeb.mk \
Click to expand...
Click to collapse
Save and exit by pressing ctrl+x, selecting Y then enter.
Now you're ready to build! Go back to the OP and complete the guide from where you left off.
CarbonDev
Coming soon...
Now you're ready to build! Go back to the OP and complete the guide from where you left off.
Edit Source​
If you plan to edit the device/kernel repos for your phone you should either have used git clone to obtain your repos, or created forks of the repos to your own Github account to use in your local manifest. This way you can still do a repo sync to update the source without overwriting your changes or creating conflicts.
That being said these are the items disscused so far:
Adding Prebuilt APK's to Build
Adding Apps Via Source Code
Changing Toolchain
Cherry Picking Commits
Fixing Conflicts From Cherry Picks
Syncing Repo with Upstream Repo
Syncing Your Local Changes to Your Github Repo
Click to expand...
Click to collapse
Adding Prebuilt APK's to Build
Open the device folder for your phone. ie device/lge/geeb
Add these lines to android.mk
include $(CLEAR_VARS)
LOCAL_MODULE := Name
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_SUFFIX := .apk
LOCAL_MODULE_CLASS := APPS
LOCAL_CERTIFICATE := PRESIGNED
include $(BUILD_PREBUILT)
Click to expand...
Click to collapse
Name - Any name you want to asign to this apk to call for it in the build process
**NOTE** LOCAL_SRC_FILES is the location of the apk file. Above assumes it is in the root of your device folder**
Then edit your device.mk to call for your newly assigned apk
PRODUCT_PACKAGES += \
name
Click to expand...
Click to collapse
If the apk you want to add requires additional files to be added along with it, also add this
PRODUCT_COPY_FILES += \
Path-to-additional-file:Destination-path-in-finished-build
Click to expand...
Click to collapse
Path-to-additional-file - Where the file is located in your device tree that you need to add to your build
Destination-path-in-finished-build - Where in the final rom structure this file needs to be
Here is an example for adding required libs for Terminal Emulator to the geeb device tree:
PRODUCT_COPY_FILES += \
device/lge/geeb/libjackpal-androidterm3.so:system/lib/libjackpal-androidterm3.so \
device/lge/geeb/libjackpal-androidterm4.so:system/lib/libjackpal-androidterm4.so
Click to expand...
Click to collapse
Adding Apps Via Source Code
Adding apps to your build using source code is easier then adding prebuilt apks.
Example given is using Gallery2(I realize this is included with builds by default, just using it as an example)
Copy or clone your app's source code to working-dir/packages/apps in its own folder. ie. aokp/packages/Gallery2
Go into the source code folder for your app and open Android.mk
Look for this line LOCAL_PACKAGE_NAME , This will tell you what the call name for your app is
LOCAL_AAPT_FLAGS := --auto-add-overlay
LOCAL_PACKAGE_NAME := Gallery2
LOCAL_OVERRIDES_PACKAGES := Gallery Gallery3D GalleryNew3D
Click to expand...
Click to collapse
Then open device.mk from your phones device tree and add the call name for the app.
Add these lines:
PRODUCT_PACKAGES += \
Gallery2
Click to expand...
Click to collapse
Changing Toolchain
Download a new prebuilt toolchain that you wish to use
Example: Linaro 4.7 toolchain
Copy unziped prebuilt toolchain folder to working-folder/prebuilt/gcc/linux-x86/arm
Open build/envsetup.sh
Find this block of code:
# The gcc toolchain does not exists for windows/cygwin. In this case, do not reference it.
export ANDROID_EABI_TOOLCHAIN=
local ARCH=$(get_build_var TARGET_ARCH)
case $ARCH in
x86) toolchaindir=x86/i686-linux-android-$targetgccversion/bin
;;
arm) toolchaindir=arm/android-toolchain-eabi/bin
;;
mips) toolchaindir=mips/mipsel-linux-android-$targetgccversion/bin
;;
*)
echo "Can't find toolchain for unknown architecture: $ARCH"
toolchaindir=xxxxxxxxx
;;
esac
if [ -d "$gccprebuiltdir/$toolchaindir" ]; then
export ANDROID_EABI_TOOLCHAIN=$gccprebuiltdir/$toolchaindir
fi
unset ARM_EABI_TOOLCHAIN ARM_EABI_TOOLCHAIN_PATH
case $ARCH in
arm)
toolchaindir=arm/android-toolchain-eabi/bin
if [ -d "$gccprebuiltdir/$toolchaindir" ]; then
export ARM_EABI_TOOLCHAIN="$gccprebuiltdir/$toolchaindir"
ARM_EABI_TOOLCHAIN_PATH=":$gccprebuiltdir/$toolchaindir"
fi
Click to expand...
Click to collapse
Replace bold text with your toolchain folder name
The following group of instructions are for making edits to your own repo. Before using any of the info below PLEASE create your own GitHub account and Fork the repo you'd like to edit. Then clone YOUR forked repo from YOUR github account and make edits to it.
If that didn't make sence then you may want to refrain from using this for the time being.
Cherry Picking Commits
Move to the directory for the git repo you wish to add the commit to. ie kernel/lge/geeb
Code:
cd path-to-git-repo
Add the remote repo that holds the commit - This only needs to be done the first time
Code:
git remote add [COLOR="Red"]name[/COLOR] [COLOR="SeaGreen"]url[/COLOR]
name - a name you choose to identify that remote repo
url - the location of the repo ie. https://github.com/TeamPlaceholder/android_kernel_lge_gee.git
Fetch the repo
Code:
git fetch [COLOR="Red"]name[/COLOR]
Cherry pick commit
Code:
git cherry-pick [COLOR="DarkOrange"]commit-id[/COLOR]
commit-id - An unique id given to every commit. It's a long alphanumeric id shown on the commit page of your repo. ie. cc3581ff8692b517ddda8baad73a5d110568f0da
Fixing Conflicts From Cherry Picks
Somtimes when you cherry pick a commit to your repo you'll have a conflict. This is just saying that it did not see what it expected to see when adding the commit to a certain file. To fix a conflict and commit the cherry pick do as follows:
Determine which file(s) contain conflicts.
Code:
git status
This will show you edits waiting to be commited from the cherry-pick. The files shown in green accepted the changes without conflict, the files listed in red contain conflicts that need to be addressed.
Open the file in red
Code:
gedit [COLOR="DarkOrange"]Path-To-File-In-Red[/COLOR]
Press crtl+f to bring up a find window and search for head. Conflicts will be shown in the file using the following structure
<<<<<Head
<Original Code>
=======
<Code from Cherry-pick>
>>>>>Name Of Cherry Pick Commit
Click to expand...
Click to collapse
Compare the original code to the code from the cherry pick and see if anything needs to be saved. If so, merge what needs to be saved into the code from the cherry pick. Then delete the original code and the <<<< ===== >>>>> lines(everything shown in red above). In the end you should be left only with the code from the cherry pick, plus anything you may have merged to it.
Search again for 'head' to see if there are any further conflicts within that file. If there is use the same method to resolve them, if there is not save and exit the file.
Add the newly edited file to the pending commit
Code:
git add [COLOR="DarkOrange"]Path-To-File-In-Red[/COLOR]
Check for any more files that need to be addressed
Code:
git status
If you still have files in red, repeat the process above for those files.
Once all files from git status are shown in green you are ready to commit the cherry pick.
Code:
git commit
Save and exit the commit log by pressing ctrl+x
Done. That cherry pick is now commited to your repo, you can move on to the next cherry pick you wish to add.
Sync Forked Repo with Upstream(Parent) Repo
If you would like to commit to your forked repo all the commits made upstream since you forked(or previously sync'd)
Add the upstream repo - This only needs to be done the first time
Code:
git remote add [COLOR="Red"]name[/COLOR] [COLOR="SeaGreen"]url[/COLOR]
name - a name you choose to identify that remote repo
url - the location of the repo ie. https://github.com/TeamPlaceholder/android_kernel_lge_gee.git
Fetch the upstream repo
Code:
git fetch [COLOR="Red"]name[/COLOR]
Merge upstream commits
Code:
git merge [COLOR="Red"]name[/COLOR]/[COLOR="DarkOrange"]branch[/COLOR]
branch - The branch from the upstream repo you are syncing up
Syncing Your Local Changes to Your Github Repo
Check to ensure you have everything in order to push your changes
Code:
git status
If there are no conflicts/changes that need to be commited you are ready to push. If everything is good it will simply state your are x number of commits ahead
Push your commits to your GitHub account
Code:
git push
Enter your github user name then password. All your local commits will then be applied to your github repo.
More to Come...
Build Errors
Build Errors​
This is way to broad a subject to cover in a post, but here are some steps to take to help get you building again.
When your build output stops without clearly saying it's finished or directing you to the created zip file, it Failed.
Sometimes it will stop with the error right at the end of the output, but not very often. Most of the time you must look up through the build output in order to locate the actual error. Sometimes they can be buried very far up, depending on the number of jobs being built.
Here is an example of what you are looking for:
hardware/qcom/display-caf/libgralloc/framebuffer.cpp:116:39: error: 'MSMFB_DISPLAY_COMMIT' was not declared in this scope
Click to expand...
Click to collapse
File having the error
Line in the file where the error occurs
Error that has occured
The quickest way to locate the errors in the build output is the search 'ctrl+shfit+F' for ': error:'
Once you have located your error(s), you can begin troubleshooting to get past them. Start by opening the File having the error and going to the Line in the file where the error occurs. Though without programing knowledge you may not make much sense of it, it's always good to start familiarizing yourself with the code. If you're not able to correct the issue this is where google will come in very handy.
Quite often if you search simply for the Error that has occured exactly as it appears, you'll find its an error that has been encountered many times over and solutions are availible within the first couple of results in a google search.
Should all else fail Post a question and see what suggestions come up.
Here are a few common build errors that I have come across and some solutions for them, again this is by no means a one stop for build erros. Google...Google...Then try to post your error and see who can help if your still stuck. The more you fix by yourself the more it feels like YOUR build.
make: *** No rule to make target `Example_File'. Stop.
Click to expand...
Click to collapse
It can't find the file in question. This can be a incorrect path in a makefile, a missing file or a typo.
last one
Finally usefull guide! not only theory. Thank you very much!
Nice job. Just one thing: when using our sources, the cm-10.2-merge is the best kernel branch. Msm-3.10 is our bleeding edge and hopefully will be fully working soon (just got it to build today, so we'll see). The update branch is broken though. Let me know if you want to contribute to our Git so I can add you to the team, or if you have any suggestions on how to make our rom and kernel better.
Sent from my LG-LS970 using xda app-developers app
xboxfanj said:
Nice job. Just one thing: when using our sources, the cm-10.2-merge is the best kernel branch. Msm-3.10 is our bleeding edge and hopefully will be fully working soon (just got it to build today, so we'll see). The update branch is broken though. Let me know if you want to contribute to our Git so I can add you to the team, or if you have any suggestions on how to make our rom and kernel better.
Sent from my LG-LS970 using xda app-developers app
Click to expand...
Click to collapse
Thanks for the info, updated quide to reflect.
i have a cherry mobile burst phone its running ics,i a generic phone a clone i dont know where it came from i mean the build i cant find a source or a build repo , i really want to build a rom for my phone cause it seems ics is not compatible for the phone..it only has 512 ram and 1ghz dualcore processor..it could run smoothly i think with gingerbread but i cant find a tutorial to donwgrade it to gingerbread it seems impossible because of lack of support for the device and it came up with ics..i just dont know what to do any more my computer is linux mint 13 2gb ram 1ghz amd anthlon 2 ,70gb hd..i cant build a rom to this computer..
Changing Toolchain
Download a new prebuilt toolchain that you wish to use
Example: Linaro 4.7 toolchain
Copy unziped prebuilt toolchain folder to working-folder/prebuilt/gcc/linux-x86/arm
Open build/envsetup.sh
Find this block of code:
Quote:
# The gcc toolchain does not exists for windows/cygwin. In this case, do not reference it.
export ANDROID_EABI_TOOLCHAIN=
local ARCH=$(get_build_var TARGET_ARCH)
case $ARCH in
x86) toolchaindir=x86/i686-linux-android-$targetgccversion/bin
;;
arm) toolchaindir=arm/android-toolchain-eabi/bin
;;
mips) toolchaindir=mips/mipsel-linux-android-$targetgccversion/bin
;;
*)
echo "Can't find toolchain for unknown architecture: $ARCH"
toolchaindir=xxxxxxxxx
;;
esac
if [ -d "$gccprebuiltdir/$toolchaindir" ]; then
export ANDROID_EABI_TOOLCHAIN=$gccprebuiltdir/$toolchaindir
fi
unset ARM_EABI_TOOLCHAIN ARM_EABI_TOOLCHAIN_PATH
case $ARCH in
arm)
toolchaindir=arm/android-toolchain-eabi/bin
if [ -d "$gccprebuiltdir/$toolchaindir" ]; then
export ARM_EABI_TOOLCHAIN="$gccprebuiltdir/$toolchaindir"
ARM_EABI_TOOLCHAIN_PATH=":$gccprebuiltdir/$toolchaindir"
fi
Replace bold text with your toolchain folder name
Click to expand...
Click to collapse
Click to expand...
Click to collapse
I did what you said and i keep getting this error
"/arm-eabi-gcc: No such file or directory
make[4]: *** [scripts/mod/empty.o] Error 1
make[3]: *** [scripts/mod] Error 2
make[2]: *** [scripts] Error 2
make[2]: *** Waiting for unfinished jobs...."
Here's what my envsetup.sh looks like
# The gcc toolchain does not exists for windows/cygwin. In this case, do not reference it.
export ANDROID_EABI_TOOLCHAIN=
local ARCH=$(get_build_var TARGET_ARCH)
case $ARCH in
x86) toolchaindir=x86/i686-linux-android-$targetgccversion/bin
;;
arm) toolchaindir=arm/arm-eabi-linaro-4.6.2/bin
;;
mips) toolchaindir=mips/mipsel-linux-android-$targetgccversion/bin
;;
*)
echo "Can't find toolchain for unknown architecture: $ARCH"
toolchaindir=xxxxxxxxx
;;
esac
if [ -d "$gccprebuiltdir/$toolchaindir" ]; then
export ANDROID_EABI_TOOLCHAIN=$gccprebuiltdir/$toolchaindir
fi
unset ARM_EABI_TOOLCHAIN ARM_EABI_TOOLCHAIN_PATH
case $ARCH in
arm)
toolchaindir=arm/arm-eabi-linaro-4.6.2/bin
if [ -d "$gccprebuiltdir/$toolchaindir" ]; then
export ARM_EABI_TOOLCHAIN="$gccprebuiltdir/$toolchaindir"
ARM_EABI_TOOLCHAIN_PATH=":$gccprebuiltdir/$toolchaindir"
fi
Click to expand...
Click to collapse
my linaro folder is called "arm-eabi-linaro-4.6.2" and it is placed under "/prebuilts/gcc/linux-x86/arm/arm-eabi-linaro-4.6.2"
what am i doing wrong?
thanks!
ryukiri said:
I did what you said and i keep getting this error
"/arm-eabi-gcc: No such file or directory
make[4]: *** [scripts/mod/empty.o] Error 1
make[3]: *** [scripts/mod] Error 2
make[2]: *** [scripts] Error 2
make[2]: *** Waiting for unfinished jobs...."
Click to expand...
Click to collapse
Where did you get your linaro toolchain from?
go into your linaro directory/bin do you see arm-eabi**** files?
Sounds like it's only the arm-linux-androideabi*** files in there.
Get the prebuilt toolchains right from Linaro It will take a little looking around to find the 4.6. The prebuilt toolchains for each release are in Components>Android>Toolchain Most of them are 4.7 and 4.8 so like I said, it may take some looking around.
I believe(though not 100%) the arm-eabi are used for the kernel, the arm-linux-androideabi for the rom.
The top line you change in envsetup.sh is for the rom toolchain, second place you change is for the kernel toolchain. You can use two different toolchains here. I use sabermod 4.9 for my rom and linaro 4.7 for the kernel
Haze028 said:
Where did you get your linaro toolchain from?
go into your linaro directory/bin do you see arm-eabi**** files?
Sounds like it's only the arm-linux-androideabi*** files in there.
Get the prebuilt toolchains right from Linaro It will take a little looking around to find the 4.6. The prebuilt toolchains for each release are in Components>Android>Toolchain Most of them are 4.7 and 4.8 so like I said, it may take some looking around.
I believe(though not 100%) the arm-eabi are used for the kernel, the arm-linux-androideabi for the rom.
The top line you change in envsetup.sh is for the rom toolchain, second place you change is for the kernel toolchain. You can use two different toolchains here. I use sabermod 4.9 for my rom and linaro 4.7 for the kernel
Click to expand...
Click to collapse
hmm, i forgot where i got it from, i might have gotten it by following this http://forum.xda-developers.com/showthread.php?t=1988315
Can I use 4.7 or 4.8 though?
Ok so inside my linaro directory/bin, i see many arm-eabi**** files (attached screenshot)
Do you think you can link to me the exact toolchains you used so I can start with something that works and then start trying different ones later?
ryukiri said:
Can I use 4.7 or 4.8 though?
Do you think you can link to me the exact toolchains you used so I can start with something that works and then start trying different ones later?
Click to expand...
Click to collapse
I would stick with 4.7 toolchain. 4.6 is quite old, and 4.8 doesn't seem to play very nice. (i'm probably too noob to get it working)
This is the linaro 4.7 toolchain I use.
Hopefully that'll help ya get going.
Haze028 said:
I would stick with 4.7 toolchain. 4.6 is quite old, and 4.8 doesn't seem to play very nice. (i'm probably too noob to get it working)
This is the linaro 4.7 toolchain I use.
Hopefully that'll help ya get going.
Click to expand...
Click to collapse
alright thanks. Ill test it out and report back later
I got the same error.. D:
"/arm-eabi-gcc: No such file or directory
make[4]: *** [scripts/mod/empty.o] Error 1
make[3]: *** [scripts/mod] Error 2
make[2]: *** [scripts] Error 2
make[2]: *** Waiting for unfinished jobs...."
# The gcc toolchain does not exists for windows/cygwin. In this case, do not reference it.
export ANDROID_EABI_TOOLCHAIN=
local ARCH=$(get_build_var TARGET_ARCH)
case $ARCH in
x86) toolchaindir=x86/i686-linux-android-$targetgccversion/bin
;;
arm) toolchaindir=arm/android-toolchain-eabi/bin
;;
mips) toolchaindir=mips/mipsel-linux-android-$targetgccversion/bin
;;
*)
echo "Can't find toolchain for unknown architecture: $ARCH"
toolchaindir=xxxxxxxxx
;;
esac
if [ -d "$gccprebuiltdir/$toolchaindir" ]; then
export ANDROID_EABI_TOOLCHAIN=$gccprebuiltdir/$toolchaindir
fi
unset ARM_EABI_TOOLCHAIN ARM_EABI_TOOLCHAIN_PATH
case $ARCH in
arm)
toolchaindir=arm/android-toolchain-eabi/bin
if [ -d "$gccprebuiltdir/$toolchaindir" ]; then
export ARM_EABI_TOOLCHAIN="$gccprebuiltdir/$toolchaindir"
ARM_EABI_TOOLCHAIN_PATH=":$gccprebuiltdir/$toolchaindir"
fi
Click to expand...
Click to collapse
EDIT: after some research, i found out that all the files in my bin folder are 32 bit executable files. So i believe i need a 64 bit toolchain. Do you know where I could find one?
EDIT2: I found that for linux they need to install "ia32-libs" to run 32bit executables source. But the thing is, I'm using a mac...
EDIT3: nevermind, i got it to work. thanks anyway
aokp build error
Can you point me in the right direction to fix this error http://pastebin.com/GZmteWUu.
Recon Freak said:
Can you point me in the right direction to fix this error http://pastebin.com/GZmteWUu.
Click to expand...
Click to collapse
http://forum.xda-developers.com/showpost.php?p=47947423&postcount=175
Try this....
CarbonDev
Coming soon...
.
Click to expand...
Click to collapse
Thanks for the guide so far. Is there an eta for Carbon roms as I'm struggling to get my to build. Or AOSP?
Haze, to change tool chains, you can also set TARGET_TOOLS_PREFIX ?= prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.8-linaro/bin/arm-linux-androideabi- in boardconfig (sub in the right path obviously).
Sent from my Optimus G using xda app-developers app

[Q] nexus 5 building cm problem

im using this
http://wiki.cyanogenmod.org/w/Build_for_hammerhead#Install_the_SDK
i have reached the step where i have to type $ breakfast hammerhead
i have tryed a couple of time but it keeps saying
Code:
[email protected]:~/android/system$ breakfast hammerhead
including vendor/cm/vendorsetup.sh
ls: cannot access device/*/hammerhead/cm.mk: No such file or directory
build/core/product_config.mk:233: *** Can not locate config makefile for product "cm_hammerhead". Stop.
Device hammerhead not found. Attempting to retrieve device repository from CyanogenMod Github (http://github.com/CyanogenMod).
Found repository: android_device_lge_hammerhead
Default revision: cm-10.2
Checking branch info
Default revision cm-10.2 not found in android_device_lge_hammerhead. Bailing.
Branches found:
cm-11.0
stable/cm-11.0
Use the ROOMSERVICE_BRANCHES environment variable to specify a list of fallback branches.
ls: cannot access device/*/hammerhead/cm.mk: No such file or directory
build/core/product_config.mk:233: *** Can not locate config makefile for product "cm_hammerhead". Stop.
** Don't have a product spec for: 'cm_hammerhead'
** Do you have the right repo manifest?
[email protected]:~/android/system$
i have no idea what to do now, i have just finished the repo sync!

[HELP]an error accoured while building/breakfasting jfltexx for liquidsmooth

hello developers,
I need some help,
while I was building liquidsmooth (using croot, brunch jfltexx)
i got this error :-
Code:
[email protected]:~/liquid$ brunch jfltexx
build/core/product_config.mk:234: *** Can not locate config makefile for product "liquid_jfltexx". Stop.
Device jfltexx not found. Attempting to retrieve device repository from LiquidSmooth-Devices Github (http://github.com/LiquidSmooth-Devices).
Found repository: android_device_samsung_jfltexx
Checking branch info
Calculated revision: mm6.0
Default revision: android-6.0.1_r3
Default revision android-6.0.1_r3 not found in android_device_samsung_jfltexx. Bailing.
Branches found:
lollipop
Use the ROOMSERVICE_BRANCHES environment variable to specify a list of fallback branches.
build/core/product_config.mk:234: *** Can not locate config makefile for product "liquid_jfltexx". Stop.
** Don't have a product spec for: 'liquid_jfltexx'
** Do you have the right repo manifest?
No such item in brunch menu. Try 'breakfast'
so then I did an breakfast jfltexx, then same error appeared :-
Code:
[email protected]:~/liquid$ breakfast jfltexx
build/core/product_config.mk:234: *** Can not locate config makefile for product "liquid_jfltexx". Stop.
Device jfltexx not found. Attempting to retrieve device repository from LiquidSmooth-Devices Github (http://github.com/LiquidSmooth-Devund:
lollipop
Use the ROOMSERVICE_BRANCHES environment variable to specify a list of fallback branches.
build/core/product_config.mk:234: *** Can not locate config makefile for product "liquid_jfltexx". Stop.
** Don't have a product spec for: 'liquid_jfltexx'
** Do you have the right repo manifest?
No such item in brunch menu. Try 'breakfast'
I have
*synced the repo
*add the device's work tree from CM in lquid/.repo/manifest.xml
so I have done everything right,
but I got the error
so,CAN ANYONE PLEASE HELP ME??
I REALLY need to get lquidsmooth built and running good in our device:crying:
EDIT:-
some thing new happen, as I decided to take things at my own matter, turns out I even didn't download the device tree but I now downloaded, but a brand new error a encountered and its somewhat based on the previous error?????
anyways, here it is
Code:
[email protected]:~/liquid$ breakfast jfltexx
\build/core/product_config.mk:239: *** _nic.PRODUCTS.[[device/samsung/jfltexx/liquid.mk]]: "frameworks/native/build/phone-xxhdpi-2048-dalvik-heap.mk" does not exist. Stop.
Device jfltexx not found. Attempting to retrieve device repository from LiquidSmooth-Devices Github (http://github.com/LiquidSmooth-Devices).
Found repository: android_device_samsung_jfltexx
Checking branch info
Calculated revision: mm6.0
Default revision: android-6.0.1_r3
Default revision android-6.0.1_r3 not found in android_device_samsung_jfltexx. Bailing.
Branches found:
lollipop
Use the ROOMSERVICE_BRANCHES environment variable to specify a list of fallback branches.
build/core/product_config.mk:239: *** _nic.PRODUCTS.[[device/samsung/jfltexx/liquid.mk]]: "frameworks/native/build/phone-xxhdpi-2048-dalvik-heap.mk" does not exist. Stop.
** Don't have a product spec for: 'liquid_jfltexx'
** Do you have the right repo manifest?
Anyone, please?
here is the link, i just uploaded if it has something to do the manifest.xml(default.xml)
Sent from my GT-I9505 using Tapatalk
vbajs said:
Anyone, please?
here is the link, i just uploaded if it has something to do the manifest.xml(default.xml)
Sent from my GT-I9505 using Tapatalk
Click to expand...
Click to collapse
vbajs said:
hello developers,
I need some help,
while I was building liquidsmooth (using croot, brunch jfltexx)
i got this error :-
Code:
[email protected]:~/liquid$ brunch jfltexx
build/core/product_config.mk:234: *** Can not locate config makefile for product "liquid_jfltexx". Stop.
Device jfltexx not found. Attempting to retrieve device repository from LiquidSmooth-Devices Github (http://github.com/LiquidSmooth-Devices).
Found repository: android_device_samsung_jfltexx
Checking branch info
Calculated revision: mm6.0
Default revision: android-6.0.1_r3
Default revision android-6.0.1_r3 not found in android_device_samsung_jfltexx. Bailing.
Branches found:
lollipop
Use the ROOMSERVICE_BRANCHES environment variable to specify a list of fallback branches.
build/core/product_config.mk:234: *** Can not locate config makefile for product "liquid_jfltexx". Stop.
** Don't have a product spec for: 'liquid_jfltexx'
** Do you have the right repo manifest?
No such item in brunch menu. Try 'breakfast'
so then I did an breakfast jfltexx, then same error appeared :-
Code:
[email protected]:~/liquid$ breakfast jfltexx
build/core/product_config.mk:234: *** Can not locate config makefile for product "liquid_jfltexx". Stop.
Device jfltexx not found. Attempting to retrieve device repository from LiquidSmooth-Devices Github (http://github.com/LiquidSmooth-Devund:
lollipop
Use the ROOMSERVICE_BRANCHES environment variable to specify a list of fallback branches.
build/core/product_config.mk:234: *** Can not locate config makefile for product "liquid_jfltexx". Stop.
** Don't have a product spec for: 'liquid_jfltexx'
** Do you have the right repo manifest?
No such item in brunch menu. Try 'breakfast'
I have
*synced the repo
*add the device's work tree from CM in lquid/.repo/manifest.xml
so I have done everything right,
but I got the error
so,CAN ANYONE PLEASE HELP ME??
I REALLY need to get lquidsmooth built and running good in our device:crying:
EDIT:-
some thing new happen, as I decided to take things at my own matter, turns out I even didn't download the device tree but I now downloaded, but a brand new error a encountered and its somewhat based on the previous error?????
anyways, here it is
Code:
[email protected]:~/liquid$ breakfast jfltexx
\build/core/product_config.mk:239: *** _nic.PRODUCTS.[[device/samsung/jfltexx/liquid.mk]]: "frameworks/native/build/phone-xxhdpi-2048-dalvik-heap.mk" does not exist. Stop.
Device jfltexx not found. Attempting to retrieve device repository from LiquidSmooth-Devices Github (http://github.com/LiquidSmooth-Devices).
Found repository: android_device_samsung_jfltexx
Checking branch info
Calculated revision: mm6.0
Default revision: android-6.0.1_r3
Default revision android-6.0.1_r3 not found in android_device_samsung_jfltexx. Bailing.
Branches found:
lollipop
Use the ROOMSERVICE_BRANCHES environment variable to specify a list of fallback branches.
build/core/product_config.mk:239: *** _nic.PRODUCTS.[[device/samsung/jfltexx/liquid.mk]]: "frameworks/native/build/phone-xxhdpi-2048-dalvik-heap.mk" does not exist. Stop.
** Don't have a product spec for: 'liquid_jfltexx'
** Do you have the right repo manifest?
Click to expand...
Click to collapse
What guide are you following?
vbajs said:
Code:
Checking branch info
Calculated revision: mm6.0
Default revision: android-6.0.1_r3
Default revision android-6.0.1_r3 not found in android_device_samsung_jfltexx. Bailing.
Branches found:
lollipop
Use the ROOMSERVICE_BRANCHES environment variable to specify a list of fallback branches.
build/core/product_config.mk:234: *** Can not locate config makefile for product "liquid_jfltexx". Stop.
Click to expand...
Click to collapse
I know that this thread is a couple months old, but I wanted to answer this questions for others who may stumble across this and wonder what the answer was. There are two ways to solve this issue:
(Taken from my wordpress site, where I answered this question before. Here is the link for the full article: https://thealaskalinuxuser.wordpres...samsung-galaxy-s4-t-mobile-jfltetmo-sgh-m919/ )
"... the problem is that the specified device does not have a github branch that is the correct branch. In this case (The case of my article), it is looking for a branch named mm6.0, but it would possibly take a branch named android-6.0.1_r43. The repo command then lists the available branches. The latest branch available for this github repository of this device is lp5.1.
Now the question is what do we do about it? Well, we have several options, but one that I decided to explore today was to use the ROOMSERVICE_BRANCHES variable and choose another branch, as we see here:
Code:
[email protected]:~/Documents/projects/phones/compile/slimroms6$ export ROOMSERVICE_BRANCHES=lp5.1
[email protected]:~/Documents/projects/phones/compile/slimroms6$ breakfast
including vendor/slim/vendorsetup.sh
You’re building on Linux
Breakfast menu… pick a combo:
(—EDITED FOR SPACE—)
46. slim_jfltetmo-userdebug 97. slim_vs985-userdebug
(—EDITED FOR SPACE—)
… and don’t forget the bacon!
Which would you like? [aosp_arm-eng] 46
build/core/product_config.mk:234: *** Can not locate config makefile for product “slim_jfltetmo”. Stop.
Device jfltetmo not found. Attempting to retrieve device repository from SlimRoms Github (http://github.com/SlimRoms).
Found repository: device_samsung_jfltetmo
Checking branch info
Calculated revision: mm6.0
Default revision: android-6.0.1_r43
Using fallback branch: lp5.1
Adding dependency: SlimRoms/device_samsung_jfltetmo -> device/samsung/jfltetmo
Using branch lp5.1 for SlimRoms/device_samsung_jfltetmo
Syncing repository to retrieve project.
Fetching project SlimRoms/device_samsung_jfltetmo
remote: Counting objects: 81, done.
remote: Total 81 (delta 0), reused 0 (delta 0), pack-reused 81
From git://github.com/SlimRoms/device_samsung_jfltetmo
* [new branch] jb4.2 -> github/jb4.2
* [new branch] jb4.3 -> github/jb4.3
* [new branch] kk4.4 -> github/kk4.4
* [new branch] lp5.0 -> github/lp5.0
* [new branch] lp5.1 -> github/lp5.1
Fetching projects: 100% (1/1), done.
Repository synced!
Looking for dependencies
Adding dependencies to manifest
Adding dependency: SlimRoms/device_samsung_qcom-common -> device/samsung/qcom-common
Adding dependency: SlimRoms/hardware_samsung -> hardware/samsung
Adding dependency: SlimRoms/device_samsung_jf-common -> device/samsung/jf-common
Adding dependency: CyanogenMod/android_kernel_samsung_jf -> kernel/samsung/jf
Syncing dependencies
Fetching project Slim
So, the user above @vbajs, needed to choose a "fallback" branch if the actual branch needed did not exist, in that case, the user could have typed:
Code:
$ . build/envsetup.sh
$ export ROOMSERVICE_BRANCHES=lollipop
$ brunch jfltexx
And then the old "lollipop" branch (listed under Branches Found in the first output) would be downloaded to be used. This does not mean, however, that the build will be successful or work when done by using this older branch. It simply allows you to sync something that was not on the default branch. This tool is pretty handy if you want to try other branches of something without editing your roomservice files, or as in this case, older branches that need updating to a newer branch for testing purposes.
The second option would be to manually download the needed files and place them directly in the appropriate folders. This is effective, but tedious.
Hope that helps the next guy or gal!
Good luck!

Building CM13 for crespo4g?

I've been trying to build CM13 for my Nexus S 4G, but I've been having problems with breakfast. I get this error:
Code:
[email protected]:~/android/system$ breakfast crespo4g
including vendor/cm/vendorsetup.sh
build/core/product_config.mk:234: *** Can not locate config makefile for product "cm_crespo4g". Stop.
Device crespo4g not found. Attempting to retrieve device repository from CyanogenMod Github (http://github.com/CyanogenMod).
Found repository: android_device_samsung_crespo4g
Default revision: cm-13.0
Checking branch info
Default revision cm-13.0 not found in android_device_samsung_crespo4g. Bailing.
Branches found:
cm-10.1-staging
cm-10.1
cm-10.2
cm-11.0
gb-release-7.2
gingerbread-release
gingerbread
ics
jellybean-stable
jellybean
mr1-staging
cm-10.1.3
cm-10.1.3-RC2
cm-10.1.3-RC1
cm-10.1.2
cm-10.1.1
cm-10.1.0
cm-10.1.0-RC5
cm-10.1.0-RC4
cm-10.1.0-RC3
cm-10.1.0-RC2
cm-10.1.0-RC1
cm-10.1-M3
cm-10.1-M2
cm-10.1-M1
cm-7.1.0
Use the ROOMSERVICE_BRANCHES environment variable to specify a list of fallback branches.
build/core/product_config.mk:234: *** Can not locate config makefile for product "cm_crespo4g". Stop.
** Don't have a product spec for: 'cm_crespo4g'
** Do you have the right repo manifest?
I know I get this error because there is no CM13 branch in crespo4g and it's not supported, but how do I get the config makefile so it can be recognized by
Code:
breakfast
I've tried downloading the crespo4g files into /android/system/vendor/device, but it still couldn't do it. I even did
Code:
git clone https://android.googlesource.com/device/samsung/crespo4g
for the device files, and then ran
Code:
./extract-files.sh
to extract proprietary blobs from my phone, but I still can't perform
Code:
breakfast
How can I set fallback branches to the ROOMSERVICE_BRANCHES environment variable, as the error says? Why isn't breakfast working and what do I do to fix it?
Thanks!

"Undo" git fetch (Lineage gerrit)

Hi Guys,
I did a git fetch from gerrit, something like:
git fetch https://review.lineageos.org/LineageOS/android_packages_apps_CustomTiles refs/changes/68/167368/2 && git checkout FETCH_HEAD
To see some changes on my PC.
Now I want to go back to what's in the master remote, basically, removing all the changes from the fetch.
Can you please help?
Thanks
Hi, any help here? Should I only do a rebase?

Categories

Resources