mirror of
git://git.openembedded.org/meta-openembedded
synced 2026-09-06 04:38:27 +00:00
By default, img2simg will only generate raw and fill chunks. This adds support for "don't care" chunks, based on file holes. This is similar to how bmaptool works. "don't care" chunks do not need to be written, speeding up flashing time. Signed-off-by: Sean Anderson <sean.anderson@seco.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
194 lines
7.5 KiB
BlitzBasic
194 lines
7.5 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/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://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 ${WORKDIR}/gitignore ${S}/.gitignore
|
|
|
|
# Setting both variables below causing our makefiles to not work with
|
|
# implicit make rules
|
|
unset CFLAGS
|
|
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 ${B}/${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 ${WORKDIR}/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}/var/usb-debugging-enabled
|
|
}
|
|
|
|
ROOTFS_POSTPROCESS_COMMAND_${PN}-adbd += "${@bb.utils.contains("USB_DEBUGGING_ENABLED", "1", "android_tools_enable_devmode;", "", d)}"
|