[HOW-TO] Sync Xylons source, build with GCC 4.9, Linaro, enable -O3, & use CCACHE - Samsung Galaxy Nexus

cd to your Desktop
command time: (copy/paste em)
Code:
mkdir ~/bin
export PATH=~/bin:$PATH
curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
chmod a+x ~/bin/repo
then:
Code:
sudo gedit ~/.bashrc
put export PATH=~/bin:$PATH at the bottom, of it
to enable CCACHE, put this code at the bottom of your bash.rc
Code:
EXPORT USE_CCACHE=1
export CCACHE_DIR=/path/to/your/ccache/folder (mine is /home/mbq/Desktop/ccache
export CCACHE_LOGFILE=/path/to/your/ccache/ccache.log
save it
then:
Code:
mkdir ~/XYAOSP
cd ~/XYAOSP
repo init -u [url]https://github.com/XYAOSP/platform_manifest[/url] -b jb4.2
repo sync -j16 (or -j8, or -j32.. whichever you want)
then:
when youre synced up..
if you want to watch CCACHE to make sure it's working, cd to:
Code:
/path/to/your/XYAOSP/prebuilts/misc/linux-x86/cache
then:
Code:
ccache -s
to change the size of your CCACHE, cd to:
Code:
/path/to/your/XYAOSP/prebuilts/misc/linux-x86
then:
Code:
ccache -M 20
(20=20GB, you can set it all the way to 100)
make sure ccache is getting hits. (The first build will take way longer than usual, so be patient).
to call linaro out correctly, open your xylon folder, go to build, and edit envsetup.sh (if you see a lock on the file(s), enter this:
Code:
sudo chmod -R 777 /path/to/your/XYAOSP/build
then, find:
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-4.6/bin
;;
arm) toolchaindir=arm/arm-linux-androideabi-$targetgccversion/bin
;;
mips) toolchaindir=mips/mipsel-linux-android-4.6/bin
;;
*)
echo "Can't find toolchain for unknown architecture: $ARCH"
toolchaindir=xxxxxxxxx
;;
and change:
Code:
arm) toolchaindir=arm/arm-linux-androideabi-$targetgccversion/bin
to:
Code:
arm) toolchaindir=linaro/bin
and:
Code:
unset ARM_EABI_TOOLCHAIN ARM_EABI_TOOLCHAIN_PATH
case $ARCH in
arm)
toolchaindir=arm/arm-eabi-$targetgccversion/bin
if [ -d "$gccprebuiltdir/$toolchaindir" ]; then
export ARM_EABI_TOOLCHAIN="$gccprebuiltdir/$toolchaindir"
ARM_EABI_TOOLCHAIN_PATH=":$gccprebuiltdir/$toolchaindir"
fi
;;
mips) toolchaindir=mips/mips-eabi-4.4.3/bin
;;
*)
# No need to set ARM_EABI_TOOLCHAIN for other ARCHs
;;
change:
Code:
case $ARCH in
arm)
toolchaindir=arm/arm-eabi-$targetgccversion/bin
to:
Code:
case $ARCH in
arm)
toolchaindir=linaro/bin
(Make sure linaro is in
Code:
/path/to/your/XYAOSP/prebuilts/gcc/linux-x86/linaro
)
to enable -O3 optimizations, go to:
Code:
/path/to/your/XYAOSP/build/core/combo
open: select.mk
edit:
Code:
ifneq ($(TARGET_USE_02),true)
$(combo_target)GLOBAL_CFLAGS := -fno-exceptions -Wno-multichar
$(combo_target)RELEASE_CFLAGS := -O2 -g -fno-strict-aliasing
else
$(combo_target)GLOBAL_CFLAGS := -O3 -g -Wstrict-aliasing=2
ifneq ($(combo_target),HOST_)
(combo_target)RELEASE_CFLAGS += -Werror=strict-aliasing
endif
endif
$(combo_target)GLOBAL_LDFLAGS := -Wl,-O3
$(combo_target)GLOBAL_ARFLAGS := crsP
change anything -O2 to -O3
save it
then: go to the build/core/combo
then: TARGET_linux-arm.mk
change:
Code:
ifeq ($(TARGET_USE_O3),true)
TARGET_arm_CFLAGS := -Os \
-fomit-frame-pointer \
-fstrict-aliasing \
-fno-tree-vectorize
else
TARGET_arm_CFLAGS := -O3 \
-fomit-frame-pointer \
-fstrict-aliasing \
-funswitch-loops
endif
to:
Code:
ifeq ($(TARGET_USE_O2),true)
TARGET_arm_CFLAGS := -Os \
-fomit-frame-pointer \
-fstrict-aliasing \
-fno-tree-vectorize
else
TARGET_arm_CFLAGS := -O3 \
-fomit-frame-pointer \
-fstrict-aliasing \
-funswitch-loops
endif
and:
Code:
ifeq ($(ARCH_ARM_HAVE_THUMB_SUPPORT),true)
ifeq ($(TARGET_USE_O2),true)
TARGET_thumb_CFLAGS := -mthumb \
-O2 \
-fomit-frame-pointer \
-fno-strict-aliasing \
-fno-tree-vectorize
else
TARGET_thumb_CFLAGS := -mthumb \
-O3 \
-fomit-frame-pointer \
-fno-strict-aliasing \
-fno-tree-vectorize
endif
else
TARGET_thumb_CFLAGS := $(TARGET_arm_CFLAGS)
endif
to:
Code:
ifeq ($(ARCH_ARM_HAVE_THUMB_SUPPORT),true)
ifeq ($(TARGET_USE_O3),true)
TARGET_thumb_CFLAGS := -mthumb \
-O3 \
-fomit-frame-pointer \
-fno-strict-aliasing \
-fno-tree-vectorize
else
TARGET_thumb_CFLAGS := -mthumb \
-O3 \
-fomit-frame-pointer \
-fno-strict-aliasing \
-fno-tree-vectorize
endif
else
TARGET_thumb_CFLAGS := $(TARGET_arm_CFLAGS)
endif
^^ Make any of these changes prior to building
to build with GCC 4.9, go to build/core/config.mk and find TARGET_GCC_VERSION := 4.7, change it to 4.9
to get linaro, download this: http://releases.linaro.org/13.04/co...13.04-2-2013-04-13_12-08-43-linux-x86.tar.bz2
then change the folders name to 'linaro'
move it to prebuilts/gcc/linux-x86
then, to build..
Code:
. build/envsetup.sh
croot
brunch device -j(2, 4, 8, 16, or 32, your choice)
*Note: Because CCACHE is enabled, it will take a while for your first build to complete. ~2-5 hours
Hope this helps!

Reserved! Just in case

repo sync -j16 (or -j8, or -j32.. whichever you want)
What's the difference between them. Trying to build for toro wondering which one I should use, thanks

RoyJ said:
repo sync -j16 (or -j8, or -j32.. whichever you want)
What's the difference between them. Trying to build for toro wondering which one I should use, thanks
Click to expand...
Click to collapse
How many threads of each core is used
Sent from my Galaxy Nexus using xda premium

if you have a 4x cpu you can go for -j8\-k16 and so on.i always used -j16 in the past,now it's big time i don't anything.
Great 3ad kyler,you explain all very well,especially the toolchain part rather that other guides out there.I stopped build for myself some months ago,but definetly a good howto for who have time and effort to try.
^__^

If you change TARGET_GCC_VERSION to 4.9... You'll need to wget Linaro 4.9.. No?
Sent from my Nexus

bk201doesntexist said:
If you change TARGET_GCC_VERSION to 4.9... You'll need to wget Linaro 4.9.. No?
Sent from my Nexus
Click to expand...
Click to collapse
Not to my knowledge. Xylon uses Sabermods toolchain

Great guide! Thanks!!

MisterSprinkles said:
Great guide! Thanks!!
Click to expand...
Click to collapse
Thank you!
Sent from my Galaxy Nexus using xda premium

should I dl the CCATCH separately? and what about ccatch.log? how to address that?

frost866 said:
should I dl the CCATCH separately? and what about ccatch.log? how to address that?
Click to expand...
Click to collapse
Yeah, and just call it in your bashrc
Sent from my Galaxy Nexus using xda premium

Awesome guide!!!! It helped me a lot!
Thanks!!!

pguizeline said:
Awesome guide!!!! It helped me a lot!
Thanks!!!
Click to expand...
Click to collapse
:good:
Sent from my Galaxy Nexus using xda premium

quick question why dont we use full 4.9 like what Daxx done in his maguro UKG build ?

-Jesco- said:
quick question why dont we use full 4.9 like what Daxx done in his maguro UKG build ?
Click to expand...
Click to collapse
I do
Sent from my Galaxy Nexus using xda premium

Nice guide thanks!
Can you pls. tell me how much space will the "sources" occupy during/after the first sync-up? Although am on unlimited broadband, would like to know this. I read in one of the threads (about CM 10.1 sources sync-up) that it is about 40GB. Is this right?

pmbabu said:
Nice guide thanks!
Can you pls. tell me how much space will the "sources" occupy during/after the first sync-up? Although am on unlimited broadband, would like to know this. I read in one of the threads (about CM 10.1 sources sync-up) that it is about 40GB. Is this right?
Click to expand...
Click to collapse
20-40GB
Sent from my Galaxy Nexus using xda premium

