Unable to compile ROMS with SnapDragon Clang ! - OnePlus 3 Questions & Answers

I am unable make use of the SDClang compiler on my
oneplus3 even after setting TARGET_USE_SDCLANG=true in my device's Boardconfig.mk and placing the sdclang-3.8 toolchain in prebuilts/clang/linux-x86/host . any help would be highly appreciated .
The image I'm providing should show the compiler used as sdclang-3.8.7 llvm , but instead of using qClang , it is using aClang (that is the default compiler for CM14.1)

1. Download the Qualcomm LLVM Compiler here: https://developer.qualcomm.com/download/sdllvm/snapdragon-llvm-compiler-...
2. Extract Snapdragon-llvm-3.8.4-toolchain.tar.gz
3. Move toolchains\llvm-Snapdragon_LLVM_for_Android_3.8\prebuilt\linux-x86_64 to prebuilts/clang/linux-x86/host/sdclang-3.8 within your Android build environment.
4. Add the following lines to your device's BoardConfig:
ifneq ($(HOST_OS),darwin)
SDCLANG := true
SDCLANG_PATH := prebuilts/clang/linux-x86/host/sdclang-3.8/bin
SDCLANG_LTO_DEFS := device/qcom/common/sdllvm-lto-defs.mk
endif
5. Compile Android

https://developer.qualcomm.com/qfile/26662/snapdragon-llvm-4.0.2-linux64.tar.gz
https://developer.qualcomm.com/qfile/26953/readme-install-snapdragon-llvm-402.pdf
https://mega.nz/#!PRth0LAQ!_24MF8BqqDQdGrPcTy7VRm8MpnrKYDBtrnMmQjGk_RA
https://mega.nz/#!jFEVBDZa!hxXIfxTrwgwJ79JCW3bKiZ6ltum7OOqpyMuEbQaw74o

厉害了,还是不能编译

Related

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

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.

Fixing stock kernel sources for H30-U10

