Files
meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools_5.1.1.r37.bb
T
Dmitry Baryshkov 2a3d4be999 android-tools: create flag flag file for adbd at a proper location
The patches by Raghuvarya changed the location of the file that systemd
uses to check whether to start the adbd or not. However those patches
completely ignored creating those two flag files, as done by the
android-tools recipes.

Make the android-tools create the /etc/usb-debugging-enabled file so
that it's possible to enable the adbd automatically.

Fixes: a29c6386d5 ("android-toold-adbd: Fix inconsistency between selinux configurations")
Fixes: 8106cfe769 ("android-tools-adbd.service: Change /var to /etc in ConditionPathExists")
Cc: Raghuvarya S <quic_raghuvar@quicinc.com>
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2024-09-05 08:20:29 -07:00

201 lines
8.1 KiB
BlitzBasic

DESCRIPTION = "Different utilities from Android"
SECTION = "console/utils"
LICENSE = "Apache-2.0 & GPL-2.0-only & BSD-2-Clause & BSD-3-Clause"
LIC_FILES_CHKSUM = " \
file://${COMMON_LICENSE_DIR}/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10 \
file://${COMMON_LICENSE_DIR}/GPL-2.0-only;md5=801f80980d171dd6425610833a22dbe6 \
file://${COMMON_LICENSE_DIR}/BSD-2-Clause;md5=cb641bc04cda31daea161b1bc15da69f \
file://${COMMON_LICENSE_DIR}/BSD-3-Clause;md5=550794465ba0ec5312d6919e203a55f9 \
"
DEPENDS = "libbsd libpcre zlib libcap"
DEPENDS:append:class-target = " openssl"
ANDROID_MIRROR = "android.googlesource.com"
# matches with android-5.1.1_r37
SRCREV_core = "2314b110bdebdbfd2d94c502282f9e57c849897e"
SRCREV_extras = "3ecbe8d841df96127d7855661293e5ab6ba6c205"
SRCREV_libhardware = "be55eb1f4d840c82ffaf7c47460df17ff5bc4d9b"
SRCREV_libselinux = "07e9e1339ad1ba608acfba9dce2d0f474b252feb"
SRCREV_build = "16e987def3d7d8f7d30805eb95cef69e52a87dbc"
SRCREV_FORMAT = "core_extras_libhardware_libselinux_build"
SRC_URI = " \
git://${ANDROID_MIRROR}/platform/system/core;name=core;protocol=https;nobranch=1;destsuffix=git/system/core \
git://${ANDROID_MIRROR}/platform/system/extras;name=extras;protocol=https;nobranch=1;destsuffix=git/system/extras \
git://${ANDROID_MIRROR}/platform/hardware/libhardware;name=libhardware;protocol=https;nobranch=1;destsuffix=git/hardware/libhardware \
git://${ANDROID_MIRROR}/platform/external/libselinux;name=libselinux;protocol=https;nobranch=1;destsuffix=git/external/libselinux \
git://${ANDROID_MIRROR}/platform/build;name=build;protocol=https;nobranch=1;destsuffix=git/build \
file://core/0001-adb-remove-selinux-extensions.patch;patchdir=system/core \
file://core/0002-adb-Use-local-sockets-where-appropriate.patch;patchdir=system/core \
file://core/0003-adb-define-shell-command.patch;patchdir=system/core \
file://core/0004-adb-Fix-build-on-big-endian-systems.patch;patchdir=system/core \
file://core/0005-adb-add-base64-implementation.patch;patchdir=system/core \
file://core/0006-adb-Musl-fixes.patch;patchdir=system/core \
file://core/0007-adb-usb_linux.c-fix-build-with-glibc-2.28.patch;patchdir=system/core \
file://core/0008-adb-Allow-adbd-to-be-ran-as-root.patch;patchdir=system/core \
file://core/0009-mkbootimg-Add-dt-parameter-to-specify-DT-image.patch;patchdir=system/core \
file://core/0010-Use-linux-capability.h-on-linux-systems-too.patch;patchdir=system/core \
file://core/0011-Remove-bionic-specific-calls.patch;patchdir=system/core \
file://core/0012-Fix-implicit-declaration-of-stlcat-strlcopy-function.patch;patchdir=system/core \
file://core/adb_libssl_11.diff;patchdir=system/core \
file://core/b64_pton_function_decl.patch;patchdir=system/core \
file://core/0013-adb-Support-riscv64.patch;patchdir=system/core \
file://core/0014-add-u3-ss-descriptor-support-for-adb.patch;patchdir=system/core \
file://core/0015-libsparse-Split-off-most-of-sparse_file_read_normal-.patch;patchdir=system/core \
file://core/0016-libsparse-Add-hole-mode-to-sparse_file_read.patch;patchdir=system/core \
file://core/0017-img2simg-Add-support-for-converting-holes-to-don-t-c.patch;patchdir=system/core \
file://core/0001-memory.h-Always-define-strlcpy-for-glibc-based-syste.patch;patchdir=system/core \
file://extras/0001-ext4_utils-remove-selinux-extensions.patch;patchdir=system/extras \
file://extras/0002-ext4_utils-add-o-argument-to-preserve-ownership.patch;patchdir=system/extras \
file://libselinux/0001-Remove-bionic-specific-calls.patch;patchdir=external/libselinux \
file://libselinux/0001-libselinux-Do-not-define-gettid-if-glibc-2.30-is-use.patch;patchdir=external/libselinux \
file://android-tools-adbd.service \
file://build/0001-Riscv-Add-risc-v-Android-config-header.patch;patchdir=build \
file://gitignore \
file://adb.mk;subdir=${BPN} \
file://adbd.mk;subdir=${BPN} \
file://ext4_utils.mk;subdir=${BPN} \
file://fastboot.mk;subdir=${BPN} \
file://mkbootimg.mk;subdir=${BPN} \
"
S = "${WORKDIR}/git"
B = "${WORKDIR}/${BPN}"
# http://errors.yoctoproject.org/Errors/Details/133881/
ARM_INSTRUCTION_SET:armv4 = "arm"
ARM_INSTRUCTION_SET:armv5 = "arm"
COMPATIBLE_HOST:powerpc = "(null)"
COMPATIBLE_HOST:powerpc64 = "(null)"
COMPATIBLE_HOST:powerpc64le = "(null)"
inherit systemd
SYSTEMD_PACKAGES = "${PN}-adbd"
SYSTEMD_SERVICE:${PN}-adbd = "android-tools-adbd.service"
# Find libbsd headers during native builds
CC:append:class-native = " -I${STAGING_INCDIR}"
CC:append:class-nativesdk = " -I${STAGING_INCDIR}"
TOOLS = "adb fastboot ext4_utils mkbootimg adbd"
# Adb needs sys/capability.h, which is not available for native*
TOOLS:class-native = "fastboot ext4_utils mkbootimg"
TOOLS:class-nativesdk = "fastboot ext4_utils mkbootimg"
do_compile() {
cp ${UNPACKDIR}/gitignore ${S}/.gitignore
# Setting both variables below causing our makefiles to not work with
# implicit make rules
CFLAGS="-ffile-prefix-map=${S}=${TARGET_DBGSRC_DIR}"
unset CPPFLAGS
export SRCDIR=${S}
case "${HOST_ARCH}" in
arm)
export android_arch=linux-arm
;;
aarch64)
export android_arch=linux-arm64
;;
riscv64)
export android_arch=linux-riscv64
;;
mips|mipsel)
export android_arch=linux-mips
;;
mips64|mips64el)
export android_arch=linux-mips64
;;
powerpc|powerpc64)
export android_arch=linux-ppc
;;
i586|i686|x86_64)
export android_arch=linux-x86
;;
esac
for tool in ${TOOLS}; do
mkdir -p ${B}/${tool}
oe_runmake -f ${UNPACKDIR}/${BPN}/${tool}.mk -C ${B}/${tool}
done
}
do_install() {
if echo ${TOOLS} | grep -q "ext4_utils" ; then
install -D -p -m0755 ${S}/system/core/libsparse/simg_dump.py ${D}${bindir}/simg_dump
install -D -p -m0755 ${S}/system/extras/ext4_utils/mkuserimg.sh ${D}${bindir}/mkuserimg
install -m0755 ${B}/ext4_utils/ext2simg ${D}${bindir}
install -m0755 ${B}/ext4_utils/ext4fixup ${D}${bindir}
install -m0755 ${B}/ext4_utils/img2simg ${D}${bindir}
install -m0755 ${B}/ext4_utils/make_ext4fs ${D}${bindir}
install -m0755 ${B}/ext4_utils/simg2img ${D}${bindir}
install -m0755 ${B}/ext4_utils/simg2simg ${D}${bindir}
fi
if echo ${TOOLS} | grep -q "adb\>" ; then
install -d ${D}${bindir}
install -m0755 ${B}/adb/adb ${D}${bindir}
fi
if echo ${TOOLS} | grep -q "adbd" ; then
install -d ${D}${bindir}
install -m0755 ${B}/adbd/adbd ${D}${bindir}
fi
# Outside the if statement to avoid errors during do_package
install -D -p -m0644 ${UNPACKDIR}/android-tools-adbd.service \
${D}${systemd_unitdir}/system/android-tools-adbd.service
if echo ${TOOLS} | grep -q "fastboot" ; then
install -d ${D}${bindir}
install -m0755 ${B}/fastboot/fastboot ${D}${bindir}
fi
if echo ${TOOLS} | grep -q "mkbootimg" ; then
install -d ${D}${bindir}
install -m0755 ${B}/mkbootimg/mkbootimg ${D}${bindir}
fi
}
PACKAGES =+ "${PN}-fstools ${PN}-adbd"
RDEPENDS:${PN}-adbd = "${PN}-conf"
RDEPENDS:${PN}-fstools = "bash"
FILES:${PN}-adbd = "\
${bindir}/adbd \
${systemd_unitdir}/system/android-tools-adbd.service \
"
FILES:${PN}-fstools = "\
${bindir}/ext2simg \
${bindir}/ext4fixup \
${bindir}/img2simg \
${bindir}/make_ext4fs \
${bindir}/simg2img \
${bindir}/simg2simg \
${bindir}/simg_dump \
${bindir}/mkuserimg \
"
BBCLASSEXTEND = "native"
android_tools_enable_devmode() {
touch ${IMAGE_ROOTFS}/etc/usb-debugging-enabled
}
ROOTFS_POSTPROCESS_COMMAND_${PN}-adbd += "${@bb.utils.contains("USB_DEBUGGING_ENABLED", "1", "android_tools_enable_devmode;", "", d)}"
# http://errors.yoctoproject.org/Errors/Details/766881/
# android-tools/5.1.1.r37/git/system/core/adb/adb_auth_host.c:86:23: error: passing argument 2 of 'RSA_get0_key' from incompatible pointer type [-Wincompatible-pointer-types]
# android-tools/5.1.1.r37/git/system/core/adb/adb_auth_host.c:86:27: error: passing argument 3 of 'RSA_get0_key' from incompatible pointer type [-Wincompatible-pointer-types]
CC += "-Wno-error=incompatible-pointer-types"