I just tried to self-compile a xyUltimatum build and I used the SaberMod GCC 4.9 toolchain since there's not a 4.9 of Linaro out yet and got an error related to the compiler itself.
Code:
external/aac/libAACenc/src/aacenc_tns.cpp: In function 'INT FDKaacEnc_TnsEncode(TNS_INFO*, TNS_DATA*, INT, const TNS_CONFIG*, INT, FIXP_DBL*, INT, INT)':
external/aac/libAACenc/src/aacenc_tns.cpp:1004:5: error: definition in block 48 follows the use
INT FDKaacEnc_TnsEncode(
^
for SSA_NAME: value_155 in statement:
# DEBUG D#405 => MAX_EXPR <value_155, _111>
external/aac/libAACenc/src/aacenc_tns.cpp:1004:5: internal compiler error: verify_ssa failed
0xc2358c verify_ssa(bool)
../.././../gcc/gcc-SaberMod/gcc/tree-ssa.c:1046
0x9f66e2 execute_function_todo
../.././../gcc/gcc-SaberMod/gcc/passes.c:1970
0x9f704d execute_todo
../.././../gcc/gcc-SaberMod/gcc/passes.c:2002
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <http://gcc.gnu.org/bugs.html> for instructions.
make: *** [/home/kemikalelite/android/out/target/product/maguro/obj/STATIC_LIBRARIES/libFraunhoferAAC_intermediates/libAACenc/src/aacenc_tns.o] Error 1
Since the ROM and toolchain are from two different sources I'm not sure if it was caused by something with the ROM's source or if its just caused from a bug in the toolchain and whether or not it should be reported to the Saber dev.

KemikalElite said:
I just tried to self-compile a xyUltimatum build and I used the SaberMod GCC 4.9 toolchain since there's not a 4.9 of Linaro out yet and got an error related to the compiler itself.
Code:
external/aac/libAACenc/src/aacenc_tns.cpp: In function 'INT FDKaacEnc_TnsEncode(TNS_INFO*, TNS_DATA*, INT, const TNS_CONFIG*, INT, FIXP_DBL*, INT, INT)':
external/aac/libAACenc/src/aacenc_tns.cpp:1004:5: error: definition in block 48 follows the use
INT FDKaacEnc_TnsEncode(
^
for SSA_NAME: value_155 in statement:
# DEBUG D#405 => MAX_EXPR <value_155, _111>
external/aac/libAACenc/src/aacenc_tns.cpp:1004:5: internal compiler error: verify_ssa failed
0xc2358c verify_ssa(bool)
../.././../gcc/gcc-SaberMod/gcc/tree-ssa.c:1046
0x9f66e2 execute_function_todo
../.././../gcc/gcc-SaberMod/gcc/passes.c:1970
0x9f704d execute_todo
../.././../gcc/gcc-SaberMod/gcc/passes.c:2002
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <http://gcc.gnu.org/bugs.html> for instructions.
make: *** [/home/kemikalelite/android/out/target/product/maguro/obj/STATIC_LIBRARIES/libFraunhoferAAC_intermediates/libAACenc/src/aacenc_tns.o] Error 1
Since the ROM and toolchain are from two different sources I'm not sure if it was caused by something with the ROM's source or if its just caused from a bug in the toolchain and whether or not it should be reported to the Saber dev.
Click to expand...
Click to collapse
I'd submit a bug report
Sent from my Galaxy Nexus using xda premium

Wow Tapatalk must really be messing up. Every time I post in the other thread the reply automatically redirects here. Enough Fail Posting for one day.
Error Post Please Delete.

Related

[unofficial NIGHTLY ROMS] - Source build machine+GUIDES!!

Here is example of what i have done with codenameandroid source.
First thanks to Trojan38 for helping with this.
I created folder CNA in my home folder.
repo init -u https://github.com/CNA/android_manifest.git -b jellybean
repo sync
After repo is synced i copied local_manifest.xml from cm10 to include galaxysmtd into source three.
This file can be found in .repo folder.When u open you repo folder you have to enable Show hidden files.
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="CyanogenMod/android_device_samsung_galaxysmtd" path="device/samsung/galaxysmtd" remote="github" revision="jellybean" />
<project name="CyanogenMod/android_packages_apps_SamsungServiceMode" path="packages/apps/SamsungServiceMode" remote="github" revision="jellybean" />
<project name="CyanogenMod/android_device_samsung_aries-common" path="device/samsung/aries-common" remote="github" revision="jellybean" />
<project name="CyanogenMod/android_kernel_samsung_aries" path="kernel/samsung/aries" remote="github" revision="jellybean" />
<project name="CyanogenMod/android_hardware_samsung" path="hardware/samsung" remote="github" revision="jellybean" />
</manifest>
Also you have to copy these 2 folders from cm10 repo:
/vendor/samsung/aries-common
/vendor/samsung/galaxysmtd
Then go to folder /vendor/cna
Open file vendorsetup.sh
Add lunch combo for galaxysmtd like on code bellow:
Code:
add_lunch_combo cna_crespo-userdebug
add_lunch_combo cna_crespo4g-userdebug
add_lunch_combo cna_grouper-userdebug
add_lunch_combo cna_maguro-userdebug
add_lunch_combo cna_stingray-userdebug
add_lunch_combo cna_stingray_cdma-userdebug
add_lunch_combo cna_toro-userdebug
add_lunch_combo cna_toroplus-userdebug
add_lunch_combo cna_umts_everest-userdebug
add_lunch_combo cna_wingray-userdebug
add_lunch_combo cna_d2att-userdebug
add_lunch_combo cna_d2spr-userdebug
add_lunch_combo cna_d2tmo-userdebug
add_lunch_combo cna_d2usc-userdebug
add_lunch_combo cna_d2vzw-userdebug
add_lunch_combo cna_i9300-userdebug
add_lunch_combo cna_galaxysmtd-userdebug
Then go to folder /vendor/cna/products
Create file cna_galaxysmtd.mk
File should look like this
Code:
$(call inherit-product, device/samsung/galaxysmtd/full_galaxysmtd.mk)
# Inherit some common stuff.
$(call inherit-product, vendor/cna/config/common_full_phone.mk)
# Inherit some common stuff.
$(call inherit-product, vendor/cna/config/gsm.mk)
PRODUCT_COPY_FILES += \
vendor/cna/prebuilt/hdpi/bootanimation.zip:system/media/bootanimation.zip
# Release name
PRODUCT_RELEASE_NAME := GT-I9000
PRODUCT_BUILD_PROP_OVERRIDES += PRODUCT_NAME=GT-I9000 BUILD_FINGERPRINT="samsung/GT-I9000/GT-I9000:2.3.5/GINGERBREAD/XXJVT:user/release-keys" PRIVATE_BUILD_DESC="GT-I9000-user 2.3.5 GINGERBREAD XXJVT release-keys"
PRODUCT_NAME := cna_galaxysmtd
PRODUCT_DEVICE := galaxysmtd
PRODUCT_BRAND := samsung
PRODUCT_MODEL := GT-I9000
PRODUCT_MANUFACTURER := samsung
In that same folder open file AndroidProducts.mk
File should look like this
Code:
PRODUCT_MAKEFILES := \
$(LOCAL_DIR)/cna_crespo.mk \
$(LOCAL_DIR)/cna_crespo4g.mk \
$(LOCAL_DIR)/cna_grouper.mk \
$(LOCAL_DIR)/cna_maguro.mk \
$(LOCAL_DIR)/cna_stingray.mk \
$(LOCAL_DIR)/cna_stingray_cdma.mk \
$(LOCAL_DIR)/cna_toro.mk \
$(LOCAL_DIR)/cna_toroplus.mk \
$(LOCAL_DIR)/cna_umts_everest.mk \
$(LOCAL_DIR)/cna_wingray.mk \
$(LOCAL_DIR)/cna_d2att.mk \
$(LOCAL_DIR)/cna_d2spr.mk \
$(LOCAL_DIR)/cna_d2tmo.mk \
$(LOCAL_DIR)/cna_d2usc.mk \
$(LOCAL_DIR)/cna_d2vzw.mk \
$(LOCAL_DIR)/cna_i9300.mk \
$(LOCAL_DIR)/cna_galaxysmtd.mk \
Then do another repo sync.
Then build like this:
. build/envsetup.sh
lunch (choose galaxysmtd)
mka squish
This is how my manifest file looks like.It includes some part of code from CM10.
You can download it from this location.File is default.xml
https://drive.google.com/#folders/0Bw09xjTGhT_HeHF1OVpNYnNwTmM
Want to include something from source into your builds?
For example i want to include DSPManager form CM10 into CNA build.
I will open default.xml file(manifest file) on this location .repo/manifests
Add this line into file
Code:
<project path="packages/apps/DSPManager" name="CyanogenMod/android_packages_apps_DSPManager" remote="github" revision="jellybean" />
Go to folder /build/target/product and open file core.mk
Add DSPManager like in code bellow at beggining of the file.
Code:
PRODUCT_BRAND := generic
PRODUCT_DEVICE := generic
PRODUCT_NAME := core
PRODUCT_PROPERTY_OVERRIDES := \
ro.config.notification_sound=Proxima.ogg \
ro.config.alarm_alert=Cesium.ogg
PRODUCT_PACKAGES := \
ApplicationsProvider \
BackupRestoreConfirmation \
Browser \
Contacts \
ContactsProvider \
DSPManager \
DefaultContainerService \
DownloadProvider \
DownloadProviderUi \
Like this all your builds for all devices will have DSP Manager included.
GUIDES!
Want to build from source?​
Want to build CM10 from source.Here it is:
http://forum.xda-developers.com/showthread.php?t=1813924
This is good start for everyone.In link above you have a everything you need to set up your android enviroment.
Things that are not in this guide is:
Do not log on to machine as root.Use account created during install and use sudo commands in terminal.
Place all your work in home folder.
For example this is how i set my build machine.
In my home folder i created folder android.In that folder i create folders:aokp and cm10.
Yes,you can have different repo's on one machine.
Want to build AOKP from source.Here it is:
Create separate folder (for example AOKP).
Go to terminal and navigate to that folder.
Then type:
repo init -u https://github.com/AOKP/platform_manifest.git -b jb-mr1
repo sync
Download files local_manifest.xml and galaxysmtd.mk and folder aries-common from here http://rootaxbox.no-ip.org/malcho/AOKP%20Beast/
Local_manifest.xml goes to .repo folder(you have to enable Show hidden files and folders).
galaxysmtd.mk file goes to vendor/aokp/products
aries -common folder goes to vendor/aokp/overlay
In folder vendor/aokp/products add this to AndroidProducts.mk file.
$(LOCAL_DIR)/galaxysmtd.mk
In folder vendor/aokp add this to vendorsetup.sh file.
add_lunch_combo aokp_galaxysmtd-userdebug
repo sync
. build/envsetup.sh
lunch
choose galaxysmtd
make bacon
ROM wil be in folder /out/target/product/galaxysmtd
Want to build BAKED from source.Here it is:
Create separate folder (for example BAKED).
Go to terminal and navigate to that folder.
Then type:
repo init -u https://github.com/TeamBAKED/platform_manifest.git -b jb
repo sync
. build/envsetup.sh && lunch baked_galaxysmtd-userdebug && mka bacon
TeamBaked Github for tracking changes:
https://github.com/TeamBAKED
Want to build PARANOID from source.Here it is:
Create separate folder (for example paranoid).
Go to terminal and navigate to that folder.
Then type:
repo init -u git://github.com/ParanoidAndroid/manifest.git -b jellybean
Go to folder.On drop menu select menu View and option Show hidden files and folders.
Then folder .repo will appear.Go to folder manifests.
Open file default.xml with gedit.
Erase bolded line(Paranoid preference)
<project path="packages/apps/PackageInstaller" name="CyanogenMod/android_packages_apps_PackageInstaller" />
<project path="packages/apps/ParanoidPreferences" name="android_packages_apps_paranoidpreferences" remote="paranoid" revision="jellybean" />
<project path="packages/apps/ParanoidWallpapers" name="ParanoidAndroid/android_packages_apps_ParanoidWallpapers" />
Go back to folder .repo.
Copy local_manifest.xml from cm10 repo.This needs to be done to sync galaxys files.
repo sync
./rom-build.sh galaxysmtd
ParanoidAndroid github for tracking changes:
https://github.com/ParanoidAndroid
Want to build SLIM from source.Here it is:
Create separate folder (for example slimroms).
Go to terminal and navigate to that folder.
repo init -u git://github.com/SlimRoms/platform_manifest.git -b jb
repo sync
Do initial build for galaxysmtd
. build/envsetup.sh
lunch
choose galaxys i think number 16
make -j4 bacon
Error will appear.
Go to folder
/slimroms/kernel/samsung/ics-ramdisk from terminal
tar zxvf jb_combo.tar.gz
tar zxvf jb_combo_c.tar.gz
tar zxvf jb_combo_v.tar.gz
go to folder
/slimroms/kernel/samsung/samsung-kernel-aries/arch/arm/configs
Open file semaphore_galaxys_defconfig with text editor
type in terminal id enter in file your ID and GID.
Make shure the path is correct to your jbcombo.
CONFIG_INITRAMFS_SOURCE="~/android/slimroms/kernel/samsung/ics-ramdisk/jb_combo_c/"
CONFIG_INITRAMFS_ROOT_UID=1000
CONFIG_INITRAMFS_ROOT_GID=1000
Go back to your root folder slimroms.
. build/envsetup.sh
lunch
choose galaxys i think number 16
make -j4 bacon
SlimRoms github for tracking changes:
https://github.com/SlimRoms
EXAMPLE HOW TO TRACK CHANGES:
All patches and changes for cm10 rom goes to this site:
http://review.cyanogenmod.com/#/q/statuspen,n,z
These patch have status open and goes to review.When file is reviewed and approved it goes to status merged.That means that file is now at this site:
https://github.com/CyanogenMod
All patches and changes for aokp rom goes to this site:
http://gerrit.sudoservers.com/#/q/status:open,n,z
These patch have status open and goes to review.When file is reviewed and approved it goes to status merged.That means that file is now at this site:
https://github.com/AOKP
When u do repo sync you practicaly download all files from github site.
Example of my build script.Script do sync repo's and build.
Code:
cd ~/android/cm10
repo sync
cd ~/android/aokp
repo sync
cd ~/android/cm10
rm -rf ~/android/cm10/out/target/product/galaxysmtd
. build/envsetup.sh && brunch galaxysmtd
cd ~/android/aokp
rm -rf ~/android/aokp/out/target/product/galaxysmtd
. build/envsetup.sh && brunch galaxysmtd
You can run script with bash -x parametar to see output.
bash -x reposyncbulid.sh
CHERRY PICKING GUIDE IN PDF IN ATTACHMENT!
TEST ROMS BUILT FROM SOURCE​
DISCONTINUED!!!!
Credits and thanks to:teamkang for source and guide,perka for guide,mialwe,stratosk,DerTeufel1980,lippol94,sixstingsgs,kasper_h,
kosako17,pmos69,prbassplayer,krarvind,aways,droidjam and all others on XDA from which i learned alot!Special thanks to bhu1 and franzyroy!
I love this thread... Thanks!!
only 3 ROMs ?... add more...
i flash 3 roms in a day...that`s nothing...
post cm7, miui, aosp and the other newly added
Give GingerReal a try too. It's great and keeps me coming back.
Yet another variant on the best rom thread! Zzzzz
Insanity cm 014/glitch
ROM, I like darky's rom at froyo time but now at gb time, I prefer either juwe's for performance or tweaky's for features.
Kernel, speedmod for froyo. Talon for gb.Talon's under dev but has been using 1.2kmhz for weeks and vy stable n vy fast.
Sent from my GT-I9000 using XDA Premium App
First I was a big fan of darky's roms, but I just got sick of all the green themes.
The perfect rom for me?
Juwe's smart edition 5.0
As the OP says, It's just great. Fast, Long battery life and looks great
Using it with the semaphore kernel.
I've been testing stock roms for a long time with custom kernels, specially Speedmod or Fugu. Now I'm fully on Cyanogenmod 7 with stock kernel. The stock rom provides stability and standard perfomance, CM7 provides full power over the phone at the cost of some bug or glitches.
I'm also back to stock Ramad JVP deodexed rom.Last night i've flashed Galaxian kernel to see how it works.Had some trouble with bluetooth and GPS butt now it's solved.
Damn,this kernel is fast.I choose default in voltage control(1000Mhz) and applied all tweaks.Phone is flying.
I prefer tweaky's features n apps, juwe's speed n battery life. I am using talon's kernel, its great.
Sent from my GT-I9000 using XDA Premium App
Like many others I tried many custom roms and kernels before concluding that the fastest and most stable with great battery life and speed are brotuck s rom and damian s kernel. On jvp and getting scores of 3500 with quadrant, about 800 higher than any other combination of custom mix and about 2000 points higher than just stock jvp.
Sent from my GT-I9000 using XDA App
I'm missing the speedmod kernel...
I think it's a great kernel, you should try it!
Maybe i will try speedmod why not.I'm returned now to semaphore from galaxian i had a problems with wifi and bluetooth.
Followed your advice; additional questions
Hi Malcho,
I followed your advice and installed EDB 1.2. First impressions are good (but they were good also with F1 Galaxy S2 V6 ....).
A few questions/remarks:
- how do you get 4 days of battery life? Thats about double of what i ever got by hardly using the phone at all.... I'm highly suspicious about this claim and will find out in the next couple of days
- how do i "... remove darky ram script and implemented juwe ram scripts" and what has been the benefit in your experience?
General remark: in my experience the performance of the various Roms (i've tried Stock JVP, F1 Galaxy, EDB with kernels Darky, Speedmod, Galaxian, Fugu) is getting more and more equal in terms of speed and feel. Of course Galaxian seems flying, but running at 1.4 Ghz is foul play in that respect
In my opinion we seem to have come to a point where ROMs have reached their optimum. Whats your opinion?
I turn of wifi and data connections when i don't using it.GPS is allways off.I turn off Auto sync in google account i manually sync contacts and gmail.I turn off back my data in Privacy tab.I use 2G instead off 3G.And i keep my brightness at 10%.Thats it.
If your phone is rooted use root explorer and navigate to folder /etc/init.d.I that folder you have a script under number S98 i think.Remove it.You have to mount that folder as rw.
Then download juwe script and flash it through CWM.You will notice speed of the phone.
I agree with you the roms are in the optimum butt we can except improvements in modems,kernels and other stuffs maybe themes.
I hope that this is the good answer for you.
Hi Malcho, thanks al lot for the quick answer. Now i know what init.d support means in kernels
Regarding battery: i lost 55% in 8 hours, but that is not a surprise considering:
- i have 3G, Wifi, Bluetooth, GPS turned on all the time
- auto sync is off, and is turned on every 4 hours for 5 minutes with the help of Tasker
- 50% of the battery usage is Display on auto-brightness (running time 42 minutes). Auto brightness levels have increased considerably since Gingerbread in my experience,
- 19% of the battery usage in tallk time (22 minutes)
- Wifi is 7%, Android is 7%, Mobile is 6%
So it's display that uses the most power, when i was using Speedmod kernels with lowered brightness, my average battery life was much higher, no wonder. Turning off GPS has never made a difference for me, turning off BT hardly. I do experience larger drains on 3G compared to Wifi.
Plus i have a feeling i need to calibrate the battery , havent done so in +10 ROM/Kernels flashes.
Like in most of linux distribution /etc/init.d is folder for startup scripts..
With your setting yours battery life is ok.As expected.I have a friend how use the same setting as you he says that he can be two days on battery.
Yes you should recalibrate battery.
I recently installed F1 JVP which comes with speedmod-kernel.
Phone went terribly slow and laggy (with lagfix enabled) very soon.
Also I had the Android OS-battery drain issue (speedmod is JVH-based).
So I flashed DarkCore-2.7.3 (since it's based on the JVP-kernel).
Battery-drain is gone, and the phone is fast again.
WRT to AndroidOS-battery-drain-bug, in 2.3.3 only DarkCore and Fugu got it fixed afaik.
In 2.3.4 (JVP+) it seems to be fixed for good. So I'd never use any 2.3.3-based kernel anymore.

[Tutorial] How to compile your first Nexus Kernel

If you see mistakes please contact me. If you think something can be shorter, easier, feel free to suggest.
I have spent a lot of time figuring this out. Not to mention making this guide.
I DO NOT RESPOND TO PRIVATE MESSAGES. EVERYTHING YOU NEED IS IN HERE.
If this guide helped you feel free to donate.
There is more to come, using different toolchains, important files, adding overclocking etc.
Setting up the environment & building the kernel for the first time
Ubuntu 12.04 64-Bit
Linux Mint 13 64-Bit
Compiling Jelly Bean AOSP ROMs with these 2 is possible WITHOUT ADDITIONAL WORK.
If you want to use virtualization software, do NOT use Virtualbox. You can run into networking issues and so on. I suggest using VMWare Player instead, which is available for free on http://www.vmware.com
Installing latest updates & reboot.
$ sudo apt-get update
$ sudo apt-get dist-upgrade
$ sudo reboot
Click to expand...
Click to collapse
Now we will download and install the latest Java 6 JDK from here. Look for Java 6 SE Update 33 or a later update version. Don't download Java 7 JDK. I am downloading the file below for this guide.
Linux x64 68.69 MB jdk-6u33-linux-x64.bin
Click to expand...
Click to collapse
This guide assumes you have downloaded the file in the folder
~/Downloads
Click to expand...
Click to collapse
$ cd ~/Downloads
$ sudo chmod +x jdk-6u33-linux-x64.bin
$ ./jdk-6u33-linux-x64.bin
$ sudo mkdir /usr/lib/jvm
$ sudo mv jdk1.6.0_33 /usr/lib/jvm/jdk1.6.0_33
$ sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.6.0_33/bin/javac 1
$ sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.6.0_33/bin/java 1
$ sudo update-alternatives --install /usr/bin/javaws javaws /usr/lib/jvm/jdk1.6.0_33/bin/javaws 1
$ sudo update-alternatives --install /usr/bin/jar jar /usr/lib/jvm/jdk1.6.0_33/bin/jar 1
$ sudo update-alternatives --install /usr/bin/javadoc javadoc /usr/lib/jvm/jdk1.6.0_33/bin/javadoc 1
$ sudo update-alternatives --config javac
$ sudo update-alternatives --config java
$ sudo update-alternatives --config javaws
$ sudo update-alternatives --config jar
$ sudo update-alternatives --config javadoc
$ java --version
$ ls -la /etc/alternatives/java*
Click to expand...
Click to collapse
Now reboot is optional but welcome. Let's play safe.
$ sudo reboot
Click to expand...
Click to collapse
Install all required packages to play with Android.
Ubuntu 12.04
$ sudo apt-get update
$ 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 git
$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
$ sudo reboot
Click to expand...
Click to collapse
Configure USB ports.
$ sudo gedit /etc/udev/rules.d/51-android.rules
Click to expand...
Click to collapse
This file should get the contents:
# adb protocol on passion (Nexus One)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e12", MODE="0600", OWNER="<username>"
# fastboot protocol on passion (Nexus One)
SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", ATTR{idProduct}=="0fff", MODE="0600", OWNER="<username>"
# adb protocol on crespo/crespo4g (Nexus S)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e22", MODE="0600", OWNER="<username>"
# fastboot protocol on crespo/crespo4g (Nexus S)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e20", MODE="0600", OWNER="<username>"
# adb protocol on stingray/wingray (Xoom)
SUBSYSTEM=="usb", ATTR{idVendor}=="22b8", ATTR{idProduct}=="70a9", MODE="0600", OWNER="<username>"
# fastboot protocol on stingray/wingray (Xoom)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="708c", MODE="0600", OWNER="<username>"
# adb protocol on maguro/toro (Galaxy Nexus)
SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", ATTR{idProduct}=="6860", MODE="0600", OWNER="<username>"
# fastboot protocol on maguro/toro (Galaxy Nexus)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e30", MODE="0600", OWNER="<username>"
# adb protocol on panda (PandaBoard)
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d101", MODE="0600", OWNER="<username>"
# fastboot protocol on panda (PandaBoard)
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d022", MODE="0600", OWNER="<username>"
# usbboot protocol on panda (PandaBoard)
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d00f", MODE="0600", OWNER="<username>"
# usbboot protocol on panda (PandaBoard ES)
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d010", MODE="0600", OWNER="<username>"
Click to expand...
Click to collapse
Don't forget to replace the red marked text with your username from Ubuntu or Linux Mint.
When building a kernel, you only need to start from here. Pick the appropriate branch from the git manually. My example below shows how to download the required files to build a Jelly Bean kernel. What I did was visiting the git repository each time and picked the appropriate branch.
https://android.googlesource.com/device/samsung/maguro
$ mkdir ~/Documents/kernel
$ cd ~/Documents/kernel
$ git clone https://android.googlesource.com/device/samsung/maguro -b jb-release
Click to expand...
Click to collapse
Again pick the right branch from https://android.googlesource.com/kernel/omap.git
$ cd maguro
$ git clone https://android.googlesource.com/kernel/omap.git -b android-omap-tuna-3.0-jb-pre1
Click to expand...
Click to collapse
Ensure the toolchain is in your path.
Default, Easy solution
$ git clone https://android.googlesource.com/platform/prebuilt -b jb-release
$ export PATH=$(pwd)/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin:$PATH
Click to expand...
Click to collapse
$(pwd) is a variable holding the current working directory.
Bandwidth-friendly solution
You can also download the toolchain to another directory. Bit first write down the directory you are working at.
mkdir ~/Documents/toolchain
cd ~/Documents/toolchain
$ git clone https://android.googlesource.com/platform/prebuilt -b jb-release
export PATH=~/Documents/toolchain/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin:$PATH
Click to expand...
Click to collapse
Instead of specifying the location of the toolchain with a relative path, we must specify the absolute path here.
Now we go back to where we were working.
cd ~/Documents/kernel/maguro
Click to expand...
Click to collapse
I hope you understand why I mentioned the bandwidth-friendly solution. With little insight you could have come up with it yourself.
Now let's build the kernel
$ cd omap
$ export ARCH=arm
$ export SUBARCH=arm
$ export CROSS_COMPILE=arm-eabi-
$ make tuna_defconfig
$ make
Click to expand...
Click to collapse
[*]Now you need to put it in a flashable zip.
Possible issues, things to avoid, FAQ
- Avoid downloading the kernel sources to directories which might require root/superuser access. This is one of the reasons I downloaded all sources to '~/Documents'. This will save a lot of time messing with chmod or chown commands.
- What is 'tuna', shouldn't this be maguro? No, actually not. Tuna is the board name, while maguro is the codename of the Nexus. Something you might want to remember when building kernels.
Interesting files and locations
<kernel_directory>/samsung/arch/arm/mach-s5pv210/cpu-freq.c
Overclocking
Voltages
Links to mods, source code, ...
Only do these when you are in the omap directory
Getting access to Ezekeel's work
git remote add ezekeel https://github.com/Ezekeel/GLaDOS-nexus-prime.git
git fetch ezekeel
Click to expand...
Click to collapse
If you want to change the text marked in red make sure to change the other one as well. You can think of this as a nickname for the remote repository.
Example of cherry-picking CUSTOM VOLTAGE
1. Go here: https://github.com/Ezekeel/GLaDOS-nexus-prime/commits/customvoltage_JB
2. Copy the SHA of the commit
3.
git cherry-pick 05ab84fa9bc1fa86e5a99c54266873e433ff15e2
Click to expand...
Click to collapse
template
git cherry-pick <SHA>
Click to expand...
Click to collapse
When encountering conflicts, you are on your own. I figured most of this out on my own. So if I can do it you can too.
Getting access to Francisco Franco's work
git remote add franco https://github.com/franciscofranco/Tuna_JB_pre1.git
git fetch franco
Click to expand...
Click to collapse
Getting access to http://www.kernel.org
git remote add kerneldotorg git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
git fetch kerneldotorg
Click to expand...
Click to collapse
red 2 days ago yours guide linked in sig.you sad that with ubuntu 12.10 aosp rom are impossible to compile,it's fine only for kernel and for aosp rom should use version 10.xx.now instead you say 12.xx is good for kernel and rom compiling,but from JB and so on.(Compiling AOSP ROMs with these 2 is possible. Only Jelly Bean and later though will compile without additional work)
after that,i think (after reading yours words)that until iCS 12.xx doesn't compile and from jb a so on 12.xx works good?i'm right or i I misunderstood?i'm totally noob on this things,compiled my fist rom 15 days ago,begin with JB but compiled already in mint mate 13,mint cynnamon 13,ubuntu 10.10 and 12.04\10.
very thanks for this guide man,it's very usefull and having already the environment setted it's very fast also.followed instruction in yours sig days ago and with no luck.now i retry with this!on mint 13 cynnamon 64bit now.regards cherrypicking...what you wrote is all we have to known for or is a base?
rated 5 stars and thanked.like this 3ads aims to help everyone begin do things yourselves on android
Good tutorial. Thanks for taking the time to write this.
How many gigs do I need to compile the kernel? I only have a 120gb ssd and 75gb free.
Sent from my Galaxy Nexus using Tapatalk 2
you are safe..
Serious_Beans said:
How many gigs do I need to compile the kernel? I only have a 120gb ssd and 75gb free.
Sent from my Galaxy Nexus using Tapatalk 2
Click to expand...
Click to collapse
They are enough
For kernel compiling we don't need any version of java
Inviato dal mio Galaxy Nexus con Tapatalk 2
sert00 said:
red 2 days ago yours guide linked in sig.you sad that with ubuntu 12.10 aosp rom are impossible to compile,it's fine only for kernel and for aosp rom should use version 10.xx.now instead you say 12.xx is good for kernel and rom compiling,but from JB and so on.(Compiling AOSP ROMs with these 2 is possible. Only Jelly Bean and later though will compile without additional work)
after that,i think (after reading yours words)that until iCS 12.xx doesn't compile and from jb a so on 12.xx works good?i'm right or i I misunderstood?i'm totally noob on this things,compiled my fist rom 15 days ago,begin with JB but compiled already in mint mate 13,mint cynnamon 13,ubuntu 10.10 and 12.04\10.
very thanks for this guide man,it's very usefull and having already the environment setted it's very fast also.followed instruction in yours sig days ago and with no luck.now i retry with this!on mint 13 cynnamon 64bit now.regards cherrypicking...what you wrote is all we have to known for or is a base?
rated 5 stars and thanked.like this 3ads aims to help everyone begin do things yourselves on android
Click to expand...
Click to collapse
ICS didn't compile here on Ubuntu 12.04. I believe I needed to do some additional work. ICS was also released before Ubuntu 12.04 was released. Jelly Bean will compile just fine.
The only thing that was difficult to figure out was how to setup the Java 6 JDK properly which I had to figure out by trial and error.
The cherry-picking is handy when you want to 'steal' someone else his work. Let's say 99% of the developers do this all the time here on XDA. I wanted to explain how to cherry-picking because it's useful to know. I spent a long time getting here.
Serious_Beans said:
How many gigs do I need to compile the kernel? I only have a 120gb ssd and 75gb free.
Sent from my Galaxy Nexus using Tapatalk 2
Click to expand...
Click to collapse
I think 4-5GB if you download everything. If you only download the Jelly Bean things by only downloading the branch you need you will use about maybe 1GB I am not sure. Try it out.
Download the toolchain to a separate directory. This will save lots of bandwidth in the future.
Good job on this guide. I learnt this ages ago though
Sent from my Galaxy Nexus using xda premium
i'm interesting about linaro but i don't know how set it up,can you say something about this?
Sent from my Galaxy Nexus
dxdiag32 said:
i'm interesting about linaro but i don't know how set it up,can you say something about this?
Sent from my Galaxy Nexus
Click to expand...
Click to collapse
Linaro is easy.
Google to download the linaro toolchain from their website. And then it's a bit trial and error to fill in:
CROSS_COMPILE line
it's not arm-eabi- anymore buy gnu-arm-eabi or something similar. It has to do with the directory structure or the filenames.
If you get a compile error about vfp or something you must correct this in a make file.
Take a look in francisco franco's github account or AIR Kernel. They have commit which describe what they did if they ran into compile errors. Normally you won't have to change anything I think.
Thanks OP. Maybe when I'm free I'll give this a try. I always wanted to try to make a stock kernel + colour tweaks + trinity contrast + 384 GPU for my own use. As this is considered I am "stealing" work, I wouldn't bother uploading this kernel I have compiled stock AOSP 4.0.4 (referring a guide) for the galaxy nexus. Except I didn't test out the rom as I didn't own a nexus back then.
Sent from my Galaxy Nexus using Tapatalk 2
thanks OP, but why apt-get install openjdk after manually install JDK 6? it is nothing about kernel compile but fail on the whole aosp compile.
Sent from my Galaxy Nexus
Thanks a lot for this tuto.
I'm trying to compile GlaDos kernel with Ubuntu 12.10 and i have this error :
Code:
[email protected]:~/android/kernel/GLaDOS-nexus-prime$ make
CHK include/linux/version.h
CHK include/generated/utsrelease.h
make[1]: « include/generated/mach-types.h » est à jour.
CC kernel/bounds.s
cc1: error: unrecognized command line option "-mno-unaligned-access"
kernel/bounds.c:1: warning: switch -mcpu=cortex-a9 conflicts with -march= switch
make[1]: *** [kernel/bounds.s] Erreur 1
make: *** [prepare0] Erreur 2
Do you have an idea where it may come from ?
What is the version of your toolchain?
Sent from my Galaxy Nexus using xda app-developers app
anarkia1976 said:
What is the version of your toolchain?
Sent from my Galaxy Nexus using xda app-developers app
Click to expand...
Click to collapse
I took the one in the 1st post :
Code:
git clone https://android.googlesource.com/platform/prebuilt -b jb-release
It's arm-eabi-4.4.3
I tried with Ubuntu 12.04 to be exactly in the same conditions as described in the 1st post but I have exactly the same error...
That is really weird... Any ideas ?
Remove from makefile this:
-mno-unaligned-access
Otherwise you can use new toolchain from my github:
https://github.com/anarkia1976/AK-linaro
anarkia1976 said:
Remove from makefile this:
-mno-unaligned-access
Otherwise you can use new toolchain from my github:
https://github.com/anarkia1976/AK-linaro
Click to expand...
Click to collapse
Thanks anarkia1976 !
I've been able to compile with the last version of your toolchain. :good:
No problem .. if I can help it is a pleasure.
anarkia1976 said:
No problem .. if I can help it is a pleasure.
Click to expand...
Click to collapse
I noticed JZO54K has a crashing camera bug. I checked several times, redownloaded everything on different devices being maguro and grouper.
Has anyone managed to build CM10 or AOSP on Ubuntu 12.10 ? When installing the same packages I notice everything crashes. It's unclear if it's actually the packages or Google Chrome. I suspect one of the packages being the culprit.
I am going one by one through the packages in Ubuntu 12.10. Those willing to help me let me know. just install each package one by one.

[Updated with download]Ubuntu Touch Preview for the SGH-T889 Note II

Ubuntu Touch Preview for the SGH-T889 Note II​
I am posting this so others that are interested in building Ubuntu Touch for the SGH-T889 can have a better starting point.. As of right now this will not build a booting ROM as it is still a work in progress, but it should build. I have some edititng I need to do to the guide but knot able to do just yet, I will get this done as soon as possible.
Edit: For download link, instructions on how to flash and what is working go to the second post.
Thanks!
Thanks to CyanogenMod, Canonical Ltd, drapalyuk, chasmodo, Gerrett,codeworkx, GhostOfTheNet, mgale88, and a special thanks to my friend DragunKorr. Sorry if I missed anyone, if I find I have I will update the thanks section.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Official Porting guide
How to build​
To start with we you should be running Ubuntu 10.04 or higher. You might be able to use another Linux distro, but I have not seen anyone posting they were running a different Linux distro and building for the Preview. You also need to have a android build environment already set up. Now start by getting the additional packages you will need. Open a terminal by holding ctrl+Alt+t and paste the below command into the terminal.
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 schedtool
Next you need to get the phablet-tools package.
Code:
$ sudo add-apt-repository ppa:phablet-team/tools
$ sudo apt-get update
$ sudo apt-get install phablet-tools android-tools-adb android-tools-fastboot
Next you need to create a folder to sync your Android source tree too. You can name this folder anything you like. But for the purpose of this guide it will be named UPP (UbuntuPhonePort).
Code:
$ mkdir UPP
Now you need to set up the .repo in your UPP folder. To do this you need to cd to your UPP folder and run the following command in terminal.
Code:
$ phablet-dev-bootstrap UPP
Enter your name and email when pronpted for them then answer yes and press enter. This will set up your repo and start your sync. Be prepared this will take a good while. If you stop for some reason you can resume your sync by using the following command. (You probably will have to)
Code:
$ phablet-dev-bootstrap -c UPP
When your sync is done you need to set up your device tree for this you can either use CyanogenMod repositories on github or you can use my github repositories. I forked all of my repositories straight from CM and have made edits to allow it to compile.
You will have to be in your UPP folder in your file explorer and press ctrl+h to see the .repo folder. You will need to add the following lines to the manifest.xml in the .repo folder by opening the manifest.xml with a text editor. For this guide I am using my repositories but you can easily see how to use any other repositories here. Doing this will let the repositories you use sync if you do a resync of your work tree.
Code:
<project path="device/samsung/t0lte" name="T-Macgnolia/android_device_samsung_t0lte" remote="github" revision="cm-10.1" />
<project path="kernel/samsung/smdk4412" name="T-Macgnolia/android_kernel_samsung_smdk4412" remote="github" revision="cm-10.1" />
<project path="hardware/samsung" name="T-Macgnolia/android_hardware_samsung" remote="github" revision="cm-10.1" />
<project path="device/samsung/smdk4412-common" name="T-Macgnolia/android_device_samsung_smdk4412-common" remote="github" revision="cm-10.1" />
Alternatively you can clone your device repositories. For each folder you need to cd to where the folder needs to go. For example if you was cloning the device folder you would type in the following to get to the correct directory.
Code:
$ cd UPP/device/samsung
Here is the clone commands for all for of my repositories.
Code:
git clone git://github.com/T-Macgnolia/android_device_samsung_t0lte.git -b cm-10.1 t0lte
git clone git://github.com/T-Macgnolia/android_device_samsung_smdk4412-common.git -b cm-10.1 smdk4412-common
git clone git://github.com/T-Macgnolia/android_kernel_samsung_smdk4412.git -b cm-10.1 smdk4412
git clone git://github.com/T-Macgnolia/android_hardware_samsung.git -b cm-10.1 samsung
Last step before building is to flash a CM nightly to your device so you can pull your proprietary files from your device. You can pull them from a stock ROM but stock ROMs do not have all the files where as CM or others source built ROMs will. Because of a problem with the new mali driver r3p1I suggest you use this CM nightly build as it is the only official CM build before the 22nd of Febuary. Now you need to cd to your device folder like so.
Code:
$ cd UPP/device/samsung/t0lte
Now connect your device via USB to your computer, make sure you have ADB Debugging on in settings and that you allow the device to communicate with your computer. Now run the following command.
Code:
$ ./extract-files.sh
Now if you used my repositories you can jump ahead to the bottom of this post for the build commands. If you did not you may want to keep reading..
These changes are per the official guide.
Go to device/samsung/t0lte/rootdir/fstab.smdk4x12 and remove the "nosuid" from the following line.
Code:
/dev/block/mmcblk0p16 /data ext4 noatime,nosuid,nodev,discard,noauto_da_alloc,journal_async_commit,errors=panic
Go to kernel/samsung/smdk4412/arch/arm/configs/ cyanogenmod_t0lte_defconfig and add the following to the file in the "# Userspace binary formats" section of the file at line 750.
Code:
CONFIG_SYSVIPC=y
CONFIG_NAMESPACES=y
CONFIG_UTS_NS=y
CONFIG_IPC_NS=y
CONFIG_USER_NS=y
CONFIG_PID_NS=y
CONFIG_NET_NS=y
CONFIG_DEVTMPFS=y
CONFIG_DEVPTS_MULTIPLE_INSTANCES=y
CONFIG_FSNOTIFY=y
CONFIG_DNOTIFY=y
CONFIG_INOTIFY_USER=y
CONFIG_FANOTIFY=y
CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y
CONFIG_FSNOTIFY=y
CONFIG_SWAP=y
# CONFIG_ANDROID_PARANOID_NETWORK is not set
Go to device/samsung/t0lte/init.smdk4x12.rc and add the following beneath line 185.
Code:
chmod 0666 /sys/class/backlight/panel/brightness
Changes I made to get to build.
In device/samsung/t0lte/t0lte.mk I commited line 50 like below.
Code:
#PRODUCT_PACKAGES += \
GalaxyNote2Settings
Also in device/samsung/t0lte/t0lte.mk removed below line from PRODUCT_COPY_FILES += \
Code:
packages/apps/Nfc/migrate_nfc.txt:system/etc/updatecmds/migrate_nfc.txt \
Remove libandroid_runtime \ from the line 33 of hardware/samsung/exynos/multimedia/openmax/osal/Android.mk.
Last remove lines 2671 and 2674 in device/samsung/t0lte/audio/audio_hw.c. below is what it should look like before and after.
Before:
Code:
// Wideband AMR
ret = str_parms_get_str(parms, "wb_amr", value, sizeof(value));
if (ret >= 0) {
if (csd_wide_voice == NULL) {
ALOGE("dlsym: Error:%s Loading csd_wide_voice", dlerror());
} else {
if (strcmp(value, "on") == 0) {
ALOGE("%s: enabling csd_wide_voice", __func__);
csd_wide_voice(VX_WB_SAMPLING_RATE);
} else {
ALOGE("%s: disabling csd_wide_voice", __func__);
csd_wide_voice(VX_NB_SAMPLING_RATE);
After:
Code:
// Wideband AMR
ret = str_parms_get_str(parms, "wb_amr", value, sizeof(value));
if (ret >= 0) {
if (csd_wide_voice == NULL) {
ALOGE("dlsym: Error:%s Loading csd_wide_voice", dlerror());
} else {
if (strcmp(value, "on") == 0) {
ALOGE("%s: enabling csd_wide_voice", __func__);
} else {
ALOGE("%s: disabling csd_wide_voice", __func__);
Missing Lib Files
This is a list of the missing lib files, where to get them, and where to pit them.
Code:
After pulling proprietary files from my device I went to system/lib of the CM ROM and copied and pasted the following lib files to vendor/samsung/t0lte/proprietary/system/lib of my work tree.
libandroid_runtime.so
libdvm.so
libharfbuzz.so
libhwui.so
libnativehelper.so
libmali.so
libUMP.so
libfimc.so
In system/lib/hw in the CM ROM copied and pasted the following lib files to vendor/samsung/t0lte/proprietary/system/lib/hw of my work tree.
camera.exynos4.so
gps.goldfish.so
In /system/lib/ of a stock ROM copied and pasted the following lib file to vendor/samsung/t0lte/proprietary/system/lib of my work tree.
libfactoryutil.so
In systemlib/egl of the CM ROM copied of and pasted the following lib files to vendor/samsung/t0lte/proprietary/system/lib/egl of my work tree.
libEGL_mali.so
libGLESv1_CM_mali.so
libGLESv2_mali.so
In system/vendor/lib of the CM ROM copied and pasted the following lib files to vendor/samsung/t0lte/proprietary/system/vendor/lib of my work tree.
libpn544_fw.so
mfc_fw.bin
In system/cameradata of the CM ROM copied and pasted the following files to vendor/samsung/t0lte/proprietary/system/cameradata of my work tree.
datapattern_420sp.yuv
datapattern_front_420sp.yuv
In system/bin of the CM ROM copied and pasted the following files to vendor/samsung/t0lte/proprietary/system/bin of myr work tree.
bcm4334.hcd
bcm4334_murata.hcd
bcm4334_semcosh.hcd
How to make to make the compiler use the added lib files. The lines highlighted are the ones I added.
Code:
# Copyright (C) 2013 The CyanogenMod Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
LOCAL_PATH := vendor/samsung/t0lte
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/proprietary/system/bin/at_distributor:system/bin/at_distributor \
$(LOCAL_PATH)/proprietary/system/bin/efsks:system/bin/efsks \
$(LOCAL_PATH)/proprietary/system/bin/gsiff_daemon:system/bin/gsiff_daemon \
$(LOCAL_PATH)/proprietary/system/bin/ks:system/bin/ks \
$(LOCAL_PATH)/proprietary/system/bin/netmgrd:system/bin/netmgrd \
$(LOCAL_PATH)/proprietary/system/bin/qcks:system/bin/qcks \
$(LOCAL_PATH)/proprietary/system/bin/qmiproxy:system/bin/qmiproxy \
$(LOCAL_PATH)/proprietary/system/bin/qmuxd:system/bin/qmuxd \
$(LOCAL_PATH)/proprietary/system/bin/rild:system/bin/rild \
$(LOCAL_PATH)/proprietary/system/bin/sec-ril:system/bin/sec-ril \
$(LOCAL_PATH)/proprietary/system/bin/sensorhubservice:system/bin/sensorhubservice \
$(LOCAL_PATH)/proprietary/system/bin/smdexe:system/bin/smdexe \
$(LOCAL_PATH)/proprietary/system/etc/Diag.cfg:system/etc/Diag.cfg \
$(LOCAL_PATH)/proprietary/system/etc/Diag_zero.cfg:system/etc/Diag_zero.cfg \
$(LOCAL_PATH)/proprietary/system/lib/libakm.so:system/lib/libakm.so \
$(LOCAL_PATH)/proprietary/system/lib/libatparser.so:system/lib/libatparser.so \
$(LOCAL_PATH)/proprietary/system/lib/libcsd-client.so:system/lib/libcsd-client.so \
$(LOCAL_PATH)/proprietary/system/lib/libdiag.so:system/lib/libdiag.so \
$(LOCAL_PATH)/proprietary/system/lib/libdsi_netctrl.so:system/lib/libdsi_netctrl.so \
$(LOCAL_PATH)/proprietary/system/lib/libdsutils.so:system/lib/libdsutils.so \
$(LOCAL_PATH)/proprietary/system/lib/libfactoryutil.so:system/lib/libfactoryutil.so \
$(LOCAL_PATH)/proprietary/system/lib/libgps.so:system/lib/libgps.so \
$(LOCAL_PATH)/proprietary/system/lib/libgps.utils.so:system/lib/libgps.utils.so \
$(LOCAL_PATH)/proprietary/system/lib/libidl.so:system/lib/libidl.so \
$(LOCAL_PATH)/proprietary/system/lib/libloc_adapter.so:system/lib/libloc_adapter.so \
$(LOCAL_PATH)/proprietary/system/lib/libloc_api_v02.so:system/lib/libloc_api_v02.so \
$(LOCAL_PATH)/proprietary/system/lib/libloc_eng.so:system/lib/libloc_eng.so \
$(LOCAL_PATH)/proprietary/system/lib/libnetmgr.so:system/lib/libnetmgr.so \
$(LOCAL_PATH)/proprietary/system/lib/libomission_avoidance.so:system/lib/libomission_avoidance.so \
$(LOCAL_PATH)/proprietary/system/lib/libqcci_legacy.so:system/lib/libqcci_legacy.so \
$(LOCAL_PATH)/proprietary/system/lib/libqdi.so:system/lib/libqdi.so \
$(LOCAL_PATH)/proprietary/system/lib/libqdp.so:system/lib/libqdp.so \
$(LOCAL_PATH)/proprietary/system/lib/libqmi.so:system/lib/libqmi.so \
$(LOCAL_PATH)/proprietary/system/lib/libqmi_cci.so:system/lib/libqmi_cci.so \
$(LOCAL_PATH)/proprietary/system/lib/libqmi_client_qmux.so:system/lib/libqmi_client_qmux.so \
$(LOCAL_PATH)/proprietary/system/lib/libqmi_common_so.so:system/lib/libqmi_common_so.so \
$(LOCAL_PATH)/proprietary/system/lib/libqmi_csi.so:system/lib/libqmi_csi.so \
$(LOCAL_PATH)/proprietary/system/lib/libqmi_encdec.so:system/lib/libqmi_encdec.so \
$(LOCAL_PATH)/proprietary/system/lib/libqmiservices.so:system/lib/libqmiservices.so \
$(LOCAL_PATH)/proprietary/system/lib/libril.so:system/lib/libril.so \
$(LOCAL_PATH)/proprietary/system/lib/libril-qc-qmi-1.so:system/lib/libril-qc-qmi-1.so \
$(LOCAL_PATH)/proprietary/system/lib/libril-qcril-hook-oem.so:system/lib/libril-qcril-hook-oem.so \
$(LOCAL_PATH)/proprietary/system/lib/libsecnativefeature.so:system/lib/libsecnativefeature.so \
$(LOCAL_PATH)/proprietary/system/lib/libsecril-client.so:system/lib/libsecril-client.so \
$(LOCAL_PATH)/proprietary/system/lib/libsensorhubservice.so:system/lib/libsensorhubservice.so \
$(LOCAL_PATH)/proprietary/system/lib/hw/vendor-camera.exynos4.so:system/lib/hw/vendor-camera.exynos4.so \
$(LOCAL_PATH)/proprietary/system/lib/hw/gps.default.so:system/lib/hw/gps.default.so \
$(LOCAL_PATH)/proprietary/system/lib/hw/sensorhubs.smdk4x12.so:system/lib/hw/sensorhubs.smdk4x12.so \
$(LOCAL_PATH)/proprietary/system/lib/hw/sensors.smdk4x12.so:system/lib/hw/sensors.smdk4x12.so \
$(LOCAL_PATH)/proprietary/system/usr/idc/sec_e-pen.idc:system/usr/idc/sec_e-pen.idc \
$(LOCAL_PATH)/proprietary/system/usr/keylayout/sec_e-pen.kl:system/usr/keylayout/sec_e-pen.kl \
$(LOCAL_PATH)/proprietary/system/usr/keylayout/sec_touchkey.kl:system/usr/keylayout/sec_touchkey.kl \
$(LOCAL_PATH)/proprietary/system/vendor/firmware/SlimISP_GK.bin:system/vendor/firmware/SlimISP_GK.bin \
$(LOCAL_PATH)/proprietary/system/vendor/firmware/SlimISP_ZK.bin:system/vendor/firmware/SlimISP_ZK.bin[COLOR="Red"] \
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/proprietary/system/lib/libandroid_runtime.so:system/lib/libandroid_runtime.so \
$(LOCAL_PATH)/proprietary/system/lib/libdvm.so:system/lib/libdvm.so \
$(LOCAL_PATH)/proprietary/system/lib/libharfbuzz.so:system/lib/libharfbuzz.so \
$(LOCAL_PATH)/proprietary/system/lib/libhwui.so:system/lib/libhwui.so \
$(LOCAL_PATH)/proprietary/system/lib/libnativehelper.so:system/lib/libnativehelper.so \
$(LOCAL_PATH)/proprietary/system/lib/libMali.so:system/lib/libMali.so \
$(LOCAL_PATH)/proprietary/system/lib/libUMP.so:system/lib/libUMP.so \
$(LOCAL_PATH)/proprietary/system/lib/lib/libfimc.so:system/lib/libfimc.so \
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/proprietary/system/lib/hw/camera.exynos4.so:system/lib/hw/camera.exynos4.so \
$(LOCAL_PATH)/proprietary/system/lib/hw/gps.goldfish.so:system/lib/hw/gps.goldfish.so \
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/proprietary/system/lib/egl/libEGL_mali.so:system/lib/egl/libEGL_mali.so \
$(LOCAL_PATH)/proprietary/system/lib/egl/libGLESv1_CM_mali.so:system/lib/egl/libGLESv1_CM_mali.so \
$(LOCAL_PATH)/proprietary/system/lib/egl/libGLESv2_mali.so:system/lib/egl/libGLESv_mali.so \
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/proprietary/system/vendor/firmware/libpn544_fw.so:system/vendor/firmware/libpn544_fw.so \
$(LOCAL_PATH)/proprietary/system/vendor/firmware/mfc_fw.bin:system/vendor/firmware/mfc_fw.bin \
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/proprietary/system/cameradata/datapattern_420sp.yuv:system/cameradata/datapattern_420sp.yuv \
$(LOCAL_PATH)/proprietary/system/cameradata/datapattern_front_420sp.yuv:system/cameradata/datapattern_front_420sp.yuv \
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/proprietary/system/bin/bcm4334.hcd:system/bin/bcm4334.hcd \
$(LOCAL_PATH)/proprietary/system/bin/bcm4334_murata.hcd:system/bin/bcm4334_murata.hcd \
$(LOCAL_PATH)/proprietary/system/bin/bcm4334_semcosh.hcd:system/bin/bcm4334_semcosh.hcd
[/COLOR]
BUILD COMMANDS
Code:
$ . build/envsetup.sh
$ brunch full_t0lte-userdebug
It will make a cm.zip and a full_t0lte-ota-eng. username.zip in UPP/out/target/product/t0lt. You can use either one, I was told that the full_t0lte zip is not optimized but to be honest I do not know why it makes two zip files.
Thanks to mgale88 we now have a build that will boot, it is still very rough and very much pre alpha but it does boot.Here is a link to his github.​
What is working:
It boots that is pretty much it. (still has graphics issues)
What does not work:
No cellular service
No WiFi
No Bluetooth
The list goes on and on
Downloads​
cm-10.1-20130317-UTOUCH2-t0lte.zip
quantal-preinstalled-phablet-armhf.zip​
How to install​
To install you need to download the cm-10.1-20130317-UTOUCH2-t0lte.zip latest quantal-preinstalled-phablet-armhf.zip. Then preforme a full wipe of cache, delvik cache, factory reset, and system. Then flash the two files in the order given below.
1.cm-10.1-20130317-UTOUCH2-t0lte.zip
2.quantal-preinstalled-phablet-armhf.zip
3.Reboot
Reserved 2
Looks absolutely sickkk!
Re: Ubuntu Touch Preview for the SGH-T889 Note II
I will test it when it is bootable
Sent from my SGH-T889 using xda premium
Re: Ubuntu Touch Preview for the SGH-T889 Note II
Does anyone know how often the ubuntu touch source is going to be updated and when it is will that mean having to rebuild everything from scratch to port it over?
Sent from my T889V on WIND Mobile using xda app-developers app
tppickles said:
Does anyone know how often the ubuntu touch source is going to be updated and when it is will that mean having to rebuild everything from scratch to port it over?
Sent from my T889V on WIND Mobile using xda app-developers app
Click to expand...
Click to collapse
Going by what I know unless Canonical makes some changes to the .mk and config files for the parts of Android that it uses you should not have to make any changes to the device tree when they start rolling out updates because you get the actual Ubuntu part comes from them, you do not compile. It. See the Ubu tu Touch runs in a container in Android right now. The Android parts you have to compile is just there to make it easier to port to Android devices right now at least that is my opinion. But Canonical has put hints in the Android source and the official porting giude they have that they do have plans on changing things up some in the future.
id probably try this out but it looks too much like miui to me.
fix-this! said:
id probably try this out but it looks too much like miui to me.
Click to expand...
Click to collapse
Updated the op with more details on what changes to make per the official guide and per what I did to get it to build.
Re: Ubuntu Touch Preview for the SGH-T889 Note II
Following with interest...
Sent from my GT-N7105 using xda app-developers app
Re: Ubuntu Touch Preview for the SGH-T889 Note II
Definitely following this but not 100% sure about switching to it yet looks like alot to switch over to and switching back?
Sent from my SGH-T889 using xda premium
Building a brand new build from a new sync. Took 9 hours for a fresh sync, a little over 8 hours of getting my working folder set up to build. XDA Senior Member Gerrett made a great post today about the work that is going on for the n7000 Note II. I went through his updated get hub and made all the changes I needed to match his git hub. The two devices are very close to the same so this should work. It is still building right now. I hope to post back later with a booting build. Wish me luck.
Re: Ubuntu Touch Preview for the SGH-T889 Note II
T-Macgnolia said:
Building a brand new build from a new sync. Took 9 hours for a fresh sync, a little over 8 hours of getting my working folder set up to build. XDA Senior Member Gerrett made a great post today about the work that is going on for the n7000 Note II. I went through his updated get hub and made all the changes I needed to match his git hub. The two devices are very close to the same so this should work. It is still building right now. I hope to post back later with a booting build. Wish me luck.
Click to expand...
Click to collapse
I hope it works
Sent from my SGH-T889 using xda premium
Bummer it stopped compiling right after I had posted my last post but I got that error fixred and started building again. It compiled for a good while very close to the end and stopped again. Only this time I do not know why because it is calling for a file in prebuilt/gcc in my build folder but I do not have a prebuilt/gcc, not even in my old work folder that will still compile. I will have to come back tomorrow and see if I can get it figured out. Thought for sure I had it this go around.
I am going to bed tonight no all nighter for me tonight. I will work on it some more tomorroow.
maaany questions
T-Macgnolia said:
Bummer it stopped compiling right after I had posted my last post but I got that error fixred and started building again. It compiled for a good while very close to the end and stopped again. Only this time I do not know why because it is calling for a file in prebuilt/gcc in my build folder but I do not have a prebuilt/gcc, not even in my old work folder that will still compile. I will have to come back tomorrow and see if I can get it figured out. Thought for sure I had it this go around.
I am going to bed tonight no all nighter for me tonight. I will work on it some more tomorroow.
Click to expand...
Click to collapse
oh man that sucks, for some reasons mine still doesn't want to work... I guess its because I trying it on a VM, but it should work the same. I will post my output from terminal tomorrow...
---------- Post added at 08:30 AM ---------- Previous post was at 08:06 AM ----------
Code:
device/samsung/smdk4412-common/camerawrapper/CameraWrapper.cpp: In function 'char* camera_fixup_setparams(int, const char*)':
device/samsung/smdk4412-common/camerawrapper/CameraWrapper.cpp:130:16: error: 'KEY_CITYID' is not a member of 'android::CameraParameters'
device/samsung/smdk4412-common/camerawrapper/CameraWrapper.cpp: In function 'int camera_device_open(const hw_module_t*, const char*, hw_device_t**)':
device/samsung/smdk4412-common/camerawrapper/CameraWrapper.cpp:514:134: warning:
suggest parentheses around assignment used as truth value [-Wparentheses]
make: *** [/home/petruv/UPP/out/target/product/t0lte/obj/SHARED_LIBRARIES/camera .exynos4_intermediates/CameraWrapper.o] Error 1
make: *** Waiting for unfinished jobs....
external/sqlite/dist/sqlite3.c: In function 'fts3SnippetFunc':
external/sqlite/dist/sqlite3.c:129881:11: warning: 'iS' may be used uninitialized in this function [-Wmaybe-uninitialized]
external/sqlite/dist/sqlite3.c:129873:13: note: 'iS' was declared here
make: *** wait: No child processes. Stop.
[email protected]:~/UPP$
That is what I get when I try to make the built. I followed this guide
I had to do this:
Code:
$ cd device/samsung/t0lte
$ cp t0lte.mk full_t0lte.mk
so I can get passed the error where it says its missing "full_t0lte.mk".
Also, I did:
Code:
$ brunch t0lte
instead of
Code:
$ brunch full_t0lte-userdebug
because it was saying it couldn't find this device and was trying to get them from CyanogenMod github.
I don't know if this actually helped anyone or if anyone had the same problem, but I'd love to have some feedback from you guys. Thanks. :good:
pettrel said:
oh man that sucks, for some reasons mine still doesn't want to work... I guess its because I trying it on a VM, but it should work the same. I will post my output from terminal tomorrow...
---------- Post added at 08:30 AM ---------- Previous post was at 08:06 AM ----------
Code:
device/samsung/smdk4412-common/camerawrapper/CameraWrapper.cpp: In function 'char* camera_fixup_setparams(int, const char*)':
device/samsung/smdk4412-common/camerawrapper/CameraWrapper.cpp:130:16: error: 'KEY_CITYID' is not a member of 'android::CameraParameters'
device/samsung/smdk4412-common/camerawrapper/CameraWrapper.cpp: In function 'int camera_device_open(const hw_module_t*, const char*, hw_device_t**)':
device/samsung/smdk4412-common/camerawrapper/CameraWrapper.cpp:514:134: warning:
suggest parentheses around assignment used as truth value [-Wparentheses]
make: *** [/home/petruv/UPP/out/target/product/t0lte/obj/SHARED_LIBRARIES/camera .exynos4_intermediates/CameraWrapper.o] Error 1
make: *** Waiting for unfinished jobs....
external/sqlite/dist/sqlite3.c: In function 'fts3SnippetFunc':
external/sqlite/dist/sqlite3.c:129881:11: warning: 'iS' may be used uninitialized in this function [-Wmaybe-uninitialized]
external/sqlite/dist/sqlite3.c:129873:13: note: 'iS' was declared here
make: *** wait: No child processes. Stop.
[email protected]:~/UPP$
That is what I get when I try to make the built. I followed this guide
I had to do this:
Code:
$ cd device/samsung/t0lte
$ cp t0lte.mk full_t0lte.mk
so I can get passed the error where it says its missing "full_t0lte.mk".
Also, I did:
Code:
$ brunch t0lte
instead of
Code:
$ brunch full_t0lte-userdebug
because it was saying it couldn't find this device and was trying to get them from CyanogenMod github.
I don't know if this actually helped anyone or if anyone had the same problem, but I'd love to have some feedback from you guys. Thanks. :good:
Click to expand...
Click to collapse
I will come back and look at your problem more later I am going to bed. I should have went earlier like I saiad I was. Cause now I have a device that will not go into recovery. I think it is soft bricked
I can not even bott to recovery via "adb reboot recovery". :crying:
T-Macgnolia said:
I will come back and look at your problem more later I am going to bed. I should have went earlier like I saiad I was. Cause now I have a device that will not go into recovery. I think it is soft bricked
I can not even bott to recovery via "adb reboot recovery". :crying:
Click to expand...
Click to collapse
As long as you can get in "Download Mode", you're good to go.
So... I went in different folders and edited some .mk files (commented out any line that have to do with camera), I don't remember which ones, but I got it to build... now I am transferring my files to my phone and will give it a try to see if it boots.
If Ubuntu is being ported to android phones, does that mean other linux distros will be able to be ported as well? Like Linux Mint for example. I think that would look super sexy on a phone.
pettrel said:
oh man that sucks, for some reasons mine still doesn't want to work... I guess its because I trying it on a VM, but it should work the same. I will post my output from terminal tomorrow...
---------- Post added at 08:30 AM ---------- Previous post was at 08:06 AM ----------
Code:
device/samsung/smdk4412-common/camerawrapper/CameraWrapper.cpp: In function 'char* camera_fixup_setparams(int, const char*)':
device/samsung/smdk4412-common/camerawrapper/CameraWrapper.cpp:130:16: error: 'KEY_CITYID' is not a member of 'android::CameraParameters'
device/samsung/smdk4412-common/camerawrapper/CameraWrapper.cpp: In function 'int camera_device_open(const hw_module_t*, const char*, hw_device_t**)':
device/samsung/smdk4412-common/camerawrapper/CameraWrapper.cpp:514:134: warning:
suggest parentheses around assignment used as truth value [-Wparentheses]
make: *** [/home/petruv/UPP/out/target/product/t0lte/obj/SHARED_LIBRARIES/camera .exynos4_intermediates/CameraWrapper.o] Error 1
make: *** Waiting for unfinished jobs....
external/sqlite/dist/sqlite3.c: In function 'fts3SnippetFunc':
external/sqlite/dist/sqlite3.c:129881:11: warning: 'iS' may be used uninitialized in this function [-Wmaybe-uninitialized]
external/sqlite/dist/sqlite3.c:129873:13: note: 'iS' was declared here
make: *** wait: No child processes. Stop.
[email protected]:~/UPP$
That is what I get when I try to make the built. I followed this guide
I had to do this:
Code:
$ cd device/samsung/t0lte
$ cp t0lte.mk full_t0lte.mk
so I can get passed the error where it says its missing "full_t0lte.mk".
Also, I did:
Code:
$ brunch t0lte
instead of
Code:
$ brunch full_t0lte-userdebug
because it was saying it couldn't find this device and was trying to get them from CyanogenMod github.
I don't know if this actually helped anyone or if anyone had the same problem, but I'd love to have some feedback from you guys. Thanks. :good:
Click to expand...
Click to collapse
It looks like you did not clone your device folder because that is where the t0lte.mk and the full_t0lte.mk is located in device/samsung/t0lte.
Go to device/samsung and delete the tolte folder you have if it is one there and open a terminal and do the following .
Code:
cd UPP/device/samsung
git clone git://github.com/T-Macgnolia/android_device_samsung_t0lte.git -b cm-10.1 t0lte
pettrel said:
As long as you can get in "Download Mode", you're good to go.
Click to expand...
Click to collapse
That is the problem it will not go to download mode either. I just ordered a JIG from MobileTechVideos.com. Hopefully when I get it in a couple of days I will be able to get to download mode and flash via Odin.
pettrel said:
So... I went in different folders and edited some .mk files (commented out any line that have to do with camera), I don't remember which ones, but I got it to build... now I am transferring my files to my phone and will give it a try to see if it boots.
Click to expand...
Click to collapse
Glad you got it to build man, did you get it to boot. Also as a good rulle of thumb always document what changes you make when trying to get a build to complete or any added mods you add to your work tree.
acideater said:
If Ubuntu is being ported to android phones, does that mean other linux distros will be able to be ported as well? Like Linux Mint for example. I think that would look super sexy on a phone.
Click to expand...
Click to collapse
Canonical Ltd made put together this mobile version of Ubuntu. From what they (Canonical Ltd) have said about it they have plans to do nothing but improve on this platform if it gains popularity. They mentioned such features as having a full desktop Ubuntu if you dock your device. But as far as other linux distros coming out with a mobile version i can not say yes or no. But I can say it will probably depend on how popular this first Ubuntu phone OS becomes.

[Guide] Step by step instructions for building AOKP 6.0 for the T-Mobile Galaxy S4!

{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Step by step instructions for building AOKP 6.0 for the T-Mobile variant of the Samsung Galaxy S4
I have noticed that the build instructions on the AOKP website are a bit outdated. They date back to JellyBean. I would like to encourage other users to build more custom roms, and I thought that it would help if I show how to build one of the roms wich compiled successfully for me (Praise God!). It is my hope that these instructions are clear and easy to follow. Hey, if I can do it, anybody can do it!
<<<<< Step 1: Setup your system. >>>>>​
To be honest, this can be the most daunting part, because if you do not set this up properly, it just will not work. I use Ubuntu 14.04 on a HP Compaq 6715b laptop. I know, not a very ideal compiler, but it is what I've got. Here are the suggested packages, just open a terminal and paste this in:
Code:
$ sudo apt-get install bison build-essential bzip2 curl dpkg-dev flex g++-multilib git git-review gnupg gperf lib32ncurses5-dev lib32readline-gplv2-dev lib32z1-dev openjdk-7-jdk libbz2-1.0 libbz2-dev libc6-dev libghc-bzlib-dev libgl1-mesa-dev libgl1-mesa-glx:i386 libncurses5-dev libreadline6-dev libreadline6-dev:i386 libx11-dev:i386 libxml2-utils lzop maven pngcrush pngquant python-markdown schedtool squashfs-tools tofrodos x11proto-core-dev xsltproc zip zlib1g-dev zlib1g-dev:i386
This will take a while. Once it is done, do this:
Code:
$ mkdir ~/bin && curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo && chmod a+x ~/bin/repo
$ gedit ~/.bashrc
Now you should see gedit open up your .bashrc file, to which you should add this at the very end, and save it:
Code:
export PATH=~/bin:$PATH
Now you need to close your terminal and open a new one to get the PATH variables to stick. Actually, it wouldn't hurt to reboot your system after installing all of those programs we just installed. Your computer should now be primed and ready to go.
<<<<< Step 2: Download the source. >>>>>​
Here is a very short project for you that takes the computer a long time to complete. Open a terminal and start typing:
Code:
$ cd ~
$ mkdir aokp6
$ cd aokp6
$ repo init -u https://github.com/AOKP/platform_manifest.git -b mm
$ repo sync
You can now go outside, play with the kids, phone a friend, and then go to bed. When you awake the next morning, this might be done, depending on your internet connection!
<<<<< Step 3: Adding the device, kernel, and vendor trees. >>>>>​
In some cases, you can simply type the command
Code:
$ breakfast
and just choose your device, but at this time, the AOKP repository did not include a current device tree for the JFLTETMO phone, so we need to download one. I chose to test out the Dirty Unicorn JFLTETMO devices trees, by going here and choosing to download the zips. Later, perhaps we can learn about adding them as dependencies, but here are the links, be sure to choose the 6.0 branches and click the download button to download the zips:
https://github.com/DirtyUnicorns/android_device_samsung_jfltetmo
https://github.com/DirtyUnicorns/android_kernel_samsung_jf
https://github.com/DirtyUnicorns/android_device_samsung_jf-common
https://github.com/DirtyUnicorns/android_device_samsung_jflte
https://github.com/DirtyUnicorns/android_device_samsung_msm8960-common
https://github.com/DirtyUnicorns/android_device_samsung_qcom-common
https://github.com/TheMuppets/proprietary_vendor_samsung/tree/cm-13.0
Once you have downloaded them, unzip each one and rename them:
android_device_samsung_jfltetmo - jfltetmo
android_device_samsung_jf-common - jf-common
android_device_samsung_jflte - jflte
android_device_samsung_msm8960-common - msm8960-common
android_device_samsung_qcom-common - qcom-common
Go to you aokp6/device folder and create a folder called "samsung". Now put the above folders into it.
Then unzip the kernel_samsung_jf folder and rename it "jf". Go to the aokp6 folder and create a folder called "kernel", go into the kernel folder and make a new folder called "samsung", enter that folder, and put your "jf" folder here. Don't worry, we are almost done.
Now go to your aokp6/vendor folder. Create a new folder called "samsung". Enter the samsung folder and copy the contents of your unzipped proprietary_vendor_samsung folder. This should be a bunch of folders like jf-gsm-common, jf-common, etc. You actually don't need all of these folders right now, but it will not hurt to have them, and there are two folders in there that you need.
Now you should probably take a break before going on to the next step!
<<<<< Step 4: Editing the device, kernel, and vendor trees. >>>>>​
Now, go to the device/samsung/jfltetmo folder and rename du.mk to aokp.mk and edit it as follows:
Code:
$(call inherit-product, device/samsung/jfltetmo/full_jfltetmo.mk)
# Enhanced NFC
$(call inherit-product, vendor/aokp/configs/nfc_enhanced.mk)
# Inherit some common DU stuff.
$(call inherit-product, vendor/aokp/configs/common_full_phone.mk)
PRODUCT_BUILD_PROP_OVERRIDES += \
PRODUCT_NAME=jfltetmo \
TARGET_DEVICE=jfltetmo \
BUILD_FINGERPRINT="samsung/jfltetmo/jfltetmo:4.4.4/KTU84P/M919UVUFNK2:user/release-keys" \
PRIVATE_BUILD_DESC="jfltetmo-user 4.4.4 KTU84P M919UVUFNK2 release-keys"
PRODUCT_NAME := aokp_jfltetmo
PRODUCT_DEVICE := jfltetmo
NOTE: the original file said "vendor/du/config/*" you must change it to "configs" or there will be an error!
Then, in the jfltetmo folder, delete the cm.dependencies file. Do the same deletion in all of the device/samsung/* directories. You don't want to download CM dependencies, because you already have them here.
Note: Because repositories are constantly updated, I can only garuntee that this will work based on the files as they were the day of this writing. However, with all of this in place, if you follow this guide, it should work realatively the same as what happened for me.
You can actually just run the compiler right now, however, you will have several stop errors that we plan to address here before you do that. All of these edits are due to errors that cropped up when running the compiler.
The first error was relating to libhealthd. Android and AOKP source already has a built in libhealthd for the qcom motherboards, and it is a duplication of efforts (which causes an error) to have both the device tree libhealthd and the source libhealthd. So here is how we fix it. Now, go to the device/samsung/qcom-common/libhealthd folder, and make the following changes to the Android.mk file:
Code:
# WJH LOCAL_PATH := $(call my-dir)
# WJH include $(CLEAR_VARS)
# WJH LOCAL_SRC_FILES := healthd_board_default.cpp
# WJH LOCAL_MODULE := libhealthd.qcom
# WJH LOCAL_C_INCLUDES := system/core/healthd bootable/recovery
# WJH include $(BUILD_STATIC_LIBRARY)
Another error that will crop up if you run the compiler now, is that your multi-media video will have a problem setting the picture order, and the compiler will get confused and stop with an error. So we can fix that here before we begin. We need to edit one of the hardware files. Go to hardware/qcom/media-caf/msm8960/mm-video/vidc/venc/src, and edit the video_encoder_device.cpp file as follows (this is the last few lines of the file):
Code:
bool venc_dev::venc_set_picture_order_count_type(OMX_U32 type)
{
// WJH venc_poctype temp;
// WJH venc_ioctl_msg ioctl_msg = {&temp, NULL};
// WJH temp.poc_type = type;
// WJH DEBUG_PRINT_HIGH("Setting poc type: %d", type);
// WJH if(ioctl(m_nDriver_fd, VEN_IOCTL_SET_PIC_ORDER_CNT_TYPE, (void *)&ioctl_msg) < 0)
// WJH {
// WJH DEBUG_PRINT_ERROR("Request for setting poc type failed");
// WJH return false;
// WJH }
return true;
}
And finaly, there is an error that will pop up and stop your compiler because of a conflict over the "ambientIsAvailable" portion of this file: packages/apps/InCallUI/src/com/android/incallui/ModButtonPresenter.java at line 404. So we will just go ahead and edit it here before we begin.
Code:
final boolean showNote = isProvisioned &&
// WJH DeepLinkIntegrationManager.getInstance().ambientIsAvailable(getUi().getContext()) &&
mNoteDeepLink != null;
Now that all of the hard work is done, it is time to actually build something!
<<<<< Step 5: Start your build! >>>>>​
Phew! You have invested a lot of hours into this project, now it is time to actually put those files and time to use! Open up a terminal in your aokp6 folder and start typing:
Code:
aokp6$ . build/envsetup.sh
Which will output something like this:
Code:
including vendor/aokp/vendorsetup.sh
including sdk/bash_completion/adb.bash
including vendor/aokp/bash_completion/git.bash
including vendor/aokp/bash_completion/repo.bash
Now type:
Code:
aokp6$ brunch jfltetmo
Which will start the long build process, it will output this:
Code:
including vendor/aokp/vendorsetup.sh
Got local manifest
Got local manifest
Checked dependency tree over :
NO_DEPS: device/*/jfltetmo
============================================
PLATFORM_VERSION_CODENAME = REL
PLATFORM_VERSION = 6.0.1
AOKP_VERSION = aokp_jfltetmo_mm_unofficial_2016-06-20_1015
TARGET_PRODUCT = aokp_jfltetmo
TARGET_BUILD_VARIANT = userdebug
TARGET_BUILD_TYPE = release
TARGET_BUILD_APPS =
TARGET_ARCH = arm
TARGET_ARCH_VARIANT = armv7-a-neon
TARGET_CPU_VARIANT = krait
TARGET_2ND_ARCH =
TARGET_2ND_ARCH_VARIANT =
TARGET_2ND_CPU_VARIANT =
HOST_ARCH = x86_64
HOST_OS = linux
HOST_OS_EXTRA = Linux-3.16.0-73-generic-x86_64-with-Ubuntu-14.04-trusty
HOST_BUILD_TYPE = release
BUILD_ID = MOB30J
OUT_DIR = /home/alaskalinuxuser/Documents/projects/phones/compile/aokp6/out
============================================
And this:
Code:
.....edited for space.....
Import includes file: /home/alaskalinuxuser/Documents/projects/phones/compile/aokp6/out/host/linux-x86/obj/EXECUTABLES/acp_intermediates/import_includes
host C: libhost <= build/libs/host/CopyFile.c
build/libs/host/CopyFile.c:86:43: warning: unused parameter 'pSrcStat' [-Wunused-parameter]
static bool isSameFile(const struct stat* pSrcStat, const struct stat* pDstStat)
^
build/libs/host/CopyFile.c:86:72: warning: unused parameter 'pDstStat' [-Wunused-parameter]
static bool isSameFile(const struct stat* pSrcStat, const struct stat* pDstStat)
^
build/libs/host/CopyFile.c:104:42: warning: unused parameter 'src' [-Wunused-parameter]
static void printNotNewerMsg(const char* src, const char* dst, unsigned int options)
^
build/libs/host/CopyFile.c:531:69: warning: unused parameter 'isCmdLine' [-Wunused-parameter]
static int copyFileRecursive(const char* src, const char* dst, bool isCmdLine, unsigned int options)
.....edited for space..... Stuff like this will scroll by .....
Copy: /home/alaskalinuxuser/Documents/projects/phones/compile/aokp6/out/target/product/jfltetmo/obj/STATIC_LIBRARIES/libext4_intermediates/libipt_LOG.c
Copy: /home/alaskalinuxuser/Documents/projects/phones/compile/aokp6/out/target/product/jfltetmo/obj/STATIC_LIBRARIES/libext4_intermediates/libipt_MASQUERADE.c
Copy: /home/alaskalinuxuser/Documents/projects/phones/compile/aokp6/out/target/product/jfltetmo/obj/STATIC_LIBRARIES/libext4_intermediates/libipt_MIRROR.c
Copy: /home/alaskalinuxuser/Documents/projects/phones/compile/aokp6/out/target/product/jfltetmo/obj/STATIC_LIBRARIES/libext4_intermediates/libipt_NETMAP.c
target StaticLib: libip4tc (/home/alaskalinuxuser/Documents/projects/phones/compile/aokp6/out/target/product/jfltetmo/obj/STATIC_LIBRARIES/libip4tc_intermediates/libip4tc.a)
target thumb C++: keystore <= system/security/keystore/keystore.cpp
target thumb C++: keystore <= system/security/keystore/keyblob_utils.cpp
target thumb C++: keystore <= system/security/keystore/operation.cpp
.....edited for space.....
Notice that there were some "warning" flags in there. Warnings are not all bad, but they can be. In this case it works out okay. Hopefully, after many hours, you should see this:
Code:
______ _____ __ __ _____
/\ _ \/\ __`\/\ \/\ \ /\ _ `\
\ \ \L\ \ \ \/\ \ \ \/'/'\ \ \L\ \
\ \ __ \ \ \ \ \ \ , < \ \ ,__/
\ \ \/\ \ \ \_\ \ \ \\`\ \ \ \/
\ \_\ \_\ \_____\ \_\ \_\\ \_\
\/_/\/_/\/_____/\/_/\/_/ \/_/
===========-Package complete-===========
zip: /home/alaskalinuxuser/Documents/projects/phones/compile/aokp6/out/target/product/jfltetmo/aokp_jfltetmo_mm_unofficial_2016-06-19_0149.zip
md5: 46bc18249c61988e75aba813464692a3
size: 320M
========================================
Success! Praise God! Now you can put this on your phone and test it out! Hopefully everything will be working! For future use, now you can start making changes or edits, from backgrounds to kernels! Have fun and make lots of backups. Remember, sometimes it is really hard to undo a change that you make.
Hopefully we learned how to set up our system, get the source, add devices and kernels that are not in the source, make proper edits, and run the compiler. Like I said, this works on my machine, as of this writing. You may notice, that if you make this build, it will not be identical to the one that I have posted on XDA. That is because I have made a few edits, additions, and/or subtractions here and there. That is the great thing about Android and open source! It is now up to you to make it better, to make it unique, or to make it you. Good luck with those builds, and be sure to share and help the next guy or gal with their projects too!
Linux - keep it simple.

[Q] Help to compile the Mi A3 kernel?

Hi, I'm wanting to compile the mi-a3 kernel to use with GrapheneOs(as it needs to be compiled before the rom compilation).
I'm trying to compile it with this script:
Code:
#!/bin/bash
set -o errexit -o pipefail
[[ $# -eq 1 ]] || exit 1
DEVICE=$1
if [[ $DEVICE != laurel_sprout && $DEVICE != blueline && $DEVICE != crosshatch && $DEVICE != bonito ]]; then
echo invalid device codename
exit 1
fi
ROOT_DIR=$(realpath ../../..)
export KBUILD_BUILD_VERSION=1
export KBUILD_BUILD_USER=grapheneos
export KBUILD_BUILD_HOST=grapheneos
export KBUILD_BUILD_TIMESTAMP="$(date -d "@$(git --no-pager show -s --format=%ct)")"
PATH="$ROOT_DIR/prebuilts/build-tools/linux-x86/bin:$PATH"
PATH="$ROOT_DIR/prebuilts/build-tools/path/linux-x86:$PATH"
PATH="$ROOT_DIR/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin:$PATH"
PATH="$ROOT_DIR/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9/bin:$PATH"
PATH="$ROOT_DIR/prebuilts/clang/host/linux-x86/clang-r383902/bin:$PATH"
PATH="$ROOT_DIR/prebuilts/misc/linux-x86/lz4:$PATH"
PATH="$ROOT_DIR/prebuilts/misc/linux-x86/dtc:$PATH"
PATH="$ROOT_DIR/prebuilts/misc/linux-x86/libufdt:$PATH"
export LD_LIBRARY_PATH="$ROOT_DIR/prebuilts/clang/host/linux-x86/clang-r383902/lib64:$LD_LIBRARY_PATH"
chrt -bp 0 $$
make \
O=out \
ARCH=arm64 \
CC=clang \
HOSTCC=clang \
HOSTCXX=clang++ \
CLANG_TRIPLE=aarch64-linux-gnu- \
CROSS_COMPILE=aarch64-linux-android- \
CROSS_COMPILE_ARM32=arm-linux-androideabi- \
vendor/laurel_sprout-perf_defconfig
make -j$(nproc) \
O=out \
ARCH=arm64 \
CC=clang \
HOSTCC=clang \
HOSTCXX=clang++ \
CLANG_TRIPLE=aarch64-linux-gnu- \
CROSS_COMPILE=aarch64-linux-android- \
CROSS_COMPILE_ARM32=arm-linux-androideabi-
mkdir -p "$ROOT_DIR/device/xiaomi/$DEVICE-kernel"
cp out/arch/arm64/boot/{dtbo.img,Image.lz4} "$ROOT_DIR/device/xiaomi/$DEVICE-kernel"
which I modified from the one at kernel/google/crosshatch/build.sh on the grapheneOs android 10 repo.
But when I run the script I get an make error, this is the last few lines from the script when it throws the error out:
Code:
../drivers/usb/phy/phy-msm-qusb.c:1086:4: warning: misleading indentation; statement is not part of the previous 'if' [-Wmisleading-indentation]
dev_err(dev, "couldn't get iface_clk(%d)\n", ret);
^
../drivers/usb/phy/phy-msm-qusb.c:1084:3: note: previous statement is here
if (ret == -EPROBE_DEFER)
^
CC drivers/usb/storage/transport.o
1 warning generated.
CC drivers/usb/storage/usb.o
CC drivers/usb/storage/initializers.o
AR drivers/usb/phy/built-in.o
CC drivers/usb/storage/sierra_ms.o
CC drivers/usb/storage/option_ms.o
CC drivers/usb/storage/usual-tables.o
AR drivers/usb/storage/usb-storage.o
AR drivers/usb/storage/built-in.o
AR drivers/usb/built-in.o
AR drivers/built-in.o
make[1]: Saindo do diretório '/run/media/cota/47053fcc-4636-4d26-8e40-bb11fa4e2e05/Android/grapheneos-RP1A.201105.002.2020.11.03.03/kernel/xiaomi/laurel_sprout/out'
make: *** [Makefile:146: sub-make] Erro 2
I think the problem with this is the defconfig I used, which was located at arch/arm64/configs/vendor/laurel_sprout-perf_defconfig as I don't know which one I should use but can anyone help me into compiling the kernel?
kernel link
thanks.

Categories

Resources