Github repo: https://github.com/kernel-killer/android_kernel_huawei_h30u10
All changes I made since last commit are in my private repo.
Install packages (Not sure if it's right):
Code:
sudo apt-get install build-essential
Note: Please run ./mk ckeck-env to verify your build enviroment (Newer GNU MAKE will fail but the code compiles the same with new or older version)
Build:
Code:
./mk bm_new k
Testing your new kernel:
Download both attachments (KernelSwapper and BootimgRestore).
Append headers from stock kernel to zImage (which can be found at ./out/target/product/huawei82_cwet_kk/obj/KERNEL_OBJ/arch/arm/boot/zImage)
In KernelSwapper update 'kernel' with your own generated zImage rename it to 'kernel' and replace it inside zip.
In BootimgRestore replace 'boot.img' with your current ROM's boot.img in case that something goes wrong (e.g.: Phone not booting).
Copy the two new zips into phone's memory (or SD card) and flash KernelSwapper.
===== Reserved #1 =====
Thanks for the awesome work KK. I am on CM 13 3.4.67 kernel. Can i use this or do i have to be in stock rom for testing the kernal?
Sent from my Honor 3C using Tapatalk
---------- Post added at 06:12 AM ---------- Previous post was at 06:02 AM ----------
Update : Flashed the kernel, phone booted but felt laggish while using. I am still testing, will let you know what happens
Sent from my Honor 3C using Tapatalk
karkeankit said:
Thanks for the awesome work KK. I am on CM 13 3.4.67 kernel. Can i use this or do i have to be in stock rom for testing the kernal?
Sent from my Honor 3C using Tapatalk
---------- Post added at 06:12 AM ---------- Previous post was at 06:02 AM ----------
Update : Flashed the kernel, phone booted but felt laggish while using. I am still testing, will let you know what happens
Sent from my Honor 3C using Tapatalk
Click to expand...
Click to collapse
Yes, I'm sure that the kernel has multiple bugs. The phone may feel laggish because there is enabled low-level kernel debugging over UART.
Thank you for testing...
kernel.killer said:
Yes, I'm sure that the kernel has multiple bugs. The phone may feel laggish because there is enabled low-level kernel debugging over UART.
Thank you for testing...
Click to expand...
Click to collapse
You are welcome, wishint you good luck for further development
Sent from my Honor 3C using Tapatalk
Hi, tnx for The kernel
if i Update my kernel VPN bug in CM12.1 will fix?
hamadk said:
Hi, tnx for The kernel
if i Update my kernel VPN bug in CM12.1 will fix?
Click to expand...
Click to collapse
Nope, it's ROM bug not a kernel bug plus I have released only development preview version which has enabled many debugging options and it may be quite buggy.
Thanks, but can this process led to a suitable kernel for CM13?
Does this kernel fixes the video playback problem and the recording problem?(Can't play or capture 720p videos, screen recorder works fine, just the camera.)
Sent from my Huawei Honor 3C using XDA Labs
Lumpbloom7 said:
Does this kernel fixes the video playback problem and the recording problem?(Can't play or capture 720p videos, screen recorder works fine, just the camera.)
Sent from my Huawei Honor 3C using XDA Labs
Click to expand...
Click to collapse
http://forum.xda-developers.com/showpost.php?p=67848925&postcount=8
mhxygh said:
Thanks, but can it this process led to a suitable kernel for CM13?
Click to expand...
Click to collapse
Aim of this project is to make stock kernel sources stable for KitKat ROMs (It is originally for KK) but somebody else may patch them for CM 13. I am not working on this nor I'll do.
Will you be adding extra CPU governors and IO schedulers along with kernel level wakeups for double tap waking?
I was wondering who else is developing kernel 3.10.XX for this device ?
Ms_Julia said:
I was wondering who else is developing kernel 3.10.XX for this device ?
Click to expand...
Click to collapse
Actually, nobody is working on 3.10.X kernel. And I'm rather focusing on LineageOS for now.
What is the defconf for our device in kernel source
imranpopz said:
What is the defconf for our device in kernel source
Click to expand...
Click to collapse
This should include most configs
Code:
/* Mediatek common */
./mediatek/config/common/autoconfig/kconfig/AEE
./mediatek/config/common/autoconfig/kconfig/USER
./mediatek/config/common/ProjectConfig.mk
/* MT6582 common */
./mediatek/config/mt6582/autoconfig/kconfig/platform
./mediatek/config/mt6582/ProjectConfig.mk
/* h30u10 device specific */
./mediatek/config/huawei82_cwet_kk/autoconfig/kconfig/project
./mediatek/config/huawei82_cwet_kk/ProjectConfig.mk
kernel.killer said:
This should include most configs
Code:
/* Mediatek common */
./mediatek/config/common/autoconfig/kconfig/AEE
./mediatek/config/common/autoconfig/kconfig/USER
./mediatek/config/common/ProjectConfig.mk
/* MT6582 common */
./mediatek/config/mt6582/autoconfig/kconfig/platform
./mediatek/config/mt6582/ProjectConfig.mk
/* h30u10 device specific */
./mediatek/config/huawei82_cwet_kk/autoconfig/kconfig/project
./mediatek/config/huawei82_cwet_kk/ProjectConfig.mk
Click to expand...
Click to collapse
Replace Device Name with the configuration file found at:
Source/arch/arm/configs
It's written in this way something_DeviceCodename_user_defconfig
I need for the above step.. ☝☝☝
imranpopz said:
Replace Device Name with the configuration file found at:
Source/arch/arm/configs
It's written in this way something_DeviceCodename_user_defconfig
I need for the above step.. ☝☝☝
Click to expand...
Click to collapse
Well... This is Mediatek, DO NOT expect the sources to look nice. The configs are scattered through ./mediatek subdirectories, *.mk files are parsed and configs are assembled during build. Unfortunatelly, even if you manually assemble .config you will NOT be able to build the kernel. It is full of dirty hacks (Mediatek) and just typing "make" won't work, build will break.
Build:
Code:
$ git clone https://github.com/kernel-killer/android_kernel_huawei_h30u10.git
$ cd android_kernel_huawei_h30u10
$ export ARCH=arm && export ARCH_MTK_PLATFORM=mt6582 && export TARGET_PRODUCT=huawei82_cwet_kk
$ export CROSS_COMPILE=/path-to-your-toolchain/.../bin/arm-linux-androideabi-
$ ./mk n k
Code:
$ ./mk -h
Usage: (makeMtk|mk) [options] project actions [modules]
Options:
-t, -tee : Print log information on the standard-out.
-o, -opt=bypass_argument_to_make
: Pass extra arguments to make.
-h, -help : Print this message and exit.
Projects:
one of available projects.
Actions:
listp, listproject
: List all available projects.
check-env : Check if build environment is ready.
check-dep : Check feature dependency.
n, new : Clean and perform a full build.
c, clean : Clean the immediate files(such as, objects, libraries etc.).
r, remake : Rebuild(target will be updated if any dependency updats).
mrproper : Remove all generated files + config + various backup files in Kbuild process.
bm_new : "new" + GNU make's "-k"(keep going when encounter error) feature.
bm_remake : "remake" + GNU make's "-k"(keep going when encounter error) feature.
mm : Build module through Android native command "mm"
mma : Build module through Android native command "mma"
emigen : Generate EMI setting source code.
nandgen : Generate supported NAND flash device list.
codegen : Generate trace DB(for META/Cather etc. tools used).
drvgen : Generate driver customization source.
custgen : Generate customization source.
javaoptgen : Generate the global java options.
ptgen : Generate partition setting header & scatter file.
bindergen : Generate binder related information
sign-image : Sign all the image generated.
encrypt-image : Encrypt all the image generated.
update-api : Android default build action
(be executed if system setting or anything removed from API).
check-modem : Check modem image consistency.
upadte-modem : Update modem image located in system.img.
modem-info : Show modem version
gen-relkey : Generate releasekey for application signing.
check-appres : Check unused application resource.
sdk : Build sdk package.
win_sdk : Build sdk package with a few Windows tools.
banyan_addon : Build MTK sdk addon.
banyan_addon_x86 :Build MTK sdk x86 addon.
cts : Build cts package.
bootimage : Build boot image(boot.img).
cacheimage : Build cache image(cache.img).
systemimage : Build system image(system.img).
snod : Build system image without dependency.
(that is, ONLY pack the system image, NOT checking its dependencies.)
recoveryimage : Build recovery image(recovery.img).
secroimage : Build secro image(secro.img).
factoryimage : Build factory image(factory.img).
userdataimage : Build userdata image(userdata.img).
userdataimage-nodeps
: Build userdata image without dependency.
(that is, ONLY pack the userdata image, NOT checking its dependencies.)
dump-products : Dump products related configuration(PRODUCT_PACKAGE,PRODUCT_NAME ect.)
target-files-package
: Build the target files package.
(A zip of the directories that map to the target filesystem.
This zip can be used to create an OTA package or filesystem image
as a post-build step.)
updatepackage : Build the update package.
dist : Build distribution package.
Modules:
pl, preloader : Specify to build preloader.
lk : Specify to build little kernel.
md32 : Specify to build DSP md32.
tz, trustzone : Specify to build trusted execution environment.
k, kernel : Specify to build kernel.
dr, android : Specify to build android.
NULL : Specify to build all components/modules in default.
k <module path>
: Specify to build kernel component/module with the source path.
dr <module name>
: Specify to build android component/module with module name.
Other tools:
prebuilts/misc/linux-x86/ccache/ccache -M 10G
: Set CCACHE pool size to 10GB
Example:
./mk -t e1k emigen
: Generate EMI setting source code.
./mk -o=TARGET_BUILD_VARIANT=user e1k n
: Start a user mode full build.
./mk listp : List all available projects.
./mk e1k bootimage
: Build bootimage for e1k project.
./mk e1k bm_new k
: Build kernel for e1k project.
./makeMtk e1k c,bm_remake pl k
: Clean & Build preloader and kernel for e1k project.
./makeMtk e1k n k kernel/xxx/xxx
: Build(full build) kernel component/module
under the path "kernel/xxx/xxx" for e1k project.
./makeMtk e1k r dr Gallery
: Rebuild android module named Gallery for e1k project.
./makeMtk e1k mm packages/apps/Settings
: Change Directory to packages/apps/Settings and execute "mm"
./makeMtk e1k mma packages/apps/Settings
: Change Directory to packages/apps/Settings and execute "mma"
Edit:
I fixed the sources, so menuconfig can be used.
Apply patch:
Code:
$ git am 0001-Fix-build-using-make-command.patch
Build:
Code:
$ cd kernel && export ARCH=arm && export ARCH_MTK_PLATFORM=mt6582 && export TARGET_PRODUCT=huawei82_cwet_kk
$ export CROSS_COMPILE=/path-to-your-toolchain/.../bin/arm-linux-androideabi-
$ make -C $(pwd) O=output h30u10_defconfig menuconfig
$ make -C $(pwd) O=output
Append MTK headers:
Code:
$ ../mediatek/build/tools/mkimage output/arch/arm/boot/zImage KERNEL > output/zImage
*Note: I recommend using AOSP arm-linux-androideabi-4.9 toolchain.
Getting cp: cannot stat 'out/target/product/huawei82_cwet_kk_kernel.log
Make [1]: [kernel ] error 1
Make: *** [remake] error 2

[LineageOS Building Question]Custom third party APKs: How to add them to source code?

Hi to all!
I'm building Lineage OS for my device. I added some third party app to my source code: I put apk in a folder in the directory /packages/apps, I added all the apk's name in /vendor/cm/config/common.mk and also within /build/target/core.mk, but the building process doesn't see them and it doesn't include them in the ROM package.
I followed many guides, but all of them failed on this, so I think i'm forgetting something.
There is a method to add third party app to the source code?
Gabrius99 said:
Hi to all!
I'm building Lineage OS for my device. I added some third party app to my source code: I put apk in a folder in the directory /packages/apps, I added all the apk's name in /vendor/cm/config/common.mk and also within /build/target/core.mk, but the building process doesn't see them and it doesn't include them in the ROM package. I followed many guides, but all of them failed on this, so I think i'm forgetting something. There is a method to add third party app to the source code?
Click to expand...
Click to collapse
Try asking within the following thread since it involves how to build a custom ROM from Source Code to End.
http://forum.xda-developers.com/showthread.php?t=2814763
They should be able to either help you out or guide you in the right direction as to where to find the answer.
"Live Long and Prosper..."
~Ambassador S'chn T'gai Spock
Sent via Communicator [D2VZW] from the Bridge of the U.S.S. Enterprise
Ibuprophen said:
Try asking within the following thread since it involves how to build a custom ROM from Source Code to End.
http://forum.xda-developers.com/showthread.php?t=2814763
They should be able to either help you out or guide you in the right direction as to where to find the answer.
"Live Long and Prosper..."
~Ambassador S'chn T'gai Spock
Sent via Communicator [D2VZW] from the Bridge of the U.S.S. Enterprise
Click to expand...
Click to collapse
Thanks a lot
I hope they'll answer me
Gabrius99 said:
Hi to all!
I'm building Lineage OS for my device. I added some third party app to my source code: I put apk in a folder in the directory /packages/apps, I added all the apk's name in /vendor/cm/config/common.mk and also within /build/target/core.mk, but the building process doesn't see them and it doesn't include them in the ROM package.
I followed many guides, but all of them failed on this, so I think i'm forgetting something.
There is a method to add third party app to the source code?
Click to expand...
Click to collapse
Hi. I don't know if you achieved your goal, but I did the procedure bellow to add LibreOfficeViewer to my build and It works for me. Only change the path of device.mk to your device:
LibreofficeViewer
* Create the directory ~/android/system/packages/apps/LibreOfficeViewer
* Edit ~/android/system/packages/apps/LibreOfficeViewer/Android.mk and add:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE := LibreOfficeViewer
LOCAL_CERTIFICATE := media
LOCAL_SRC_FILES := LibreOfficeViewer.apk
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
include $(BUILD_PREBUILT)
* Edit ~/android/system/device/motorola/harpia/device.mk and add:
# LibreOfficeViewer
PRODUCT_PACKAGES += \
LibreOfficeViewer
* Copy LibreOfficeViewer.apk to ~/android/system/packages/apps/LibreOfficeViewer
That's it.
cvbrt said:
Hi. I don't know if you achieved your goal, but I did the procedure bellow to add LibreOfficeViewer to my build and It works for me. Only change the path of device.mk to your device:
LibreofficeViewer
* Create the directory ~/android/system/packages/apps/LibreOfficeViewer
* Edit ~/android/system/packages/apps/LibreOfficeViewer/Android.mk and add:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE := LibreOfficeViewer
LOCAL_CERTIFICATE := media
LOCAL_SRC_FILES := LibreOfficeViewer.apk
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
include $(BUILD_PREBUILT)
* Edit ~/android/system/device/motorola/harpia/device.mk and add:
# LibreOfficeViewer
PRODUCT_PACKAGES += \
LibreOfficeViewer
* Copy LibreOfficeViewer.apk to ~/android/system/packages/apps/LibreOfficeViewer
That's it.
Click to expand...
Click to collapse
I received some answers in the other thread, but I didn't tried those methods yet. Thanks anyway for the help
cvbrt said:
Hi. I don't know if you achieved your goal, but I did the procedure bellow to add LibreOfficeViewer to my build and It works for me. Only change the path of device.mk to your device:
LibreofficeViewer
* Create the directory ~/android/system/packages/apps/LibreOfficeViewer
* Edit ~/android/system/packages/apps/LibreOfficeViewer/Android.mk and add:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE := LibreOfficeViewer
LOCAL_CERTIFICATE := media
LOCAL_SRC_FILES := LibreOfficeViewer.apk
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
include $(BUILD_PREBUILT)
* Edit ~/android/system/device/motorola/harpia/device.mk and add:
# LibreOfficeViewer
PRODUCT_PACKAGES += \
LibreOfficeViewer
* Copy LibreOfficeViewer.apk to ~/android/system/packages/apps/LibreOfficeViewer
That's it.
Click to expand...
Click to collapse
Great! Still works great for lineage18.1. But u no, ~/android/system is called ~/android/lineage here.
y0va said:
Great! Still works great for lineage18.1. But u no, ~/android/system is called ~/android/lineage here.
Click to expand...
Click to collapse
I hate to revive such a long dead thread but I've been struggling with this and hoping for some help so please forgive me. Do you happen to know if the process is any different for LineageOS 20? I'm getting an error that it's failed due to a non-existent module in product_packages.

Android.mk - include prebuilt apk with splitted resource apk

Hi @All,
i'm using a custom vendor tree for my rom with some apk's which will be included directly into my rom during build.
here is a sample (part) of my android.mk of my gapps vendor tree:
Code:
include $(CLEAR_VARS)
LOCAL_MODULE := GoogleMaps
LOCAL_SRC_FILES := app/$(LOCAL_MODULE).apk
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_MODULE_CLASS := APPS
LOCAL_CERTIFICATE := PRESIGNED
include $(BUILD_PREBUILT)
And now the funny part: Since longer time apks from some dev's including (google) ae splittet to a primary apk without special resourcs like dpi realted stuff or lang packs. This parts are delivered as seperated resource apk's while for example downloading from play store.
Ho can i included this special resource apk's ?
I know they must be located in same folder - for example if Google Maps:
primary apk location:
Code:
/system/app/GoogleMaps/GoogleMaps.apk
Than the german lang pack must be located this way:
Code:
/system/app/GoogleMaps/split.config.de.apk
Does anybody know the working solution to include the resource apk inside the android.mk (copy file breaks cause it's identified as apk) - i didn't found a solution...
Thx
Use
Code:
LOCAL_PACKAGE_SPLITS := split.config.de.apk split.config.mdpi.apk
For example, all of splits can be listed in that variable.
Unfortunately, during build, system will try to sign split apks even if PRESIGNED flag is specified. Solution is to remove signing rules in prebuilt_internal.mk.
Seems that using prebuilt split apps isn't supported for building android. Only building and installing split apks from sources (Take a look on "Split" app inside frameworks/tests folder).

Snapdragon Samsung Galaxy S8 LineageOS port has build errors.

Hello,
I am trying to port LineageOS to the Samsung Galaxy S8 as my first LineageOS port. I know this is probably one heck of an undertaking for a first port but a rooted snapdragon-based S8 is currently the only device I have access to and I would like to have stock-ish android on this device.
In any case, I am running into errors while trying to build for the platform.
I am using this guide with this guide for reference to try to port.
I have followed the first guide basically to the tee so far.
These are all of the things (of interest) that I have done.​
1. I executed these commands to clone the code base:
Code:
repo init -u https://github.com/LineageOS/android.git -b lineage-19.1
repo sync
2. I have created a file called "local_manifests.xml" in the directory ".repo/local_manifests/" that contains the following:
Code:
?xml version="1.0" encoding="UTF-8"?>
<manifest>
<remote name="android_device_samsung_dreamlte" fetch="https://github.com/TeamWin/" revision="android-9.0"/>
<project name="android_device_samsung_dreamlte" path="device/samsung/dreamlte" remote="android_device_samsung_dreamlte"
revision="android-9.0"/>
<remote name="android_kernel_samsung_msm8998" fetch="https://github.com/jesec/" revision="cm-14.1"/>
<project name="android_kernel_samsung_msm8998" path="kernel/samsung/msm8998" remote="android_kernel_samsung_msm8998" revision="cm-
14.1"/>
<remote name="vendor_samsung_dreamlte" fetch="https://github.com/AndroidBlobs/" revision="dreamltexx-user-8.0.0-R16NW-
G950FXXS4CRJD-release-keys"/>
<project name="vendor_samsung_dreamlte" path="vendor/samsung/dreamlte" remote="vendor_samsung_dreamlte" revision="dreamltexx-user-8.
0.0-R16NW-G950FXXS4CRJD-release-keys"/>
</manifest>
3. I have rerun the repo sync command to sync the blobs, kernel and architecture specific information from the local manifests.
4. I have added a file in the "device/samsung/dreamlte" directory called "lineage_dreamlte.mk" this file contains the following information based on the original "lineage.dependencies" file:
Code:
# Inherit from the common Open Source product configuration
$(call inherit-product, $(SRC_TARGET_DIR)/product/aosp_base_telephony.mk)
# Inherit from our custom product configuration
$(call inherit-product, vendor/lineage/config/common.mk)
PRODUCT_DEVICE := dreamlte
PRODUCT_NAME := lineage_dreamlte
PRODUCT_MODEL := Galaxy S8
PRODUCT_BRAND := Samsung
PRODUCT_MANUFACTURER := Samsung
5. I have added a blank file called "lineage.dependencies" in the same directory because the original omni.dependencies was also blank
6. I have modified the file called "BoardConfig.mk" in the same directory to read the following. This file was made based on a combination of the original file (which is for the Exynos-based model of the S8) and the board configuration for the Google Pixel 2 (available here) which has the same SOC as the Snapdragon-based S8.
Code:
Platform
DEVICE_CODENAME := dreamlte
DEVICE_PATH := device/samsung/$(DEVICE_CODENAME)
BOARD_VENDOR := samsung
TARGET_BOARD_PLATFORM := msm8998
TARGET_BOOTLOADER_BOARD_NAME := msm8998
TARGET_NO_BOOTLOADER := true
TARGET_NO_RADIOIMAGE := true
# Architecture
TARGET_ARCH := arm64
TARGET_ARCH_VARIANT := armv8-a
TARGET_CPU_ABI := arm64-v8a
TARGET_CPU_ABI2 :=
TARGET_CPU_VARIANT := cortex-a53
TARGET_CPU_SMP := true
# Secondary Architecture
TARGET_2ND_ARCH := arm
TARGET_2ND_ARCH_VARIANT := armv8-a
TARGET_2ND_CPU_ABI := armeabi-v7a
TARGET_2ND_CPU_ABI2 := armeabi
TARGET_2ND_CPU_VARIANT := cortex-a53
# File systems
BOARD_HAS_LARGE_FILESYSTEM := true
TARGET_USERIMAGES_USE_EXT4 := true
TARGET_USERIMAGES_USE_F2FS := true
BOARD_HAS_NO_REAL_SDCARD := true
# TWRP specific build flags
RECOVERY_VARIANT := twrp
ALLOW_MISSING_DEPENDENCIES=true
TW_THEME := portrait_hdpi
RECOVERY_SDCARD_ON_DATA := true
TARGET_RECOVERY_PIXEL_FORMAT := "ABGR_8888"
TW_BRIGHTNESS_PATH := "/sys/class/backlight/panel/brightness"
TW_MAX_BRIGHTNESS := 36600
TW_DEFAULT_BRIGHTNESS := 15300
TW_NO_REBOOT_BOOTLOADER := true
TW_HAS_DOWNLOAD_MODE := true
TW_INCLUDE_NTFS_3G := true
TW_EXCLUDE_SUPERSU := true
TW_EXTRA_LANGUAGES := true
TW_USE_NEW_MINADBD := true
LZMA_RAMDISK_TARGETS := recovery
# Kernel
BOARD_KERNEL_BASE := 0x10000000
BOARD_KERNEL_PAGESIZE := 2048
TARGET_PREBUILT_KERNEL := $(DEVICE_PATH)/kernel
BOARD_MKBOOTIMG_ARGS := --kernel_offset 0x00008000 --ramdisk_offset 0x01000000 --tags_offset 0x00000100 --dt $(DEVICE_PATH)/dtb
# Include
TARGET_SPECIFIC_HEADER_PATH := $(DEVICE_PATH)/include
7. I run the "source build/envsetup.sh" command
Up to this point there has been no errors.​
8. I execute the "brunch lineage_dreamlte-eng" command and get the following
Code:
In file included from build/make/core/config.mk:313:
In file included from build/make/core/envsetup.mk:323:
build/make/core/board_config.mk:246: error: Building a 32-bit-app-only product on a 64-bit device. If this is intentional, set TARGET_SUPPORTS_64_BIT_APPS := false.
21:30:50 dumpvars failed with: exit status 1
Device dreamlte not found. Attempting to retrieve device repository from LineageOS Github (http://github.com/LineageOS).
Repository for dreamlte not found in the LineageOS Github repository list. If this is in error, you may need to manually add it to your local_manifests/roomservice.xml.
In file included from build/make/core/config.mk:313:
In file included from build/make/core/envsetup.mk:323:
build/make/core/board_config.mk:246: error: Building a 32-bit-app-only product on a 64-bit device. If this is intentional, set TARGET_SUPPORTS_64_BIT_APPS := false.
21:30:51 dumpvars failed with: exit status 1
In file included from build/make/core/config.mk:313:
In file included from build/make/core/envsetup.mk:323:
build/make/core/board_config.mk:246: error: Building a 32-bit-app-only product on a 64-bit device. If this is intentional, set TARGET_SUPPORTS_64_BIT_APPS := false.
21:30:51 dumpvars failed with: exit status 1
** Don't have a product spec for: 'lineage_dreamlte'
** Do you have the right repo manifest?
No such item in brunch menu. Try 'breakfast'
I have looked up this error for multiple hours to no avail. I have no idea what could be the issue, it doesn't seem to me like the 32 bit error is fatal. It seems like it cannot find the product spec for some reason and that is the fatal error.
I am almost certain that I have made some sort of simple mistake that is causing the product spec to not show up. I am also almost certain I have made some sort of other error somewhere else in the process especially in step 6 (the one about the board config).
I would greatly appreciate someone looking over this for me and helping me to solve this issue. My apologies of this error can simply be chalked up to my own stupidity or carelessness.
If you want me to send the contents of any other files, results of commands, etc. I will be more than happy to send them.
Thanks,
sckzor
# Quick check to warn about likely cryptic errors later in the build.
ifeq ($(TARGET_IS_64_BIT),true)
ifeq (,$(filter true false,$(TARGET_SUPPORTS_64_BIT_APPS)))
$(error Building a 32-bit-app-only product on a 64-bit device. \
If this is intentional, set TARGET_SUPPORTS_64_BIT_APPS := false)
endif
endif
TARGET_SUPPORTS_64_BIT_APPS := true get you compiling again.

Categories

Resources