[Q][SOLVED][CM12.1] Building failure - Android Q&A, Help & Troubleshooting

Hey guys,
I'm trying to build a unofficial version of CM12.1, but it fails while building with following error:
Code:
build/core/package_internal.mk:351: *** target pattern contains no '%'. stop.
the corresponing line from package_interal:
Code:
[348] private_key := $(LOCAL_CERTIFICATE).pk8
[349] certificate := $(LOCAL_CERTIFICATE).x509.pem
[350]
[351] $(LOCAL_BUILT_MODULE): $(private_key) $(certificate) $(SIGNAPK_JAR)
[352] $(LOCAL_BUILT_MODULE): PRIVATE_PRIVATE_KEY := $(private_key)
[353] $(LOCAL_BUILT_MODULE): PRIVATE_CERTIFICATE := $(certificate)
If you need further information about device (i don't think that's revelant?) etc. just ask.

revide said:
Hey guys,
I'm trying to build a unofficial version of CM12.1, but it fails while building with following error:
Code:
build/core/package_internal.mk:351: *** target pattern contains no '%'. stop.
the corresponing line from package_interal:
Code:
[348] private_key := $(LOCAL_CERTIFICATE).pk8
[349] certificate := $(LOCAL_CERTIFICATE).x509.pem
[350]
[351] $(LOCAL_BUILT_MODULE): $(private_key) $(certificate) $(SIGNAPK_JAR)
[352] $(LOCAL_BUILT_MODULE): PRIVATE_PRIVATE_KEY := $(private_key)
[353] $(LOCAL_BUILT_MODULE): PRIVATE_CERTIFICATE := $(certificate)
If you need further information about device (i don't think that's revelant?) etc. just ask.
Click to expand...
Click to collapse
Sorry for this bump, but being on the fourth site without any replies kinda frustrates me..

cmon guys, halp

Okay, solved problem.
For all of you who experience the same issue, my proprietary-blob list got entries that were not real files. update yours and you should be good.

Related

[Q] Building a specific apk from CM7 sources

