[Need Help] JNI/NDK problems linking prebuilt libraries - C++ or Other Android Development Languages

I am writing an android app that wants to make JNI calls into a shared library built in using the NDK. The trick is this shared library calls functions provided by OTHER shared libraries. The other shared libraries are C libraries that have been compiled elsewhere.
Here's what I've tried:
**My Environment:**
I'm working in Eclipse. I've added native support and have a jni library. In that library I have my code and a \lib directory where I have copied my other .so files.
**Attempt #1 Android.mk: Just telling it where the libs are**
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := native_lib
LOCAL_SRC_FILES := native_lib.cpp
LOCAL_LDLIBS := -L$(SYSROOT)/../usr/lib -llog
LOCAL_LDLIBS += -L$(LOCAL_PATH)/lib/support_lib1
LOCAL_LDLIBS += -L$(LOCAL_PATH)/lib/support_lib2
include $(BUILD_SHARED_LIBRARY)​This builds just fine, but when I try to run I get errors indicating that dlopen(libnative_lib) failed because it couldn't load libsupport_lib1.
Coming here I found this:
stackoverflow.com/questions/6041934/can-shared-library-call-another-shared-library
which said that I needed to call load library on all necessary libraries. Great!
**Attempt #2 Opening each library first**
static {
System.loadLibrary("support_lib1");
System.loadLibrary("support_lib2");
System.loadLibrary("native_lib");
}​Again, this builds just fine, however when I run I get a new error:
couldn't load libsupport_lib1. findLibrary returned null.
Now we're getting somewhere. It must not be loading the libraries over to the target.
**Attempt #3 Copying .so files into project/libs/armeabi**
Didn't work. When Eclipse builds it deleted the files I dropped in there.
**Attempt #4 Creating a new module for each library**
So then I found this:
stackoverflow.com/questions/5463518/android-ndk-link-using-a-pre-compiled-static-library
It's about static libraries, but maybe I am having a similar problem. The gist is that I need to declare a module for each library. So my new Android.mk looks like this:
LOCAL_PATH := $(call my-dir)
#get support_lib1
include $(CLEAR_VARS)
LOCAL_MODULE := support_lib1
LOCAL_SRC_FILES := $(LOCAL_PATH)/lib/support_lib1.so
include $(BUILD_SHARED_LIBRARY)
#get support_lib2
include $(CLEAR_VARS)
LOCAL_MODULE := support_lib2
LOCAL_SRC_FILES := $(LOCAL_PATH)/lib/support_lib2.so
include $(BUILD_SHARED_LIBRARY)
#build native lib
include $(CLEAR_VARS)
LOCAL_MODULE := native_lib
LOCAL_SRC_FILES := native_lib.cpp
LOCAL_LDLIBS := -L$(SYSROOT)/../usr/lib -llog
LOCAL_LDLIBS += -L$(LOCAL_PATH)/lib/support_lib1
LOCAL_LDLIBS += -L$(LOCAL_PATH)/lib/support_lib2
include $(BUILD_SHARED_LIBRARY)​This builds! Even better, armeabi has the sos now! Even *BETTER* I get the following messages when I try to run it (telling me that support_lib1 and 2 were opened by LoadLibrary:
Trying to load lib /data/app-lib/com.example.tst/libsupport_lib1.so
added shared lib /data/app-lib/com.example.tst/libsupport_lib1.so
no JNI_OnLoad found in /data/app-lib/com.example.tst/libsupport_lib1.so, skipping init
but then...
dlopen failed: Could not locate symbol func_that_exists_in_libsupport_lib.so referenced by libnative_lib.so
**Edit: Attempt 5: Use PREBUILT_SHARED_LIBRARY**
So I found this:
stackoverflow.com/questions/9870435/how-can-i-link-prebuilt-shared-library-to-android-ndk-project
which seems to be exactly what I'm asking. Their answer seems to be 'don't use 'build_shared_library' but instead 'use PREBUILT_SHARED_LIBRARY
Okay, let's try.
LOCAL_PATH := $(call my-dir)
#get support_lib1
include $(CLEAR_VARS)
LOCAL_MODULE := support_lib1
LOCAL_SRC_FILES := $(LOCAL_PATH)/lib/support_lib1.so
include $(PREBUILT_SHARED_LIBRARY)
#get support_lib2
include $(CLEAR_VARS)
LOCAL_MODULE := support_lib2
LOCAL_SRC_FILES := $(LOCAL_PATH)/lib/support_lib2.so
include $(PREBUILT_SHARED_LIBRARY)
#build native lib
include $(CLEAR_VARS)
LOCAL_MODULE := native_lib
LOCAL_SRC_FILES := native_lib.cpp
LOCAL_LDLIBS := -L$(SYSROOT)/../usr/lib -llog
LOCAL_SHARED_LIBRARIES := support_lib1 support_lib2
include $(BUILD_SHARED_LIBRARY)​Build... fails! The build complains about missing symbols now.
**Edit: Attempt 6: Flatten everything**
So I went back to the prebuilts documentation in the NDK. It says:
Each prebuilt library must be declared as a single independent module to the build system. Here is a trivial example where we assume that the file "libfoo.so" is located in the same directory than the Android.mk below:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := foo-prebuilt
LOCAL_SRC_FILES := libfoo.so
include $(PREBUILT_SHARED_LIBRARY)​Notice that, to declare such a module, you really only need the following:
Give the module a name (here 'foo-prebuilt'). This does not need to correspond to the name of the prebuilt library itself.
Assign to LOCAL_SRC_FILES the path to the prebuilt library you are providing. As usual, the path is relative to your LOCAL_PATH.
Include PREBUILT_SHARED_LIBRARY, instead of BUILD_SHARED_LIBRARY, if you are providing a shared, library. For static ones, use PREBUILT_STATIC_LIBRARY.
A prebuilt module does not build anything. However, a copy of your prebuilt shared library will be copied into $PROJECT/obj/local, and another will be copied and stripped into $PROJECT/libs/<abi>.
So let's try flattening everything out to match the trivial example. I copied my libraries out of their cozy /lib folder and put them in the jni root. I then did this:
LOCAL_PATH := $(call my-dir)
#get support_lib1
include $(CLEAR_VARS)
LOCAL_MODULE := support_lib1
LOCAL_SRC_FILES := support_lib1.so
include $(PREBUILT_SHARED_LIBRARY)
#get support_lib2
include $(CLEAR_VARS)
LOCAL_MODULE := support_lib2
LOCAL_SRC_FILES := support_lib2.so
include $(PREBUILT_SHARED_LIBRARY)
#build native lib
include $(CLEAR_VARS)
LOCAL_MODULE := native_lib
LOCAL_SRC_FILES := native_lib.cpp
LOCAL_LDLIBS := -L$(SYSROOT)/../usr/lib -llog
LOCAL_SHARED_LIBRARIES := support_lib1 support_lib2
include $(BUILD_SHARED_LIBRARY)​and... same error. Moreover I'm most definitely NOT seeing library files getting copied to $PROJECT/obj/local.
sooooo.... now what?

Related

[Q] Compilation Error in Android

Hi i had try to compile the following Android.mk file through ndk-build i got the following errors how can i resolve the problem please help me.
# ==========================================================
# NOTE:
# when executing binary, set LD_LIBRARY_PATH in device
# ==========================================================
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
BASEDIR := ../../..
DISTDIR := ../../../..
LOCAL_MODULE := EvaluateFingerQuality
LOCAL_ARM_MODE := arm
# Includes
LOCAL_C_INCLUDES += \
$(BASEDIR)/Common/C \
$(DISTDIR)/Include
# Source files
LOCAL_SRC_FILES := \
$(BASEDIR)/Common/C/Utils.c \
EvaluateFingerQuality.c
LOCAL_LDLIBS += \
-Wl,-z,muldefs -Wl,-rpath=$(DISTDIR)/Lib/Android_$(TARGET_ARCH_ABI) \
-L $(DISTDIR)/Lib/Android_$(TARGET_ARCH_ABI) \
-lNLicensing -lNBiometricTools -lNBiometrics -lNMedia -lNCore -lc
include $(BUILD_EXECUTABLE)

BoardConfig.mk values from HEX->DEC?

Hi guys,
I'm trying to compile CM10.1 for my ZTE Tureis. It nearly builds everything but at the end I get some errors about a missing size of the filesystem.
Digging deeper I found out that starting with Android 4 I need to specify this with decimal values in my BoardConfig.mk.
But I only have these values in hex:
Code:
BOARD_KERNEL_BASE := 0x02600000
BOARD_PAGE_SIZE := 0x00000800
BOARD_BOOTIMAGE_PARTITION_SIZE := 0x00400000
BOARD_RECOVERYIMAGE_PARTITION_SIZE := 0x00600000
BOARD_SYSTEMIMAGE_PARTITION_SIZE := 0x0dc00000
BOARD_USERDATAIMAGE_PARTITION_SIZE := 0x0a280000
BOARD_FLASH_BLOCK_SIZE := 0x00020000
How can I convert these values so the CM10 build accepts them?
schmatzler said:
Hi guys,
I'm trying to compile CM10.1 for my ZTE Tureis. It nearly builds everything but at the end I get some errors about a missing size of the filesystem.
Digging deeper I found out that starting with Android 4 I need to specify this with decimal values in my BoardConfig.mk.
But I only have these values in hex:
Code:
BOARD_KERNEL_BASE := 0x02600000
BOARD_PAGE_SIZE := 0x00000800
BOARD_BOOTIMAGE_PARTITION_SIZE := 0x00400000
BOARD_RECOVERYIMAGE_PARTITION_SIZE := 0x00600000
BOARD_SYSTEMIMAGE_PARTITION_SIZE := 0x0dc00000
BOARD_USERDATAIMAGE_PARTITION_SIZE := 0x0a280000
BOARD_FLASH_BLOCK_SIZE := 0x00020000
How can I convert these values so the CM10 build accepts them?
Click to expand...
Click to collapse
This site is useful: http://www.statman.info/conversions/hexadecimal.html

JNI integration into AOSP build

I need to change Settings app by adding some custom library to it but I am having problems with configuration. When I try to call System.loadLibrary("mylibrary") i get libraryPath=/data/app-lib/com.settings-1: find library returned null. I know that app will look inside /data/app-lib/.. folder for specific library but my library is in system/lib
I know that my .mk files are not OK but I don't know what am I missing, please take look at them.
Code:
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_JAVA_LIBRARIES := bouncycastle telephony-common
LOCAL_STATIC_JAVA_LIBRARIES := guava android-support-v4 jsr305
ifdef DOLBY_DAP
LOCAL_JAVA_LIBRARIES += framework_ext
else
LOCAL_STATIC_JAVA_LIBRARIES += libsds
endif #DOLBY_DAP
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := $(call all-java-files-under, src)
LOCAL_PACKAGE_NAME := Settings
LOCAL_CERTIFICATE := platform
# If this is an unbundled build (to install seprately) then include
# the libraries in the APK, otherwise just put them in /system/lib and
# leave them out of the APK
ifneq (,$(TARGET_BUILD_APPS))
LOCAL_JNI_SHARED_LIBRARIES := efuse_tool
else
LOCAL_REQUIRED_MODULES := efuse_tool
endif
LOCAL_PROGUARD_FLAG_FILES := proguard.flags
include $(BUILD_PACKAGE)
include $(call all-makefiles-under, jni)
ifndef DOLBY_DAP
include $(CLEAR_VARS)
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := libsds:ds.jar
include $(BUILD_MULTI_PREBUILT)
endif
# Use the folloing include to make our test apk.
include $(call all-makefiles-under,$(LOCAL_PATH))
And .mk file inside jni folder
Code:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
# Here we give our module name and source file(s)
LOCAL_SRC_FILES := efuse_tool.c
LOCAL_MODULE := efuse_tool
include $(BUILD_SHARED_LIBRARY)
I realized that I have to add prefix "lib" to my library so it will be called from system/lib location. So it should look like this
Code:
ifneq (,$(TARGET_BUILD_APPS))
LOCAL_JNI_SHARED_LIBRARIES := libefuse_tool
else
LOCAL_REQUIRED_MODULES := libefuse_tool
endif
LOCAL_MODULE := libefuse_tool
I can also remove LOCAL_JNI_SHARED_LIBRARIES := libefuse_tool because it will never be used.

[Q] Problem with building marshmallow for S7262

I've been trying to compile android 6.0 rascarlo rom for my Samsung Galaxy Star Pro, but I am constantly running into the error "Error: Could not load kernel." I've tried putting a different boot.img in the out/target/product/logan2g folder, but that doesn't work. I've tried moving the kernel/samsung/logan2g directory to the out/target/product/logan2g folder as well, overriding the previously built kernel folder. It still does not work. I have also tried rebuilding from scratch, redownloading the source code and rebuilding everything, same error. I've attached the log.
Here is my BoardConfig.mk:
Code:
# Assert
TARGET_OTA_ASSERT_DEVICE := logan2g
# Architecture
TARGET_ARCH := arm
TARGET_ARCH_VARIANT := armv7-a
TARGET_ARCH_VARIANT_CPU := cortex-a5
TARGET_CPU_ABI := armeabi-v7a
TARGET_CPU_ABI2 := armeabi
TARGET_CPU_VARIANT := cortex-a5
ARCH_ARM_HAVE_ARMV7A := true
ARCH_ARM_HAVE_TLS_REGISTER := true
# For low memory targets only (~512MB RAM & hdpi resolution)
TARGET_ARCH_LOWMEM := true
# Board
TARGET_BOOTLOADER_BOARD_NAME := logan
TARGET_NO_BOOTLOADER := true
TARGET_NO_RADIOIMAGE := true
# Platform
TARGET_BOARD_PLATFORM := sc6820i
COMMON_GLOBAL_CFLAGS += -DSPRD_HARDWARE
TARGET_BOARD_PLATFORM_GPU := mali-400 MP
# Kernel
BOARD_KERNEL_CMDLINE := console=ttyS1,115200n8
BOARD_KERNEL_BASE := 0x00000000
BOARD_KERNEL_PAGESIZE := 2048
TARGET_KERNEL_SOURCE := kernel/samsung/logan2g
TARGET_KERNEL_CONFIG := cyanogenmod-logan2g_defconfig
#TARGET_PREBUILT_KERNEL := device/samsung/logan2g/kernel
TARGET_KERNEL_CONFIG := cortex-a5
# Partitions
BOARD_BOOTIMAGE_PARTITION_SIZE := 10485760
BOARD_RECOVERYIMAGE_PARTITION_SIZE := 10485760
BOARD_CACHEIMAGE_PARTITION_SIZE := 209715200
BOARD_SYSTEMIMAGE_PARTITION_SIZE := 941621248
BOARD_USERDATAIMAGE_PARTITION_SIZE := 2630614016
BOARD_FLASH_BLOCK_SIZE := 131072
BOARD_CACHEIMAGE_FILE_SYSTEM_TYPE := ext4
TARGET_USERIMAGES_USE_EXT4 := true
BOARD_HAS_LARGE_FILESYSTEM := true
BOARD_VENDOR_USE_AKMD := true
# Recovery
BOARD_HDPI_RECOVERY := true
#TARGET_RECOVERY_INITRC := device/samsung/logan2g/recovery/recovery.rc
TARGET_RECOVERY_FSTAB := device/samsung/logan2g/recovery.fstab
BOARD_CUSTOM_RECOVERY_KEYMAPPING := ../../device/samsung/logan2g/recovery/recovery_keys.c
BOARD_USE_CUSTOM_RECOVERY_FONT := \"roboto_15x24.h\"
BOARD_HAS_NO_SELECT_BUTTON := true
BOARD_HAS_NO_MISC_PARTITION := true
BOARD_SUPPRESS_EMMC_WIPE := true
BOARD_UMS_LUNFILE := "/sys/class/android_usb/android0/f_mass_storage/lun/file"
TARGET_USE_CUSTOM_LUN_FILE_PATH := "/sys/devices/platform/dwc_otg.0/gadget/lun0/file"
# TWRP Specific
# RECOVERY_GRAPHICS_USE_LINELENGTH := true
# TW_NO_SCREEN_TIMEOUT := true
# BOARD_HAS_NO_REAL_SDCARD := true
# RECOVERY_SDCARD_ON_DATA := true
# TW_INTERNAL_STORAGE_PATH := "/sdcard"
# TW_INTERNAL_STORAGE_MOUNT_POINT := "sdcard"
# TW_EXTERNAL_STORAGE_PATH := "/storage/extSdCard"
# TW_EXTERNAL_STORAGE_MOUNT_POINT := "/storage/extSdCard"
# TW_NO_USB_STORAGE := true
# TW_DEFAULT_EXTERNAL_STORAGE := true
# TW_HAS_DOWNLOAD_MODE := true
# TW_USE_MODEL_HARDWARE_ID_FOR_DEVICE_ID := true
# TW_BRIGHTNESS_PATH := "/sys/class/backlight/panel/brightness"
HAVE_SELINUX := true
# Hardware Rendering
USE_OPENGL_RENDERER := true
BOARD_EGL_CFG := device/samsung/logan2g/egl/egl.cfg
BOARD_EGL_NEEDS_LEGACY_FB := true
COMMON_GLOBAL_CFLAGS += -DSC6820I_HWC -DBOARD_EGL_NEEDS_LEGACY_FB
# Camera
USE_CAMERA_STUB := true
COMMON_GLOBAL_CFLAGS += -DMR0_CAMERA_BLOB
# Audio
HAVE_HTC_AUDIO_DRIVER := true
BOARD_USES_GENERIC_AUDIO := true
COMMON_GLOBAL_CFLAGS += -DMR0_AUDIO_BLOB
# Bluetooth
BOARD_HAVE_BLUETOOTH := true
BOARD_HAVE_BLUETOOTH_BCM := true
BOARD_BLUETOOTH_USES_HCIATTACH_PROPERTY = true
BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR := device/samsung/logan2g/bluetooth
BOARD_BLUEDROID_VENDOR_CONF := device/samsung/logan2g/bluetooth/libbt_vndcfg.txt
# Connectivity - Wi-Fi
BOARD_WPA_SUPPLICANT_DRIVER := NL80211
WPA_SUPPLICANT_VERSION := VER_0_8_X
BOARD_WPA_SUPPLICANT_PRIVATE_LIB := lib_driver_cmd_bcmdhd
BOARD_HOSTAPD_DRIVER := NL80211
BOARD_HOSTAPD_PRIVATE_LIB := lib_driver_cmd_bcmdhd
BOARD_WLAN_DEVICE := bcmdhd
BOARD_WLAN_DEVICE_REV := bcm4330
WIFI_DRIVER_FW_PATH_PARAM := "/sys/module/dhd/parameters/firmware_path"
WIFI_DRIVER_FW_PATH_STA := "/system/etc/wifi/bcmdhd_sta.bin"
WIFI_DRIVER_FW_PATH_AP := "/system/etc/wifi/bcmdhd_apsta.bin"
WIFI_DRIVER_FW_PATH_P2P := "/system/etc/wifi/bcmdhd_p2p.bin"
WIFI_DRIVER_MODULE_PATH := "/system/lib/modules/dhd.ko"
WIFI_DRIVER_MODULE_NAME := "dhd"
WIFI_DRIVER_MODULE_ARG := "firmware_path=/system/etc/wifi/bcmdhd_sta.bin nvram_path=/system/etc/wifi/nvram_net.txt"
WIFI_DRIVER_MODULE_AP_ARG := "firmware_path=/system/etc/wifi/bcmdhd_apsta.bin nvram_path=/system/etc/wifi/nvram_net.txt"
WIFI_BAND := 802_11_ABG
# Wi-Fi Tethering
BOARD_HAVE_SAMSUNG_WIFI := true
BOARD_LEGACY_NL80211_STA_EVENTS := true
BOARD_NO_APSME_ATTR := true
# Ril
#BOARD_PROVIDES_LIBRIL := true
BOARD_FORCE_RILD_AS_ROOT := true
BOARD_MOBILEDATA_INTERFACE_NAME := "rmnet0"
BOARD_RIL_CLASS := ../../../device/samsung/logan2g/ril/
# Bootanimation
TARGET_SCREEN_WIDTH := 480
TARGET_SCREEN_HEIGHT := 800
TARGET_BOOTANIMATION_PRELOAD := true
TARGET_BOOTANIMATION_TEXTURE_CACHE := true
# Font Footprint
SMALLER_FONT_FOOTPRINT := true
MINIMAL_FONT_FOOTPRINT := true
# Charger
BOARD_CHARGER_ENABLE_SUSPEND := true
BOARD_CHARGING_MODE_BOOTING_LPM := /sys/class/power_supply/battery/batt_lp_charging
# Enable dex-preoptimization to speed up the first boot sequence of an SDK AVD.
# Note that this operation only works on Linux for now.
WITH_DEXPREOPT := true
I've gotten it to build up to the could not load kernel error.
Any help?
Thanks,
Qiangong2
Credits
First of all this is not your tree.. This my tree... And secondly how you completed the build? With cortex a5 value in android 6.0? Unbelievable man..
And for kernel add custom tool chain value you are using 4.8 tool chain i guess
Confirm me by flashing the rom again and follow this
adb devices
adb shell
cd /proc
cat version
And paste the line here..
my boardconifg.mk
https://github.com/FireLord1/android_device_samsung_logan2g/blob/master/BoardConfig.mk
identical
https://github.com/FireLord1/android_device_samsung_logan2g (full source)

Error: ANDROID_LOG_TAGS empty Xms XMx and image-classes

Heyyo, can someone help me with this make error? I'm trying to build AOSPA nougat-mr2 for the LeEco Le Max 2
Here's the log via pastebin:
https://pastebin.com/2JXMPH7E
mainly this part:
Code:
[ 34% 9138/26758] target dex2oat: out/...otjars/system/framework/arm64/boot.art
FAILED: /bin/bash -c "(mkdir -p out/target/product/x2/symbols/system/framework/arm64/ ) && (rm -f out/target/product/x2/dex_bootjars/system/framework/arm64//*.art out/target/product/x2/dex_bootjars/system/framework/arm64//*.oat ) && (rm -f out/target/product/x2/symbols/system/framework/arm64//*.art ) && (rm -f out/target/product/x2/symbols/system/framework/arm64//*.oat ) && (ANDROID_LOG_TAGS=\"*:e\" out/host/linux-x86/bin/dex2oat --runtime-arg -Xms --runtime-arg -Xmx --image-classes= --dex-file=out/target/common/obj/JAVA_LIBRARIES/tcmclient_intermediates/javalib.jar --dex-file=out/target/common/obj/JAVA_LIBRARIES/com.qti.dpmframework_intermediates/javalib.jar --dex-file=out/target/common/obj/JAVA_LIBRARIES/dpmapi_intermediates/javalib.jar --dex-file=out/target/common/obj/JAVA_LIBRARIES/com.qti.location.sdk_intermediates/javalib.jar --dex-file=out/target/common/obj/JAVA_LIBRARIES/qcmediaplayer_intermediates/javalib.jar --dex-file=out/target/common/obj/JAVA_LIBRARIES/pa-services_intermediates/javalib.jar --dex-file=out/target/common/obj/JAVA_LIBRARIES/tcmiface_intermediates/javalib.jar --dex-location=/system/framework/tcmclient.jar --dex-location=/system/framework/com.qti.dpmframework.jar --dex-location=/system/framework/dpmapi.jar --dex-location=/system/framework/com.qti.location.sdk.jar --dex-location=/system/framework/qcmediaplayer.jar --dex-location=/system/framework/pa-services.jar --dex-location=/system/framework/tcmiface.jar --oat-symbols=out/target/product/x2/symbols/system/framework/arm64/boot.oat --oat-file=out/target/product/x2/dex_bootjars/system/framework/arm64/boot.oat --oat-location=/system/framework/arm64/boot.oat --image=out/target/product/x2/dex_bootjars/system/framework/arm64/boot.art --base=0x70000000 --instruction-set=arm64 --instruction-set-variant=kryo --instruction-set-features=default --android-root=out/target/product/x2/system --include-patch-information --runtime-arg -Xnorelocate --no-generate-debug-info --multi-image --no-inline-from=core-oj.jar --compile-pic )"
not a valid memory value, or not divisible by 1024
dalvikvm: [options] class [argument ...]
So I thought maybe my BoardConfig.mk partition settings are screwed but they are fine... I think.
Code:
# Copyright (C) 2010 The Android Open Source 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.
#
# This file is the build configuration for a full Android
# build for grouper hardware. This cleanly combines a set of
# device-specific aspects (drivers) with a device-agnostic
# product configuration (apps).
#
-include vendor/leeco/x2/BoardConfigVendor.mk
# Le Max 2
BOARD_PATH := device/leeco/x2
TARGET_NO_BOOTLOADER := true
TARGET_OTA_ASSERT_DEVICE := x2,le_x2,LEX829,LEX821,LEX822,LEX820
# Platform
TARGET_BOARD_PLATFORM := msm8996
TARGET_BOOTLOADER_BOARD_NAME := msm8996
# Architecture
TARGET_ARCH := arm64
TARGET_ARCH_VARIANT := armv8-a
TARGET_CPU_ABI := arm64-v8a
TARGET_CPU_ABI2 :=
TARGET_CPU_VARIANT := kryo
TARGET_2ND_ARCH := arm
TARGET_2ND_ARCH_VARIANT := armv7-a-neon
TARGET_2ND_CPU_ABI := armeabi-v7a
TARGET_2ND_CPU_ABI2 := armeabi
TARGET_2ND_CPU_VARIANT := kryo
# Bionic
TARGET_USES_64_BIT_BINDER := true
# Framework
TARGET_SUPPORTS_S3D := false
TARGET_USES_OVERLAY := true
TARGET_FORCE_HWC_FOR_VIRTUAL_DISPLAYS := true
MAX_VIRTUAL_DISPLAY_DIMENSION := 4096
-include $(QCPATH)/common/msm8996/BoardConfigVendor.mk
# Bluetooth
BOARD_HAVE_BLUETOOTH := true
BOARD_HAS_QCA_BT_ROME := true
BOARD_HAVE_BLUETOOTH_QCOM := true
BOARD_USES_WIPOWER := false
BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR := $(BOARD_PATH)/bluetooth
QCOM_BT_USE_BTNV := true
QCOM_BT_USE_SMD_TTY := true
# Charger
BOARD_CHARGER_ENABLE_SUSPEND := true
BOARD_CHARGER_DISABLE_INIT_BLANK := true
# Kernel
BOARD_KERNEL_CMDLINE := androidboot.hardware=qcom ehci-hcd.park=3 lpm_levels.sleep_disabled=1 [email protected]
BOARD_KERNEL_BASE := 0x80000000
BOARD_KERNEL_PAGESIZE := 4096
BOARD_RAMDISK_OFFSET := 0x01000000
BOARD_TAGS_OFFSET := 0x00000100
TARGET_KERNEL_ARCH := arm64
TARGET_KERNEL_HEADER_ARCH := arm64
TARGET_KERNEL_SOURCE := kernel/leeco/msm8996
TARGET_KERNEL_CONFIG := x2_defconfig
TARGET_KERNEL_APPEND_DTB := true
# Wrapper
BOARD_USES_LIBC_WRAPPER := true
# THP
TARGET_SUPPORTS_THP := true
# Partitions
TARGET_USERIMAGES_USE_EXT4 := true
TARGET_USERIMAGES_USE_F2FS := true
BOARD_BOOTIMAGE_PARTITION_SIZE := 67108864
BOARD_CACHEIMAGE_PARTITION_SIZE := 268435456
BOARD_CACHEIMAGE_FILE_SYSTEM_TYPE := ext4
BOARD_CACHEIMAGE_FILE_SYSTEM_TYPE := ftfs
BOARD_RECOVERYIMAGE_PARTITION_SIZE := 67108864
BOARD_SYSTEMIMAGE_PARTITION_SIZE := 3154116608
BOARD_USERDATAIMAGE_PARTITION_SIZE := 57436708864
BOARD_USERDATAIMAGE_FILE_SYSTEM_TYPE := ext4
BOARD_USERDATAIMAGE_FILE_SYSTEM_TYPE := f2fs
BOARD_FLASH_BLOCK_SIZE := 262144
# Display
USE_OPENGL_RENDERER := true
NUM_FRAMEBUFFER_SURFACE_BUFFERS := 3
TARGET_USES_ION := true
TARGET_USES_C2D_COMPOSITION := true
OVERRIDE_RS_DRIVER := libRSDriver_adreno.so
MAX_EGL_CACHE_KEY_SIZE := 12*1024
MAX_EGL_CACHE_SIZE := 2048*1024
HAVE_ADRENO_SOURCE := false
VSYNC_EVENT_PHASE_OFFSET_NS := 2000000
SF_VSYNC_EVENT_PHASE_OFFSET_NS := 6000000
# Audio
AUDIO_FEATURE_ENABLED_EXTN_FLAC_DECODER := true
AUDIO_FEATURE_ENABLED_PCM_OFFLOAD := true
AUDIO_FEATURE_ENABLED_PCM_OFFLOAD_24 := true
AUDIO_FEATURE_ENABLED_FLAC_OFFLOAD := true
AUDIO_FEATURE_ENABLED_VORBIS_OFFLOAD := true
AUDIO_FEATURE_ENABLED_WMA_OFFLOAD := true
AUDIO_FEATURE_ENABLED_ALAC_OFFLOAD := true
AUDIO_FEATURE_ENABLED_APE_OFFLOAD := true
AUDIO_FEATURE_ENABLED_AAC_ADTS_OFFLOAD := true
AUDIO_FEATURE_ENABLED_EXTN_RESAMPLER := true
AUDIO_FEATURE_ENABLED_SPKR_PROTECTION := false
# Camera
BOARD_QTI_CAMERA_32BIT_ONLY := true
TARGET_HAS_LEGACY_HSR := true
# GPS
TARGET_NO_RPC := true
BOARD_VENDOR_QCOM_GPS_LOC_API_HARDWARE := msm8996
# Wi-Fi
BOARD_HAS_QCOM_WLAN := true
BOARD_WLAN_DEVICE := qcwcn
WPA_SUPPLICANT_VERSION := VER_0_8_X
BOARD_WPA_SUPPLICANT_DRIVER := NL80211
BOARD_WPA_SUPPLICANT_PRIVATE_LIB := lib_driver_cmd_$(BOARD_WLAN_DEVICE)
BOARD_HOSTAPD_DRIVER := NL80211
BOARD_HOSTAPD_PRIVATE_LIB := lib_driver_cmd_$(BOARD_WLAN_DEVICE)
WIFI_DRIVER_FW_PATH_STA := "sta"
WIFI_DRIVER_FW_PATH_AP := "ap"
WIFI_DRIVER_FW_PATH_P2P := "p2p"
# Init
TARGET_INIT_VENDOR_LIB := libinit_msm
TARGET_LIBINIT_DEFINES_FILE := device/leeco/x2/init/init_x2.cpp
# Lights
TARGET_PROVIDES_LIBLIGHT := true
# Sensors
USE_SENSOR_MULTI_HAL := true
# NFC
TARGET_USES_NQ_NFC := true
# Crypto
TARGET_HW_DISK_ENCRYPTION := true
# Recovery
TARGET_RECOVERY_FSTAB := $(BOARD_PATH)/rootdir/etc/fstab.qcom
# Headers
TARGET_SPECIFIC_HEADER_PATH := $(BOARD_PATH)/include
# SELinux
BOARD_SEPOLICY_DIRS += $(BOARD_PATH)/sepolicy
my git sources are here if it helps... this is my first ROM attempt and use of github so I could have made a mistake I missed but I can't find a solution online and even searched this forum section for ANDROID_LOG_TAGS and nothing came up...
https://github.com/ThEMarD/android_device_leeco_x2-1
https://github.com/ThEMarD/android_kernel_leeco_msm8996
https://github.com/ThEMarD/proprietary_vendor_leeco_x2

Categories

Resources