i was trying to build framework-res.apk
i went into android_frameworks_base/core/res from terminal
theres an Android.mk file there:
Code:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_NO_STANDARD_LIBRARIES := true
LOCAL_PACKAGE_NAME := framework-res
LOCAL_CERTIFICATE := platform
# Tell aapt to create "extending (non-application)" resource IDs,
# since these resources will be used by many apps.
LOCAL_AAPT_FLAGS := -x
LOCAL_MODULE_TAGS := optional
# Install this alongside the libraries.
LOCAL_MODULE_PATH := $(TARGET_OUT_JAVA_LIBRARIES)
# Create package-export.apk, which other packages can use to get
# PRODUCT-agnostic resource data like IDs and type definitions.
LOCAL_EXPORT_PACKAGE_RESOURCES := true
include $(BUILD_PACKAGE)
# define a global intermediate target that other module may depend on.
.PHONY: framework-res-package-target
framework-res-package-target: $(LOCAL_BUILT_MODULE)
and then i did
make framework-res
make: *** No rule to make target `framework-res'. Stop.
can u help me with the process? im just a beginner.

Port MultiRom v32 To your G3 Device

Note:
I noticed alot more people have been using MultiRom, So I decided to make a really simple basic How to guide for people who pretty much already know what they are doing.
Step #1, you need the omni source tree, I use Omni-lp5.1.1, But to use that, you will need to make some changes to your device tree, like g3-common and qcomm_common,
Only thing you will be doing to those to device tree sections, in g3-common you will remove the "liblight" directory. and in the qcomm_common Dir, you will remove The "power" Directory.
reason for that, because its already defined in hardware.. The above is only if you decide to use Omni LP trees.
If you use the Normal Omni KitKat 4.4.4, Then you dont have to remove anything.. should work right out of the box.
If using Omni 4.4.4, you can use your device from: https://github.com/TeamWin,
if your using Omni LP you can use your own device tree that works with LP..
Ok now for the code part:
open your BoardConfig.mk
and enter this at the bottom:
Code:
# Edited for TWRP Recovery
DEVICE_RESOLUTION := 1440x2560
RECOVERY_GRAPHICS_USE_LINELENGTH := true
TW_NO_USB_STORAGE := true
TW_INCLUDE_JB_CRYPTO := true
TW_INCLUDE_CRYPTO := true
BOARD_SUPPRESS_SECURE_ERASE := true
RECOVERY_SDCARD_ON_DATA := true
BOARD_HAS_NO_REAL_SDCARD := true
TW_BRIGHTNESS_PATH := "/sys/devices/mdp.0/qcom\x2cmdss_fb_primary.175/leds/lcd-backlight/brightness"
TW_MAX_BRIGHTNESS := 255
TW_SCREEN_BLANK_ON_BOOT := true
# TW_NO_SCREEN_TIMEOUT := false
# MultiROM
MR_INPUT_TYPE := type_b
MR_INIT_DEVICES := device/lge/d851/multirom/mr_init_devices.c
MR_RD_ADDR := 0x2200000
MR_DPI := xhdpi
MR_DPI_MUL := 1.5
MR_FSTAB := device/lge/d851/twrp.fstab
MR_KEXEC_MEM_MIN := 0x0ff00000
MR_KEXEC_DTB := true
MR_USE_MROM_FSTAB := true
MR_DPI_FONT := 420
MR_DEFAULT_BRIGHTNESS := 80
#MR_CONTINUOUS_FB_UPDATE := true
#MultiRom Hooks, So that we can run stock roms as secondary
MR_DEVICE_HOOKS := device/lge/d851/mr_hooks.c
MR_DEVICE_HOOKS_VER := 4
Of course change your device name and locations.
You will need to make changes to omni_(your device).mk (AKA cm_(your device).mk
and add this to it:
Code:
# Copy needed files to make everything work for recovery
PRODUCT_COPY_FILES += \
# device/lge/d851/kernel:kernel \
device/lge/d851/img_info:img_info \
device/lge/d851/postrecoveryboot.sh:recovery/root/sbin/postrecoveryboot.sh \
device/lge/d851/sign:recovery/root/res/sign
PRODUCT_COPY_FILES += device/lge/d851/fstab.g3:recovery/root/fstab.g3
PRODUCT_COPY_FILES += device/lge/d851/twrp.fstab:recovery/root/etc/twrp.fstab
PRODUCT_NAME := omni_d851
PRODUCT_DEVICE := d851
PRODUCT_BRAND := LG
PRODUCT_MODEL := G3
PRODUCT_MANUFACTURER := LG
Im not going to tell you how to get your own fstab. you should already know that.
You will need this for your hooks file: mr_hooks.c
I am sure you can see the location that it will go into, you can change it to meet your device spec.
Now read this for the rest of the way: https://github.com/Tasssadar/multirom/wiki/Porting-MultiROM
I already created a patch that works very well with the latest MultiRom: D851-CM_hardboot_kexec_kernel.patch
Yes the patch says D851, but its for the G3 kernel which all models use. And yes, it will work with CM based and stock based. If anything you will have to change the config file settings
to match the ones for your device config. This one is set for the d851_defconfig.. So just point it to your config when it asks.
Command to run patch from terminal: patch --verbose -p1 < patch/D851-CM_hardboot_kexec_kernel.patch
Yes when you copy it over, place it in its own dir called patch from your kernel tree.
or if you rather take an already patched kernel: 777Kernel-patched Branch "Testing"
Above kernel was patched by me with pemish from @777jon, I did remove his patch created by @Skin1980 since it didnt work well with todays MultiRom
and I added in mine.. I also made some changes to allow Sabermod 5.1 and 6.0 to compile it.
Ok this is it for me, I told you it was a quick guide for people that already know what they are doing. I am no good at teaching. I wrote this really quick so that others
can have the ability to get MultiRom running on their device (Developers)..
I will only answer questions from Developers that plan on porting to thier device and make it public.
any1 working on this?
I honestly forgot that I posted this. I do hope that some are working on this for their device.
I just dont have the time to port over to every single G3 family device......

make[2]: arm-eabi-gcc: command not found

Hi, like in the topic, this is my problem. I'm trying to compile CyanogenMod 12.1 with kernel for HTC Desire 820, no matter, this error say there is not toolchains, yes? But I have it. Anyone can help?
@edit I changed in build/core/task/kernel.mk from
TARGET_KERNEL_CROSS_COMPILE_PREFIX := $(strip $(TARGET_KERNEL_CROSS_COMPILE_PREFIX))
ifeq ($(TARGET_KERNEL_CROSS_COMPILE_PREFIX),)
ifeq ($(KERNEL_TOOLCHAIN_PREFIX),)
KERNEL_TOOLCHAIN_PREFIX := arm-eabi-
endif
else
KERNEL_TOOLCHAIN_PREFIX := $(TARGET_KERNEL_CROSS_COMPILE_PREFIX)
endif
ifeq ($(KERNEL_TOOLCHAIN),)
KERNEL_TOOLCHAIN_PATH := $(KERNEL_TOOLCHAIN_PREFIX)
else
ifneq ($(KERNEL_TOOLCHAIN_PREFIX),)
KERNEL_TOOLCHAIN_PATH := $(KERNEL_TOOLCHAIN)/$(KERNEL_TOOLCHAIN_PREFIX)
endif
endif
to
TARGET_KERNEL_CROSS_COMPILE_PREFIX := $(strip $(TARGET_KERNEL_CROSS_COMPILE_PREFIX))
ifeq ($(TARGET_KERNEL_CROSS_COMPILE_PREFIX),)
ifeq ($(KERNEL_TOOLCHAIN_PREFIX),)
KERNEL_TOOLCHAIN_PREFIX := arm-linux-androideabi-
endif
else
KERNEL_TOOLCHAIN_PREFIX := $(TARGET_KERNEL_CROSS_COMPILE_PREFIX)
endif
ifeq ($(KERNEL_TOOLCHAIN),)
KERNEL_TOOLCHAIN_PATH := $(KERNEL_TOOLCHAIN_PREFIX)
else
ifneq ($(KERNEL_TOOLCHAIN_PREFIX),)
KERNEL_TOOLCHAIN_PATH := $(KERNEL_TOOLCHAIN)/$(KERNEL_TOOLCHAIN_PREFIX)
endif
endif
Now only I have this error:
make[2]: ***No rules to make target 'zImage'. Stop.
Makefile:130: commands for 'sub-make' failed
make[1]: *** [sub-make] Error 2
make[1]: going out '/root/cm12.1/kernel/htc/htc_a51ul'
build/core/tasks/kernel.mk:233: commands for 'TARGET_KERNEL_BINARIES' failed
make: *** [TARGET_KERNEL_BINARIES]Error 2
I translated the log because I'm Polish. If someone can help me I'll be very happy
Compiler must to be 64bit, aarch64-linux-gnu-
Sent from my HTC Desire 820 using Tapatalk

Build Error CM12.1, missing reference to a JAR

Hi,
I currently try building this one myself:
http://forum.xda-developers.com/android/development/rom-cyanogenmod-12-0-samsung-express-gt-t2949359
it's CM 12.1 for the Samsung Galaxy Express GT-I8730
After hours of building it breaks with a missing library.
Code:
frameworks/testing/runner/src/main/java/android/support/test/internal/runner/ClassPathScanner.java:19: error: package android.support.annotation does not exist
import android.support.annotation.VisibleForTesting;
build/core/java.mk:346: recipe for target '~/src/cm-12.1-main/out/target/common/obj/JAVA_LIBRARIES/android-support-test-src_intermediates/classes-full-debug.jar' failed
make: *** [~/src/cm-12.1-main/out/target/common/obj/JAVA_LIBRARIES/android-support-test-src_intermediates/classes-full-debug.jar] Error 41
package android.support.annotation is missing. It's available here
Code:
./frameworks/support/annotations/src/android/support/annotation
./prebuilts/sdk/current/support/annotations/android-support-annotations.jar
But it's not included in build.
This is the code in question, in build/core/java.mk:346
Code:
# Compile the java files to a .jar file.
# This intentionally depends on java_sources, not all_java_sources.
# Deps for generated source files must be handled separately,
# via deps on the target that generates the sources.
$(full_classes_compiled_jar): PRIVATE_JAVACFLAGS := $(LOCAL_JAVACFLAGS)
$(full_classes_compiled_jar): PRIVATE_JAR_EXCLUDE_FILES := $(LOCAL_JAR_EXCLUDE_FILES)
$(full_classes_compiled_jar): PRIVATE_JAR_PACKAGES := $(LOCAL_JAR_PACKAGES)
$(full_classes_compiled_jar): PRIVATE_JAR_EXCLUDE_PACKAGES := $(LOCAL_JAR_EXCLUDE_PACKAGES)
$(full_classes_compiled_jar): PRIVATE_RMTYPEDEFS := $(LOCAL_RMTYPEDEFS)
$(full_classes_compiled_jar): PRIVATE_DONT_DELETE_JAR_META_INF := $(LOCAL_DONT_DELETE_JAR_META_INF)
$(full_classes_compiled_jar): $(java_sources) $(java_resource_sources) $(full_java_lib_deps) \
$(jar_manifest_file) $(layers_file) $(RenderScript_file_stamp) \
$(proto_java_sources_file_stamp) $(LOCAL_ADDITIONAL_DEPENDENCIES)
$(transform-java-to-classes.jar)
How do I find out the content of the variables? How do I modify it?
Since I am building from a branch, it probably is a temporary problem. I issued a repo sync, but it dit not help (yet).
any idea?
thanks
JPT

[Q][CM14] Linking error while building recovery

Hi, so i've tried to compile TWRP inside CM14 source and i've been struggling with linking error for a while
Code:
system/core/adb/adb_auth_client.cpp:94: error: undefined reference to 'android_pubkey_decode'
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
[ 80% 4855/6059] target C: libminzip ...ootable/recovery-twrp/minzip/SysUtil.c
ninja: build stopped: subcommand failed.
build/core/ninja.mk:151: recipe for target 'ninja_wrapper' failed
make: *** [ninja_wrapper] Error 1
#### make failed to build some targets (04:34 (mm:ss)) ####
It's basicly CM14 not changed at all. What i discovered is that in OUT folder inside static libraries there is no libcrypto-utils build. In fact there is a folder but just with export-includes.txt
Here is part of system/core/adb/Android.mk
Code:
include $(CLEAR_VARS)
LOCAL_CLANG := true
LOCAL_MODULE := libadbd
LOCAL_CFLAGS := $(LIBADB_CFLAGS) -DADB_HOST=0
LOCAL_SRC_FILES := \
$(LIBADB_SRC_FILES) \
adb_auth_client.cpp \
jdwp_service.cpp \
usb_linux_client.cpp \
LOCAL_SANITIZE := $(adb_target_sanitize)
# Even though we're building a static library (and thus there's no link step for
# this to take effect), this adds the includes to our path.
LOCAL_STATIC_LIBRARIES := libcrypto_utils_static libcrypto_static libbase
include $(BUILD_STATIC_LIBRARY)
And part of libcrypto_utils/Android.mk
Code:
include $(CLEAR_VARS)
LOCAL_MODULE := libcrypto_utils_static
LOCAL_SRC_FILES := android_pubkey.c
LOCAL_CFLAGS := -Wall -Werror -Wextra -std=c99
LOCAL_C_INCLUDES := $(LOCAL_PATH)/include
LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/include
LOCAL_STATIC_LIBRARIES := libcrypto_static
include $(BUILD_STATIC_LIBRARY)
Also header file is included in adb_auth_client.cpp
Code:
#include <crypto_utils/android_pubkey.h>
What am i doing wrong?
Have you fixed this? I have same problem and i do not know how to fix it ..
_______________SOLVED____________________
https://github.com/discipuloosho/an...mmit/22801f5f78b5b996b163d54cf5c886a2d6db81c7
Anyone got a fix for this?
HaoZeke said:
Anyone got a fix for this?
Click to expand...
Click to collapse
Have you searched/posted this question within the the following thread that's a guide to performing this?
[GUIDE][NOOB FRIENDLY]How to compile TWRP from source step by step by Hacker432
Good Luck!
~~~~~~~~~~~~~~~
I Am The Egg Man,
They Are The Egg Men.
I Am The Walrus!
Coo Coo Cachoo!
I DO NOT PROVIDE SUPPORT VIA PM UNLESS ASKED/REQUESTED BY MYSELF.
PLEASE KEEP IT IN THE THREADS WHERE EVERYONE CAN SHARE

Categories

Resources