diff options
author | Etienne Cordonnier <ecordonnier@snap.com> | 2023-03-10 16:31:06 +0100 |
---|---|---|
committer | Khem Raj <raj.khem@gmail.com> | 2023-03-14 09:39:58 -0700 |
commit | d3f4e6851243cfaed864dd6ec9d06cd0e81f58e4 (patch) | |
tree | 880de724cbf79149cef9343061ddc157ed867cf6 /meta-oe/dynamic-layers | |
parent | 98afa5696b4084ecfa4d9c6b19906d4a413ebaeb (diff) | |
download | meta-openembedded-d3f4e6851243cfaed864dd6ec9d06cd0e81f58e4.tar.gz |
android-tools 10: import version from meta-clang
Imported from:
https://github.com/kraj/meta-clang.git
Commit 87d41f7dd7a69bbf159
This version is on the one hand newer than the version currently in meta-openembedded (version 10 vs 5)
and on the other hand based on the debian sources, which already contain some
makefiles added by debian (android normally compiles with Android.bp files) and should
thus be easier to maintain than current version.
Signed-off-by: Etienne Cordonnier <ecordonnier@snap.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Diffstat (limited to 'meta-oe/dynamic-layers')
53 files changed, 2415 insertions, 0 deletions
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools-conf-configfs/10-adbd-configfs.conf b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools-conf-configfs/10-adbd-configfs.conf new file mode 100644 index 000000000..ddf155a90 --- /dev/null +++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools-conf-configfs/10-adbd-configfs.conf | |||
@@ -0,0 +1,4 @@ | |||
1 | [Service] | ||
2 | ExecStartPre=/usr/bin/android-gadget-setup | ||
3 | ExecStartPost=/usr/bin/android-gadget-start | ||
4 | ExecStopPost=/usr/bin/android-gadget-cleanup | ||
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools-conf-configfs/android-gadget-cleanup b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools-conf-configfs/android-gadget-cleanup new file mode 100644 index 000000000..517227d4a --- /dev/null +++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools-conf-configfs/android-gadget-cleanup | |||
@@ -0,0 +1,24 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | [ -d /sys/kernel/config/usb_gadget ] || exit 0 | ||
4 | |||
5 | cd /sys/kernel/config/usb_gadget | ||
6 | |||
7 | cd adb | ||
8 | |||
9 | echo "" > UDC || true | ||
10 | |||
11 | killall adbd || true | ||
12 | |||
13 | umount /dev/usb-ffs/adb | ||
14 | |||
15 | rm configs/c.1/ffs.usb0 | ||
16 | |||
17 | rmdir configs/c.1/strings/0x409 | ||
18 | rmdir configs/c.1 | ||
19 | |||
20 | rmdir functions/ffs.usb0 | ||
21 | rmdir strings/0x409 | ||
22 | |||
23 | cd .. | ||
24 | rmdir adb | ||
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools-conf-configfs/android-gadget-setup b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools-conf-configfs/android-gadget-setup new file mode 100644 index 000000000..e44d1bacb --- /dev/null +++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools-conf-configfs/android-gadget-setup | |||
@@ -0,0 +1,35 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | set -e | ||
4 | |||
5 | manufacturer=RPB | ||
6 | model="Android device" | ||
7 | serial=0123456789ABCDEF | ||
8 | |||
9 | if [ -r /etc/android-gadget-setup.machine ] ; then | ||
10 | . /etc/android-gadget-setup.machine | ||
11 | fi | ||
12 | |||
13 | [ -d /sys/kernel/config/usb_gadget ] || modprobe libcomposite | ||
14 | |||
15 | cd /sys/kernel/config/usb_gadget | ||
16 | |||
17 | [ -d adb ] && /usr/bin/android-gadget-cleanup || true | ||
18 | |||
19 | mkdir adb | ||
20 | cd adb | ||
21 | |||
22 | mkdir configs/c.1 | ||
23 | mkdir functions/ffs.usb0 | ||
24 | mkdir strings/0x409 | ||
25 | mkdir configs/c.1/strings/0x409 | ||
26 | echo 0x18d1 > idVendor | ||
27 | echo 0xd002 > idProduct | ||
28 | echo "$serial" > strings/0x409/serialnumber | ||
29 | echo "$manufacturer" > strings/0x409/manufacturer | ||
30 | echo "$model" > strings/0x409/product | ||
31 | echo "Conf 1" > configs/c.1/strings/0x409/configuration | ||
32 | ln -s functions/ffs.usb0 configs/c.1 | ||
33 | |||
34 | mkdir -p /dev/usb-ffs/adb | ||
35 | mount -t functionfs usb0 /dev/usb-ffs/adb | ||
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools-conf-configfs/android-gadget-start b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools-conf-configfs/android-gadget-start new file mode 100644 index 000000000..ca6c3df27 --- /dev/null +++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools-conf-configfs/android-gadget-start | |||
@@ -0,0 +1,7 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | set -e | ||
4 | |||
5 | sleep 3 | ||
6 | |||
7 | ls /sys/class/udc/ > /sys/kernel/config/usb_gadget/adb/UDC | ||
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools-conf-configfs_1.0.bb b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools-conf-configfs_1.0.bb new file mode 100644 index 000000000..3f9d49a2d --- /dev/null +++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools-conf-configfs_1.0.bb | |||
@@ -0,0 +1,35 @@ | |||
1 | DESCRIPTION = "Different utilities from Android - corressponding configuration files for using ConfigFS" | ||
2 | SECTION = "console/utils" | ||
3 | LICENSE = "MIT" | ||
4 | LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" | ||
5 | |||
6 | SRC_URI = " \ | ||
7 | file://android-gadget-setup \ | ||
8 | file://android-gadget-start \ | ||
9 | file://android-gadget-cleanup \ | ||
10 | file://10-adbd-configfs.conf \ | ||
11 | " | ||
12 | |||
13 | PACKAGE_ARCH = "${MACHINE_ARCH}" | ||
14 | |||
15 | do_install() { | ||
16 | install -d ${D}${bindir} | ||
17 | install -m 0755 ${WORKDIR}/android-gadget-setup ${D}${bindir} | ||
18 | install -m 0755 ${WORKDIR}/android-gadget-start ${D}${bindir} | ||
19 | install -m 0755 ${WORKDIR}/android-gadget-cleanup ${D}${bindir} | ||
20 | |||
21 | if [ -r ${WORKDIR}/android-gadget-setup.machine ] ; then | ||
22 | install -d ${D}${sysconfdir} | ||
23 | install -m 0644 ${WORKDIR}/android-gadget-setup.machine ${D}${sysconfdir} | ||
24 | fi | ||
25 | |||
26 | install -d ${D}${systemd_unitdir}/system/android-tools-adbd.service.d | ||
27 | install -m 0644 ${WORKDIR}/10-adbd-configfs.conf ${D}${systemd_unitdir}/system/android-tools-adbd.service.d | ||
28 | } | ||
29 | |||
30 | FILES:${PN} += " \ | ||
31 | ${systemd_unitdir}/system/ \ | ||
32 | " | ||
33 | |||
34 | PROVIDES += "android-tools-conf" | ||
35 | RPROVIDES:${PN} = "android-tools-conf" | ||
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools-conf/android-gadget-setup b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools-conf/android-gadget-setup new file mode 100644 index 000000000..26cf30edd --- /dev/null +++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools-conf/android-gadget-setup | |||
@@ -0,0 +1,37 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | [ ! -e /dev/pts ] && mkdir -p /dev/pts | ||
4 | [ ! -e /dev/pts/0 ] && mount devpts /dev/pts -t devpts | ||
5 | |||
6 | # TODO enable the lines below once we have support for getprop | ||
7 | # retrieve the product info from Android | ||
8 | # manufacturer=$(getprop ro.product.manufacturer Android) | ||
9 | # model=$(getprop ro.product.model Android) | ||
10 | # serial=$(getprop ro.serialno 0123456789ABCDEF) | ||
11 | |||
12 | #below are now needed in order to use FunctionFS for ADB, tested to work with 3.4+ kernels | ||
13 | if grep -q functionfs /proc/filesystems; then | ||
14 | mkdir -p /dev/usb-ffs/adb | ||
15 | mount -t functionfs adb /dev/usb-ffs/adb | ||
16 | #android-gadget-setup doesn't provide below 2 and without them it won't work, so we provide them here. | ||
17 | echo adb > /sys/class/android_usb/android0/f_ffs/aliases | ||
18 | echo ffs > /sys/class/android_usb/android0/functions | ||
19 | fi | ||
20 | |||
21 | manufacturer="$(cat /system/build.prop | grep -o 'ro.product.manufacturer=.*' | cut -d'=' -f 2)" | ||
22 | model="$(cat /system/build.prop | grep -o 'ro.product.model=.*' | cut -d'=' -f 2)" | ||
23 | # get the device serial number from /proc/cmdline directly(since we have no getprop on | ||
24 | # GNU/Linux) | ||
25 | serial="$(cat /proc/cmdline | sed 's/.*androidboot.serialno=//' | sed 's/ .*//')" | ||
26 | |||
27 | echo $serial > /sys/class/android_usb/android0/iSerial | ||
28 | echo $manufacturer > /sys/class/android_usb/android0/iManufacturer | ||
29 | echo $model > /sys/class/android_usb/android0/iProduct | ||
30 | |||
31 | echo "0" > /sys/class/android_usb/android0/enable | ||
32 | echo "18d1" > /sys/class/android_usb/android0/idVendor | ||
33 | echo "D002" > /sys/class/android_usb/android0/idProduct | ||
34 | echo "adb" > /sys/class/android_usb/android0/functions | ||
35 | echo "1" > /sys/class/android_usb/android0/enable | ||
36 | |||
37 | sleep 4 | ||
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools-conf_1.0.bb b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools-conf_1.0.bb new file mode 100644 index 000000000..b63ccbb08 --- /dev/null +++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools-conf_1.0.bb | |||
@@ -0,0 +1,18 @@ | |||
1 | DESCRIPTION = "Different utilities from Android - corresponding configuration files" | ||
2 | SECTION = "console/utils" | ||
3 | LICENSE = "MIT" | ||
4 | LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" | ||
5 | |||
6 | SRC_URI = "file://android-gadget-setup" | ||
7 | |||
8 | do_install() { | ||
9 | install -d ${D}${bindir} | ||
10 | install -m 0755 ${WORKDIR}/android-gadget-setup ${D}${bindir} | ||
11 | } | ||
12 | |||
13 | python () { | ||
14 | pn = d.getVar('PN') | ||
15 | profprov = d.getVar("PREFERRED_PROVIDER_" + pn) | ||
16 | if profprov and pn != profprov: | ||
17 | raise bb.parse.SkipRecipe("PREFERRED_PROVIDER_%s set to %s, not %s" % (pn, profprov, pn)) | ||
18 | } | ||
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/0001-libcrypto.mk-modifications-to-make-it-build-in-yocto.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/0001-libcrypto.mk-modifications-to-make-it-build-in-yocto.patch new file mode 100644 index 000000000..7d6d588dd --- /dev/null +++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/0001-libcrypto.mk-modifications-to-make-it-build-in-yocto.patch | |||
@@ -0,0 +1,41 @@ | |||
1 | From 30193c177138551a9aa269ae249ed2800811b223 Mon Sep 17 00:00:00 2001 | ||
2 | From: Etienne Cordonnier <ecordonnier@snap.com> | ||
3 | Date: Fri, 3 Mar 2023 13:24:11 +0100 | ||
4 | Subject: [PATCH] libcrypto.mk: modifications to make it build in yocto | ||
5 | environment | ||
6 | |||
7 | Adding an include file that is setting the common flags. | ||
8 | |||
9 | Modified the build rule so that it outputs the binary and include | ||
10 | to the OUT_DIR | ||
11 | |||
12 | Signed-off-by: Nisha Parrakat <Nisha.Parrakat@kpit.com> | ||
13 | --- | ||
14 | debian/libcrypto.mk | 9 ++++++--- | ||
15 | 1 file changed, 6 insertions(+), 3 deletions(-) | ||
16 | |||
17 | diff --git a/debian/libcrypto.mk b/debian/libcrypto.mk | ||
18 | index 4c0268e..8b41056 100644 | ||
19 | --- a/debian/libcrypto.mk | ||
20 | +++ b/debian/libcrypto.mk | ||
21 | @@ -1,3 +1,4 @@ | ||
22 | +include ../../rules_yocto.mk | ||
23 | include sources.mk | ||
24 | |||
25 | NAME = libcrypto | ||
26 | @@ -26,6 +27,8 @@ CPPFLAGS += -Isrc/include -Isrc/crypto | ||
27 | LDFLAGS += -shared -Wl,-soname,$(NAME).so.0 -lpthread | ||
28 | |||
29 | build: $(SOURCES) | ||
30 | - mkdir --parents debian/out | ||
31 | - $(CC) $^ -o debian/out/$(NAME).so.0 $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) | ||
32 | - ln -s $(NAME).so.0 debian/out/$(NAME).so | ||
33 | \ No newline at end of file | ||
34 | + mkdir --parents $(OUT_DIR)/usr/lib/$(DEB_HOST_MULTIARCH)/android/ | ||
35 | + mkdir --parents $(OUT_DIR)/usr/include | ||
36 | + $(CC) $^ -o $(OUT_DIR)/usr/lib/$(DEB_HOST_MULTIARCH)/android/$(NAME).so.0 $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -DOPENSSL_NO_ASM | ||
37 | + ln -sf $(NAME).so.0 $(OUT_DIR)/usr/lib/$(DEB_HOST_MULTIARCH)/android/$(NAME).so | ||
38 | + cp -r include/openssl $(OUT_DIR)/usr/include | ||
39 | -- | ||
40 | 2.36.1.vfs.0.0 | ||
41 | |||
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/0001-libext4_utils.mk-modifications-to-make-it-build-in-y.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/0001-libext4_utils.mk-modifications-to-make-it-build-in-y.patch new file mode 100644 index 000000000..04592da81 --- /dev/null +++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/0001-libext4_utils.mk-modifications-to-make-it-build-in-y.patch | |||
@@ -0,0 +1,54 @@ | |||
1 | From e284ceac2b10133ca916bbae8055f040607b506c Mon Sep 17 00:00:00 2001 | ||
2 | From: Etienne Cordonnier <ecordonnier@snap.com> | ||
3 | Date: Fri, 3 Mar 2023 13:21:49 +0100 | ||
4 | Subject: [PATCH 1/2] libext4_utils.mk: modifications to make it build in yocto | ||
5 | environment | ||
6 | |||
7 | Adding an include file that is setting the common flags. | ||
8 | Changed the cppflag to include the headers from other components | ||
9 | of android-tools | ||
10 | |||
11 | Modified LDflags so that the libraries that are coming from other android-tools | ||
12 | are searched in the output folder. | ||
13 | |||
14 | Modified the build rule so that it outputs the binary and header to the OUT_DIR | ||
15 | |||
16 | Signed-off-by: Nisha Parrakat <Nisha.Parrakat@kpit.com> | ||
17 | --- | ||
18 | debian/libext4_utils.mk | 13 ++++++++----- | ||
19 | 1 file changed, 8 insertions(+), 5 deletions(-) | ||
20 | |||
21 | diff --git a/debian/libext4_utils.mk b/debian/libext4_utils.mk | ||
22 | index 868e790..2e93158 100644 | ||
23 | --- a/debian/libext4_utils.mk | ||
24 | +++ b/debian/libext4_utils.mk | ||
25 | @@ -1,3 +1,4 @@ | ||
26 | +include ../../rules_yocto.mk | ||
27 | NAME = libext4_utils | ||
28 | |||
29 | ext4_utils_SOURCES := \ | ||
30 | @@ -17,14 +18,16 @@ CPPFLAGS += \ | ||
31 | -Iext4_utils/include \ | ||
32 | -Ilibfec/include \ | ||
33 | -Isquashfs_utils \ | ||
34 | - -I/usr/include/android \ | ||
35 | + -I/usr/include/android -I$(OUT_DIR)/usr/include \ | ||
36 | -D_GNU_SOURCE -DFEC_NO_KLOG -DSQUASHFS_NO_KLOG -D_LARGEFILE64_SOURCE | ||
37 | LDFLAGS += -shared -Wl,-soname,$(NAME).so.0 \ | ||
38 | -Wl,-rpath=/usr/lib/$(DEB_HOST_MULTIARCH)/android \ | ||
39 | - -L/usr/lib/$(DEB_HOST_MULTIARCH)/android \ | ||
40 | + -L$(OUT_DIR)/usr/lib/$(DEB_HOST_MULTIARCH)/android/ \ | ||
41 | -lbase -lsparse -lselinux | ||
42 | |||
43 | build: $(SOURCES) | ||
44 | - mkdir --parents $(OUT_DIR) | ||
45 | - $(CC) $^ -o $(OUT_DIR)/$(NAME).so.0 $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) | ||
46 | - ln -s $(NAME).so.0 $(OUT_DIR)/$(NAME).so | ||
47 | + mkdir --parents $(OUT_DIR)/usr/lib/$(DEB_HOST_MULTIARCH)/android/ | ||
48 | + $(CC) $^ -o $(OUT_DIR)/usr/lib/$(DEB_HOST_MULTIARCH)/android/$(NAME).so.0 $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) | ||
49 | + ln -sf $(NAME).so.0 $(OUT_DIR)/usr/lib/$(DEB_HOST_MULTIARCH)/android/$(NAME).so | ||
50 | + cp -r ext4_utils/include/* $(OUT_DIR)/usr/include/ | ||
51 | + | ||
52 | -- | ||
53 | 2.36.1.vfs.0.0 | ||
54 | |||
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/0001-patching-libundwind-to-build-in-yocto-environment.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/0001-patching-libundwind-to-build-in-yocto-environment.patch new file mode 100644 index 000000000..f6bea174d --- /dev/null +++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/0001-patching-libundwind-to-build-in-yocto-environment.patch | |||
@@ -0,0 +1,58 @@ | |||
1 | From d5fb34aef65b5c5472544e4f42ad777d8fa16ba9 Mon Sep 17 00:00:00 2001 | ||
2 | From: Etienne Cordonnier <ecordonnier@snap.com> | ||
3 | Date: Fri, 3 Mar 2023 13:41:52 +0100 | ||
4 | Subject: [PATCH] patching libundwind to build in yocto environment. | ||
5 | |||
6 | Changes include: | ||
7 | Introduced an output folder which will keep all the outputs from the | ||
8 | android-tools. | ||
9 | |||
10 | Adding an include file that is setting the common flags. | ||
11 | Changed the cppflag to include the headers from other components | ||
12 | of android-tools | ||
13 | |||
14 | Modified LDflags so that the libraries that are coming from other android-tools | ||
15 | are searched in the output folder. | ||
16 | |||
17 | Modified the build rule so that it outputs the binary to the OUT_DIR | ||
18 | |||
19 | Passing the architecture details($CPU)from the recipe. | ||
20 | |||
21 | Signed-off-by: Nisha Parrakat <Nisha.Parrakat@kpit.com> | ||
22 | |||
23 | Upstream-Status: Pending | ||
24 | --- | ||
25 | debian/libunwind.mk | 14 ++++++++------ | ||
26 | 1 file changed, 8 insertions(+), 6 deletions(-) | ||
27 | |||
28 | diff --git a/debian/libunwind.mk b/debian/libunwind.mk | ||
29 | index 738b205..ada4ef9 100644 | ||
30 | --- a/debian/libunwind.mk | ||
31 | +++ b/debian/libunwind.mk | ||
32 | @@ -1,4 +1,4 @@ | ||
33 | -include debian/detect_arch.mk | ||
34 | +include ../../rules_yocto.mk | ||
35 | |||
36 | ARCH_SOURCES = is_fpreg.c \ | ||
37 | regname.c \ | ||
38 | @@ -131,10 +131,12 @@ CFLAGS += -DHAVE_CONFIG_H -DNDEBUG -D_GNU_SOURCE -Werror -Wno-unused-parameter - | ||
39 | CPPFLAGS += -Iinclude -Isrc $($(CPU)_INCLUDES) -Idebian/include | ||
40 | LDFLAGS += -shared -Wl,-soname,$(NAME).so.0 \ | ||
41 | -Wl,-rpath=/usr/lib/$(DEB_HOST_MULTIARCH)/android \ | ||
42 | - -lpthread -nostdlib -lc -lgcc -Ldebian/out -l7z | ||
43 | + -lpthread -nostdlib -lc -lgcc -l7z -Wno-error=unused-command-line-argument | ||
44 | |||
45 | build: $(SOURCES) | ||
46 | - mkdir --parents debian/out | ||
47 | - ln -s /usr/lib/p7zip/7z.so debian/out/lib7z.so | ||
48 | - $(CC) $^ -o debian/out/$(NAME).so.0 $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) | ||
49 | - ln -s $(NAME).so.0 debian/out/$(NAME).so | ||
50 | + mkdir --parents $(OUT_DIR)/usr/lib/$(DEB_HOST_MULTIARCH)/android/ | ||
51 | + mkdir --parents $(OUT_DIR)/usr/include/android/libunwind | ||
52 | + $(CC) $^ -o $(OUT_DIR)/usr/lib/$(DEB_HOST_MULTIARCH)/android/$(NAME).so.0 $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -Wno-header-guard -Wno-absolute-value | ||
53 | + ln -sf $(NAME).so.0 $(OUT_DIR)/usr/lib/$(DEB_HOST_MULTIARCH)/android/$(NAME).so | ||
54 | + cp -r include/* debian/include/* $(OUT_DIR)/usr/include/android/libunwind/ | ||
55 | + | ||
56 | -- | ||
57 | 2.36.1.vfs.0.0 | ||
58 | |||
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/0002-libfec-change-out_dir-in-makefile.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/0002-libfec-change-out_dir-in-makefile.patch new file mode 100644 index 000000000..25f8efee7 --- /dev/null +++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/0002-libfec-change-out_dir-in-makefile.patch | |||
@@ -0,0 +1,49 @@ | |||
1 | From 3be070a1fe2efa2877684f95c6a5643f76ee8bbc Mon Sep 17 00:00:00 2001 | ||
2 | From: Etienne Cordonnier <ecordonnier@snap.com> | ||
3 | Date: Fri, 3 Mar 2023 13:32:11 +0100 | ||
4 | Subject: [PATCH 2/2] libfec: change out_dir in makefile | ||
5 | |||
6 | --- | ||
7 | debian/libfec.mk | 14 ++++++++------ | ||
8 | 1 file changed, 8 insertions(+), 6 deletions(-) | ||
9 | |||
10 | diff --git a/debian/libfec.mk b/debian/libfec.mk | ||
11 | index 1d48392..dea9316 100644 | ||
12 | --- a/debian/libfec.mk | ||
13 | +++ b/debian/libfec.mk | ||
14 | @@ -1,3 +1,4 @@ | ||
15 | +include ../../rules_yocto.mk | ||
16 | NAME = libfec | ||
17 | |||
18 | # copied from libfec/Android.bp | ||
19 | @@ -12,20 +13,21 @@ CXXSOURCES := $(foreach source, $(filter %.cpp, $(SOURCES)), libfec/$(source)) | ||
20 | CXXFLAGS += -fno-strict-aliasing -std=g++17 | ||
21 | CPPFLAGS += \ | ||
22 | -Iext4_utils/include \ | ||
23 | - -Ilibfec/include \ | ||
24 | + -Ilibfec/include -I $(OUT_DIR)/usr/include \ | ||
25 | -D_GNU_SOURCE -DFEC_NO_KLOG -D_LARGEFILE64_SOURCE | ||
26 | LDFLAGS += -shared -Wl,-soname,$(NAME).so.0 \ | ||
27 | -Wl,-rpath=/usr/lib/$(DEB_HOST_MULTIARCH)/android \ | ||
28 | - -L/usr/lib/$(DEB_HOST_MULTIARCH)/android \ | ||
29 | + -L$(OUT_DIR)/usr/lib/$(DEB_HOST_MULTIARCH)/android \ | ||
30 | -lbase -lsparse -lselinux | ||
31 | |||
32 | build: $(COBJECTS) $(CXXOBJECTS) | ||
33 | - mkdir -p $(OUT_DIR) | ||
34 | - $(CXX) $^ -o $(OUT_DIR)/$(NAME).so.0 $(LDFLAGS) | ||
35 | - ln -s $(NAME).so.0 $(OUT_DIR)/$(NAME).so | ||
36 | + mkdir -p $(OUT_DIR)/usr/lib/$(DEB_HOST_MULTIARCH)/android | ||
37 | + $(CXX) $^ -o $(OUT_DIR)/usr/lib/$(DEB_HOST_MULTIARCH)/android/$(NAME).so.0 $(LDFLAGS) | ||
38 | + ln -sf $(NAME).so.0 $(OUT_DIR)/usr/lib/$(DEB_HOST_MULTIARCH)/android/$(NAME).so | ||
39 | + cp -r libfec/include/* $(OUT_DIR)/usr/include/ | ||
40 | |||
41 | clean: | ||
42 | - $(RM) $(CXXOBJECTS) $(COBJECTS) $(NAME).so* | ||
43 | + $(RM) $(CXXOBJECTS) $(COBJECTS) $(OUT_DIR)/usr/lib/$(DEB_HOST_MULTIARCH)/android/$(NAME).so* | ||
44 | |||
45 | $(COBJECTS): %.o: %.c | ||
46 | $(CC) $< -o $@ $(CFLAGS) $(CPPFLAGS) | ||
47 | -- | ||
48 | 2.36.1.vfs.0.0 | ||
49 | |||
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/adbd.mk b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/adbd.mk new file mode 100644 index 000000000..cb82683bb --- /dev/null +++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/adbd.mk | |||
@@ -0,0 +1,72 @@ | |||
1 | include ../../rules_yocto.mk | ||
2 | NAME = adbd | ||
3 | |||
4 | SOURCES = \ | ||
5 | adb/daemon/main.cpp \ | ||
6 | adb/daemon/auth.cpp \ | ||
7 | adb/daemon/jdwp_service.cpp \ | ||
8 | adb/daemon/file_sync_service.cpp \ | ||
9 | adb/daemon/services.cpp \ | ||
10 | adb/daemon/shell_service.cpp \ | ||
11 | adb/daemon/remount_service.cpp \ | ||
12 | adb/daemon/restart_service.cpp \ | ||
13 | adb/daemon/reboot_service.cpp \ | ||
14 | adb/daemon/framebuffer_service.cpp \ | ||
15 | adb/daemon/set_verity_enable_state_service.cpp \ | ||
16 | adb/shell_service_protocol.cpp \ | ||
17 | adb/adb.cpp \ | ||
18 | adb/adb_io.cpp \ | ||
19 | adb/adb_listeners.cpp \ | ||
20 | adb/adb_trace.cpp \ | ||
21 | adb/adb_unique_fd.cpp \ | ||
22 | adb/adb_utils.cpp \ | ||
23 | adb/fdevent.cpp \ | ||
24 | adb/services.cpp \ | ||
25 | adb/sockets.cpp \ | ||
26 | adb/socket_spec.cpp \ | ||
27 | adb/sysdeps/errno.cpp \ | ||
28 | adb/transport.cpp \ | ||
29 | adb/transport_fd.cpp \ | ||
30 | adb/transport_local.cpp \ | ||
31 | adb/transport_usb.cpp \ | ||
32 | adb/sysdeps_unix.cpp \ | ||
33 | adb/sysdeps/posix/network.cpp \ | ||
34 | adb/daemon/usb_legacy.cpp \ | ||
35 | adb/daemon/usb_ffs.cpp \ | ||
36 | adb/daemon/usb.cpp \ | ||
37 | diagnose_usb/diagnose_usb.cpp \ | ||
38 | libasyncio/AsyncIO.cpp \ | ||
39 | |||
40 | CXXFLAGS += -std=gnu++20 | ||
41 | CPPFLAGS += -Iinclude -Iadb -Ibase/include -I$(OUT_DIR)/usr/include/ -Imkbootimg/include/bootimg -Ifs_mgr/include \ | ||
42 | -Ifs_mgr/include_fstab \ | ||
43 | -DADB_VERSION='"$(DEB_VERSION)"' -D_GNU_SOURCE | ||
44 | LDFLAGS += -Wl,-rpath=/usr/lib/$(DEB_HOST_MULTIARCH)/android -Wl,-rpath-link=$(OUT_DIR)/usr/lib/$(DEB_HOST_MULTIARCH)/android/ \ | ||
45 | -lpthread -L$(OUT_DIR)/usr/lib/$(DEB_HOST_MULTIARCH)/android/ -lbase -lcrypto_utils -lcrypto -lcutils -llog -lresolv | ||
46 | |||
47 | PAGE_SIZE ?= 4096 | ||
48 | |||
49 | CXXFLAGS += -UADB_HOST | ||
50 | CXXFLAGS += -DADB_HOST=0 | ||
51 | CXXFLAGS += -DALLOW_ADBD_DISABLE_VERITY | ||
52 | CXXFLAGS += -DALLOW_ADBD_NO_AUTH | ||
53 | CXXFLAGS += -DPLATFORM_TOOLS_VERSION='"28.0.2"' | ||
54 | CXXFLAGS += -Idiagnose_usb/include | ||
55 | CXXFLAGS += -Iadb/daemon/include | ||
56 | CXXFLAGS += -Ilibasyncio/include | ||
57 | CXXFLAGS += -Wno-c++11-narrowing | ||
58 | CXXFLAGS += -DPAGE_SIZE=$(PAGE_SIZE) | ||
59 | |||
60 | |||
61 | # -latomic should be the last library specified | ||
62 | # https://github.com/android/ndk/issues/589 | ||
63 | ifneq ($(filter armel mipsel,$(DEB_HOST_ARCH)),) | ||
64 | LDFLAGS += -latomic | ||
65 | endif | ||
66 | |||
67 | build: $(SOURCES) | ||
68 | mkdir --parents ../../../android-tools/adbd | ||
69 | $(CXX) $^ -o ../../../android-tools/adbd/adbd $(CXXFLAGS) $(CPPFLAGS) $(LDFLAGS) | ||
70 | |||
71 | clean: | ||
72 | $(RM) $(OUT_DIR)/usr/bin/$(NAME) | ||
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/android-tools-adbd.service b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/android-tools-adbd.service new file mode 100644 index 000000000..ddf8d7f74 --- /dev/null +++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/android-tools-adbd.service | |||
@@ -0,0 +1,13 @@ | |||
1 | [Unit] | ||
2 | Description=Android Debug Bridge | ||
3 | ConditionPathExists=/var/usb-debugging-enabled | ||
4 | Before=android-system.service | ||
5 | |||
6 | [Service] | ||
7 | Type=simple | ||
8 | Restart=on-failure | ||
9 | ExecStartPre=-/usr/bin/android-gadget-setup adb | ||
10 | ExecStart=/usr/bin/adbd | ||
11 | |||
12 | [Install] | ||
13 | WantedBy=basic.target | ||
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core-debian/Added-missing-headers.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core-debian/Added-missing-headers.patch new file mode 100644 index 000000000..2820e7980 --- /dev/null +++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core-debian/Added-missing-headers.patch | |||
@@ -0,0 +1,94 @@ | |||
1 | Description: Added missing headers causing compile errors | ||
2 | Author: Umang Parmar <umangjparmar@gmail.com> | ||
3 | Forwarded: not-needed | ||
4 | |||
5 | --- a/adb/sysdeps/posix/network.cpp | ||
6 | +++ b/adb/sysdeps/posix/network.cpp | ||
7 | @@ -22,6 +22,7 @@ | ||
8 | #include <sys/socket.h> | ||
9 | |||
10 | #include <string> | ||
11 | +#include <cstring> | ||
12 | |||
13 | #include <android-base/logging.h> | ||
14 | #include <android-base/stringprintf.h> | ||
15 | --- a/base/errors_unix.cpp | ||
16 | +++ b/base/errors_unix.cpp | ||
17 | @@ -17,6 +17,7 @@ | ||
18 | #include "android-base/errors.h" | ||
19 | |||
20 | #include <errno.h> | ||
21 | +#include <cstring> | ||
22 | |||
23 | namespace android { | ||
24 | namespace base { | ||
25 | --- a/base/file.cpp | ||
26 | +++ b/base/file.cpp | ||
27 | @@ -26,6 +26,7 @@ | ||
28 | #include <sys/stat.h> | ||
29 | #include <sys/types.h> | ||
30 | #include <unistd.h> | ||
31 | +#include <cstring> | ||
32 | |||
33 | #include <memory> | ||
34 | #include <mutex> | ||
35 | --- a/base/logging.cpp | ||
36 | +++ b/base/logging.cpp | ||
37 | @@ -24,6 +24,7 @@ | ||
38 | #include <inttypes.h> | ||
39 | #include <libgen.h> | ||
40 | #include <time.h> | ||
41 | +#include <cstring> | ||
42 | |||
43 | // For getprogname(3) or program_invocation_short_name. | ||
44 | #if defined(__ANDROID__) || defined(__APPLE__) | ||
45 | --- a/libcutils/include/cutils/jstring.h | ||
46 | +++ b/libcutils/include/cutils/jstring.h | ||
47 | @@ -19,6 +19,7 @@ | ||
48 | |||
49 | #include <stdint.h> | ||
50 | #include <stddef.h> | ||
51 | +#include <uchar.h> | ||
52 | |||
53 | #ifdef __cplusplus | ||
54 | extern "C" { | ||
55 | --- a/libbacktrace/BacktraceMap.cpp | ||
56 | +++ b/libbacktrace/BacktraceMap.cpp | ||
57 | @@ -21,6 +21,7 @@ | ||
58 | #include <stdint.h> | ||
59 | #include <sys/types.h> | ||
60 | #include <unistd.h> | ||
61 | +#include <algorithm> | ||
62 | |||
63 | #include <log/log.h> | ||
64 | |||
65 | --- a/demangle/Demangler.cpp | ||
66 | +++ b/demangle/Demangler.cpp | ||
67 | @@ -20,6 +20,7 @@ | ||
68 | #include <stack> | ||
69 | #include <string> | ||
70 | #include <vector> | ||
71 | +#include <cstring> | ||
72 | |||
73 | #include "Demangler.h" | ||
74 | |||
75 | --- a/libbacktrace/UnwindStackMap.cpp | ||
76 | +++ b/libbacktrace/UnwindStackMap.cpp | ||
77 | @@ -20,6 +20,7 @@ | ||
78 | |||
79 | #include <string> | ||
80 | #include <vector> | ||
81 | +#include <algorithm> | ||
82 | |||
83 | #include <backtrace/BacktraceMap.h> | ||
84 | #include <unwindstack/Elf.h> | ||
85 | --- a/adb/types.h | ||
86 | +++ b/adb/types.h | ||
87 | @@ -17,6 +17,7 @@ | ||
88 | #pragma once | ||
89 | |||
90 | #include <algorithm> | ||
91 | +#include <cstring> | ||
92 | #include <deque> | ||
93 | #include <memory> | ||
94 | #include <type_traits> | ||
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core-debian/Nonnull.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core-debian/Nonnull.patch new file mode 100644 index 000000000..a7e0fa81e --- /dev/null +++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core-debian/Nonnull.patch | |||
@@ -0,0 +1,20 @@ | |||
1 | Description: Bring Clang's _Nonnull keyword to GCC | ||
2 | Author: Kai-Chung Yan | ||
3 | Forwarded: not-needed | ||
4 | --- a/adb/sysdeps.h | ||
5 | +++ b/adb/sysdeps.h | ||
6 | @@ -40,11 +40,12 @@ | ||
7 | #include "sysdeps/network.h" | ||
8 | #include "sysdeps/stat.h" | ||
9 | |||
10 | +#define _Nonnull | ||
11 | +#define _Nullable | ||
12 | + | ||
13 | #ifdef _WIN32 | ||
14 | |||
15 | // Clang-only nullability specifiers | ||
16 | -#define _Nonnull | ||
17 | -#define _Nullable | ||
18 | |||
19 | #include <ctype.h> | ||
20 | #include <direct.h> | ||
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core-debian/Vector-cast.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core-debian/Vector-cast.patch new file mode 100644 index 000000000..dd39d1ee7 --- /dev/null +++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core-debian/Vector-cast.patch | |||
@@ -0,0 +1,14 @@ | |||
1 | Description: Fix the wired error by GCC7 that fails to match the correct parent method. | ||
2 | Author: Kai-Chung Yan | ||
3 | Forwarded: not-needed | ||
4 | --- a/libutils/include/utils/Vector.h | ||
5 | +++ b/libutils/include/utils/Vector.h | ||
6 | @@ -256,7 +256,7 @@ | ||
7 | |||
8 | template<class TYPE> inline | ||
9 | const Vector<TYPE>& Vector<TYPE>::operator = (const Vector<TYPE>& rhs) const { | ||
10 | - VectorImpl::operator = (static_cast<const VectorImpl&>(rhs)); | ||
11 | + VectorImpl::operator = (rhs); | ||
12 | return *this; | ||
13 | } | ||
14 | |||
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core-debian/add-missing-headers.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core-debian/add-missing-headers.patch new file mode 100644 index 000000000..62a8ba203 --- /dev/null +++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core-debian/add-missing-headers.patch | |||
@@ -0,0 +1,20 @@ | |||
1 | --- a/fs_mgr/liblp/reader.cpp | ||
2 | +++ b/fs_mgr/liblp/reader.cpp | ||
3 | @@ -21,6 +21,7 @@ | ||
4 | #include <unistd.h> | ||
5 | |||
6 | #include <functional> | ||
7 | +#include <cstring> | ||
8 | |||
9 | #include <android-base/file.h> | ||
10 | #include <android-base/unique_fd.h> | ||
11 | --- a/fs_mgr/liblp/writer.cpp | ||
12 | +++ b/fs_mgr/liblp/writer.cpp | ||
13 | @@ -20,6 +20,7 @@ | ||
14 | #include <unistd.h> | ||
15 | |||
16 | #include <string> | ||
17 | +#include <cstring> | ||
18 | |||
19 | #include <android-base/file.h> | ||
20 | #include <android-base/unique_fd.h> | ||
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core-debian/fix-attribute-issue-with-gcc.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core-debian/fix-attribute-issue-with-gcc.patch new file mode 100644 index 000000000..771f0e71c --- /dev/null +++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core-debian/fix-attribute-issue-with-gcc.patch | |||
@@ -0,0 +1,17 @@ | |||
1 | Description: remove clang-ism | ||
2 | Forwarded: not-needed | ||
3 | |||
4 | --- a/base/include/android-base/logging.h | ||
5 | +++ b/base/include/android-base/logging.h | ||
6 | @@ -484,10 +484,7 @@ | ||
7 | // -Wno-user-defined-warnings to CPPFLAGS. | ||
8 | #pragma clang diagnostic push | ||
9 | #pragma clang diagnostic ignored "-Wgcc-compat" | ||
10 | -#define OSTREAM_STRING_POINTER_USAGE_WARNING \ | ||
11 | - __attribute__((diagnose_if(true, "Unexpected logging of string pointer", "warning"))) | ||
12 | -inline std::ostream& operator<<(std::ostream& stream, const std::string* string_pointer) | ||
13 | - OSTREAM_STRING_POINTER_USAGE_WARNING { | ||
14 | +inline std::ostream& operator<<(std::ostream& stream, const std::string* string_pointer) { | ||
15 | return stream << static_cast<const void*>(string_pointer); | ||
16 | } | ||
17 | #pragma clang diagnostic pop | ||
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core-debian/fix-build-on-non-x86.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core-debian/fix-build-on-non-x86.patch new file mode 100644 index 000000000..66d1dddc6 --- /dev/null +++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core-debian/fix-build-on-non-x86.patch | |||
@@ -0,0 +1,24 @@ | |||
1 | Description: non-x86 arches do not have PAGE_SIZE | ||
2 | Forwarded: not-needed | ||
3 | --- a/base/cmsg.cpp | ||
4 | +++ b/base/cmsg.cpp | ||
5 | @@ -33,7 +33,8 @@ | ||
6 | const std::vector<int>& fds) { | ||
7 | size_t cmsg_space = CMSG_SPACE(sizeof(int) * fds.size()); | ||
8 | size_t cmsg_len = CMSG_LEN(sizeof(int) * fds.size()); | ||
9 | - if (cmsg_space >= PAGE_SIZE) { | ||
10 | + size_t pagesize = static_cast<size_t>(sysconf(_SC_PAGE_SIZE)); | ||
11 | + if (cmsg_space >= pagesize) { | ||
12 | errno = ENOMEM; | ||
13 | return -1; | ||
14 | } | ||
15 | @@ -75,7 +76,8 @@ | ||
16 | fds->clear(); | ||
17 | |||
18 | size_t cmsg_space = CMSG_SPACE(sizeof(int) * max_fds); | ||
19 | - if (cmsg_space >= PAGE_SIZE) { | ||
20 | + size_t pagesize = static_cast<size_t>(sysconf(_SC_PAGE_SIZE)); | ||
21 | + if (cmsg_space >= pagesize) { | ||
22 | errno = ENOMEM; | ||
23 | return -1; | ||
24 | } | ||
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core-debian/fix-gcc-11-ftbfs.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core-debian/fix-gcc-11-ftbfs.patch new file mode 100644 index 000000000..8a21054ba --- /dev/null +++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core-debian/fix-gcc-11-ftbfs.patch | |||
@@ -0,0 +1,22 @@ | |||
1 | Index: android-platform-system-core/libunwindstack/include/unwindstack/DwarfMemory.h | ||
2 | =================================================================== | ||
3 | --- android-platform-system-core.orig/libunwindstack/include/unwindstack/DwarfMemory.h | ||
4 | +++ android-platform-system-core/libunwindstack/include/unwindstack/DwarfMemory.h | ||
5 | @@ -29,7 +29,7 @@ class DwarfMemory { | ||
6 | DwarfMemory(Memory* memory) : memory_(memory) {} | ||
7 | virtual ~DwarfMemory() = default; | ||
8 | |||
9 | - bool ReadBytes(void* dst, size_t num_bytes); | ||
10 | + bool ReadBytes(void* dst, std::size_t num_bytes); | ||
11 | |||
12 | template <typename SignedType> | ||
13 | bool ReadSigned(uint64_t* value); | ||
14 | @@ -39,7 +39,7 @@ class DwarfMemory { | ||
15 | bool ReadSLEB128(int64_t* value); | ||
16 | |||
17 | template <typename AddressType> | ||
18 | - size_t GetEncodedSize(uint8_t encoding); | ||
19 | + std::size_t GetEncodedSize(uint8_t encoding); | ||
20 | |||
21 | bool AdjustEncodedValue(uint8_t encoding, uint64_t* value); | ||
22 | |||
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core-debian/fix-gettid-exception-declaration.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core-debian/fix-gettid-exception-declaration.patch new file mode 100644 index 000000000..3622d7ebb --- /dev/null +++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core-debian/fix-gettid-exception-declaration.patch | |||
@@ -0,0 +1,22 @@ | |||
1 | --- a/libcutils/include/cutils/threads.h | ||
2 | +++ b/libcutils/include/cutils/threads.h | ||
3 | @@ -33,7 +33,7 @@ | ||
4 | // Deprecated: use android::base::GetThreadId instead, which doesn't truncate on Mac/Windows. | ||
5 | // | ||
6 | |||
7 | -extern pid_t gettid(); | ||
8 | +extern pid_t gettid(void) __THROW; | ||
9 | |||
10 | // | ||
11 | // Deprecated: use `_Thread_local` in C or `thread_local` in C++. | ||
12 | --- a/libcutils/threads.cpp | ||
13 | +++ b/libcutils/threads.cpp | ||
14 | @@ -33,7 +33,7 @@ | ||
15 | |||
16 | // No definition needed for Android because we'll just pick up bionic's copy. | ||
17 | #ifndef __ANDROID__ | ||
18 | -pid_t gettid() { | ||
19 | +pid_t gettid(void) __THROW { | ||
20 | #if defined(__APPLE__) | ||
21 | uint64_t tid; | ||
22 | pthread_threadid_np(NULL, &tid); | ||
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core-debian/fix-gnu-hurd.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core-debian/fix-gnu-hurd.patch new file mode 100644 index 000000000..6c2102218 --- /dev/null +++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core-debian/fix-gnu-hurd.patch | |||
@@ -0,0 +1,150 @@ | |||
1 | From: Roger Shimizu <rosh@debian.org> | ||
2 | Date: Sun, 10 Jan 2021 19:03:17 +0900 | ||
3 | Subject: Fix GNU/Hurd | ||
4 | |||
5 | Reference: | ||
6 | - https://www.gnu.org/software/hurd/hurd/porting/guidelines.html | ||
7 | |||
8 | Closes: #915762 | ||
9 | --- | ||
10 | base/cmsg.cpp | 2 ++ | ||
11 | base/threads.cpp | 2 +- | ||
12 | libcutils/ashmem-host.cpp | 20 +++++++++++++++++--- | ||
13 | libcutils/canned_fs_config.cpp | 2 +- | ||
14 | libcutils/fs.cpp | 20 ++++++++++++++++---- | ||
15 | 5 files changed, 37 insertions(+), 9 deletions(-) | ||
16 | |||
17 | diff --git a/base/cmsg.cpp b/base/cmsg.cpp | ||
18 | index ae5bb16..e5ec321 100644 | ||
19 | --- a/base/cmsg.cpp | ||
20 | +++ b/base/cmsg.cpp | ||
21 | @@ -20,7 +20,9 @@ | ||
22 | #include <fcntl.h> | ||
23 | #include <stdlib.h> | ||
24 | #include <sys/socket.h> | ||
25 | +#ifndef __GNU__ | ||
26 | #include <sys/user.h> | ||
27 | +#endif | ||
28 | |||
29 | #include <memory> | ||
30 | |||
31 | diff --git a/base/threads.cpp b/base/threads.cpp | ||
32 | index 48f6197..19cc293 100644 | ||
33 | --- a/base/threads.cpp | ||
34 | +++ b/base/threads.cpp | ||
35 | @@ -47,7 +47,7 @@ uint64_t GetThreadId() { | ||
36 | } // namespace base | ||
37 | } // namespace android | ||
38 | |||
39 | -#if defined(__GLIBC__) | ||
40 | +#if defined(__GLIBC__) && !defined(__GNU__) | ||
41 | int tgkill(int tgid, int tid, int sig) { | ||
42 | return syscall(__NR_tgkill, tgid, tid, sig); | ||
43 | } | ||
44 | diff --git a/libcutils/ashmem-host.cpp b/libcutils/ashmem-host.cpp | ||
45 | index 32446d4..83dd622 100644 | ||
46 | --- a/libcutils/ashmem-host.cpp | ||
47 | +++ b/libcutils/ashmem-host.cpp | ||
48 | @@ -31,16 +31,30 @@ | ||
49 | #include <sys/types.h> | ||
50 | #include <time.h> | ||
51 | #include <unistd.h> | ||
52 | +#include <stdint.h> | ||
53 | |||
54 | #include <utils/Compat.h> | ||
55 | |||
56 | int ashmem_create_region(const char* /*ignored*/, size_t size) { | ||
57 | - char pattern[PATH_MAX]; | ||
58 | - snprintf(pattern, sizeof(pattern), "/tmp/android-ashmem-%d-XXXXXXXXX", getpid()); | ||
59 | + char *pattern; | ||
60 | + size_t pattern_size = 128; | ||
61 | + while(1) { | ||
62 | + pattern = (char*) malloc(pattern_size); | ||
63 | + if(snprintf(pattern, strlen(pattern), "/tmp/android-ashmem-%d-XXXXXXXXX", getpid()) < pattern_size) | ||
64 | + break; | ||
65 | + free(pattern); | ||
66 | + pattern_size *= 2; | ||
67 | + if(pattern_size >= INT_LEAST16_MAX) | ||
68 | + return -1; | ||
69 | + } | ||
70 | int fd = mkstemp(pattern); | ||
71 | - if (fd == -1) return -1; | ||
72 | + if (fd == -1) { | ||
73 | + free(pattern); | ||
74 | + return -1; | ||
75 | + } | ||
76 | |||
77 | unlink(pattern); | ||
78 | + free(pattern); | ||
79 | |||
80 | if (TEMP_FAILURE_RETRY(ftruncate(fd, size)) == -1) { | ||
81 | close(fd); | ||
82 | diff --git a/libcutils/canned_fs_config.cpp b/libcutils/canned_fs_config.cpp | ||
83 | index 2772ef0..1e41f37 100644 | ||
84 | --- a/libcutils/canned_fs_config.cpp | ||
85 | +++ b/libcutils/canned_fs_config.cpp | ||
86 | @@ -42,7 +42,7 @@ static int path_compare(const void* a, const void* b) { | ||
87 | } | ||
88 | |||
89 | int load_canned_fs_config(const char* fn) { | ||
90 | - char buf[PATH_MAX + 200]; | ||
91 | + char buf[1024]; | ||
92 | FILE* f; | ||
93 | |||
94 | f = fopen(fn, "r"); | ||
95 | diff --git a/libcutils/fs.cpp b/libcutils/fs.cpp | ||
96 | index ef85acc..2884835 100644 | ||
97 | --- a/libcutils/fs.cpp | ||
98 | +++ b/libcutils/fs.cpp | ||
99 | @@ -33,6 +33,7 @@ | ||
100 | #include <sys/stat.h> | ||
101 | #include <sys/types.h> | ||
102 | #include <unistd.h> | ||
103 | +#include <stdint.h> | ||
104 | |||
105 | #include <log/log.h> | ||
106 | |||
107 | @@ -150,15 +151,24 @@ fail: | ||
108 | } | ||
109 | |||
110 | int fs_write_atomic_int(const char* path, int value) { | ||
111 | - char temp[PATH_MAX]; | ||
112 | - if (snprintf(temp, PATH_MAX, "%s.XXXXXX", path) >= PATH_MAX) { | ||
113 | - ALOGE("Path too long"); | ||
114 | - return -1; | ||
115 | + char *temp; | ||
116 | + size_t temp_size = 128; | ||
117 | + while(1) { | ||
118 | + temp = (char*) malloc(temp_size); | ||
119 | + if(snprintf(temp, strlen(temp), "%s.XXXXXX", path) < temp_size) | ||
120 | + break; | ||
121 | + free(temp); | ||
122 | + temp_size *= 2; | ||
123 | + if(temp_size >= INT_LEAST16_MAX) { | ||
124 | + ALOGE("Path too long"); | ||
125 | + return -1; | ||
126 | + } | ||
127 | } | ||
128 | |||
129 | int fd = TEMP_FAILURE_RETRY(mkstemp(temp)); | ||
130 | if (fd == -1) { | ||
131 | ALOGE("Failed to open %s: %s", temp, strerror(errno)); | ||
132 | + free(temp); | ||
133 | return -1; | ||
134 | } | ||
135 | |||
136 | @@ -182,12 +192,14 @@ int fs_write_atomic_int(const char* path, int value) { | ||
137 | goto fail_closed; | ||
138 | } | ||
139 | |||
140 | + free(temp); | ||
141 | return 0; | ||
142 | |||
143 | fail: | ||
144 | close(fd); | ||
145 | fail_closed: | ||
146 | unlink(temp); | ||
147 | + free(temp); | ||
148 | return -1; | ||
149 | } | ||
150 | |||
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core-debian/hard-code-build-number.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core-debian/hard-code-build-number.patch new file mode 100644 index 000000000..ccc7655e7 --- /dev/null +++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core-debian/hard-code-build-number.patch | |||
@@ -0,0 +1,43 @@ | |||
1 | Description: just hard code rather than deal with circular deps | ||
2 | Forwarded: not-needed | ||
3 | --- a/adb/adb.cpp | ||
4 | +++ b/adb/adb.cpp | ||
5 | @@ -44,8 +44,6 @@ | ||
6 | #include <android-base/parsenetaddress.h> | ||
7 | #include <android-base/stringprintf.h> | ||
8 | #include <android-base/strings.h> | ||
9 | -#include <build/version.h> | ||
10 | -#include <platform_tools_version.h> | ||
11 | |||
12 | #include "adb_auth.h" | ||
13 | #include "adb_io.h" | ||
14 | @@ -69,7 +67,7 @@ | ||
15 | "Version %s-%s\n" | ||
16 | "Installed as %s\n", | ||
17 | ADB_VERSION_MAJOR, ADB_VERSION_MINOR, ADB_SERVER_VERSION, | ||
18 | - PLATFORM_TOOLS_VERSION, android::build::GetBuildNumber().c_str(), | ||
19 | + PLATFORM_TOOLS_VERSION, "debian", | ||
20 | android::base::GetExecutablePath().c_str()); | ||
21 | } | ||
22 | |||
23 | --- a/fastboot/fastboot.cpp | ||
24 | +++ b/fastboot/fastboot.cpp | ||
25 | @@ -58,9 +58,7 @@ | ||
26 | #include <android-base/stringprintf.h> | ||
27 | #include <android-base/strings.h> | ||
28 | #include <android-base/unique_fd.h> | ||
29 | -#include <build/version.h> | ||
30 | #include <liblp/liblp.h> | ||
31 | -#include <platform_tools_version.h> | ||
32 | #include <sparse/sparse.h> | ||
33 | #include <ziparchive/zip_archive.h> | ||
34 | |||
35 | @@ -1680,7 +1678,7 @@ | ||
36 | setvbuf(stdout, nullptr, _IONBF, 0); | ||
37 | setvbuf(stderr, nullptr, _IONBF, 0); | ||
38 | } else if (name == "version") { | ||
39 | - fprintf(stdout, "fastboot version %s-%s\n", PLATFORM_TOOLS_VERSION, android::build::GetBuildNumber().c_str()); | ||
40 | + fprintf(stdout, "fastboot version %s-%s\n", PLATFORM_TOOLS_VERSION, "debian"); | ||
41 | fprintf(stdout, "Installed as %s\n", android::base::GetExecutablePath().c_str()); | ||
42 | return 0; | ||
43 | #if !defined(_WIN32) | ||
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core-debian/libusb-header-path.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core-debian/libusb-header-path.patch new file mode 100644 index 000000000..d507eab85 --- /dev/null +++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core-debian/libusb-header-path.patch | |||
@@ -0,0 +1,16 @@ | |||
1 | Description: libusb.h comes from different location | ||
2 | Author: Umang Parmar <umangjparmar@gmail.com> | ||
3 | Forwarded: not-needed | ||
4 | Last-Update: 2018-05-26 | ||
5 | |||
6 | --- a/adb/client/usb_libusb.cpp | ||
7 | +++ b/adb/client/usb_libusb.cpp | ||
8 | @@ -30,7 +30,7 @@ | ||
9 | #include <thread> | ||
10 | #include <unordered_map> | ||
11 | |||
12 | -#include <libusb/libusb.h> | ||
13 | +#include <libusb-1.0/libusb.h> | ||
14 | |||
15 | #include <android-base/file.h> | ||
16 | #include <android-base/logging.h> | ||
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core-debian/move-log-file-to-proper-dir.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core-debian/move-log-file-to-proper-dir.patch new file mode 100644 index 000000000..e71af8637 --- /dev/null +++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core-debian/move-log-file-to-proper-dir.patch | |||
@@ -0,0 +1,18 @@ | |||
1 | Description: Update log file directory. | ||
2 | Author: Umang Parmar <umangjparmar@gmail.com> | ||
3 | Last Updated: 2018-05-17 | ||
4 | |||
5 | --- a/adb/adb_utils.cpp | ||
6 | +++ b/adb/adb_utils.cpp | ||
7 | @@ -339,6 +339,11 @@ | ||
8 | |||
9 | return temp_path_utf8 + log_name; | ||
10 | #else | ||
11 | + std::string log_dir = android::base::StringPrintf("/run/user/%u/adb.log", getuid()); | ||
12 | + struct stat st = {0}; | ||
13 | + if (stat(log_dir.c_str(), &st) == 0) { | ||
14 | + return log_dir; | ||
15 | + } | ||
16 | const char* tmp_dir = getenv("TMPDIR"); | ||
17 | if (tmp_dir == nullptr) tmp_dir = "/tmp"; | ||
18 | return android::base::StringPrintf("%s/adb.%u.log", tmp_dir, getuid()); | ||
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core-debian/simg_dump-python3.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core-debian/simg_dump-python3.patch new file mode 100644 index 000000000..947b5269b --- /dev/null +++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core-debian/simg_dump-python3.patch | |||
@@ -0,0 +1,62 @@ | |||
1 | Description: Port simg_dump to Python 3. | ||
2 | Author: Antonio Russo <antonio.e.russo@gmail.com> | ||
3 | Forwarded: no | ||
4 | Last-Update: 2019-01-05 | ||
5 | Origin: https://bugs.debian.org/945646 | ||
6 | |||
7 | --- | ||
8 | Index: android-platform-system-core/libsparse/simg_dump.py | ||
9 | =================================================================== | ||
10 | --- android-platform-system-core.orig/libsparse/simg_dump.py | ||
11 | +++ android-platform-system-core/libsparse/simg_dump.py | ||
12 | @@ -1,4 +1,4 @@ | ||
13 | -#! /usr/bin/env python | ||
14 | +#! /usr/bin/env python3 | ||
15 | |||
16 | # Copyright (C) 2012 The Android Open Source Project | ||
17 | # | ||
18 | @@ -14,7 +14,7 @@ | ||
19 | # See the License for the specific language governing permissions and | ||
20 | # limitations under the License. | ||
21 | |||
22 | -from __future__ import print_function | ||
23 | + | ||
24 | import csv | ||
25 | import getopt | ||
26 | import hashlib | ||
27 | @@ -47,7 +47,7 @@ def main(): | ||
28 | opts, args = getopt.getopt(sys.argv[1:], | ||
29 | "vsc:", | ||
30 | ["verbose", "showhash", "csvfile"]) | ||
31 | - except getopt.GetoptError, e: | ||
32 | + except getopt.GetoptError as e: | ||
33 | print(e) | ||
34 | usage(me) | ||
35 | for o, a in opts: | ||
36 | @@ -66,7 +66,7 @@ def main(): | ||
37 | usage(me) | ||
38 | |||
39 | if csvfilename: | ||
40 | - csvfile = open(csvfilename, "wb") | ||
41 | + csvfile = open(csvfilename, "w", newline='') | ||
42 | csvwriter = csv.writer(csvfile) | ||
43 | |||
44 | output = verbose or csvfilename or showhash | ||
45 | @@ -121,7 +121,7 @@ def main(): | ||
46 | "output offset", "output blocks", "type", "hash"]) | ||
47 | |||
48 | offset = 0 | ||
49 | - for i in xrange(1, total_chunks + 1): | ||
50 | + for i in range(1, total_chunks + 1): | ||
51 | header_bin = FH.read(12) | ||
52 | header = struct.unpack("<2H2I", header_bin) | ||
53 | chunk_type = header[0] | ||
54 | @@ -160,7 +160,7 @@ def main(): | ||
55 | if showhash: | ||
56 | h = hashlib.sha1() | ||
57 | data = fill_bin * (blk_sz / 4); | ||
58 | - for block in xrange(chunk_sz): | ||
59 | + for block in range(chunk_sz): | ||
60 | h.update(data) | ||
61 | curhash = h.hexdigest() | ||
62 | elif chunk_type == 0xCAC3: | ||
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core-debian/stdatomic.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core-debian/stdatomic.patch new file mode 100644 index 000000000..8de0035a5 --- /dev/null +++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core-debian/stdatomic.patch | |||
@@ -0,0 +1,74 @@ | |||
1 | Description: Fix incompatibility between <stdatomic.h> and <atomic> | ||
2 | This 2 headers combined will cause errors for both GCC and Clang. This patch | ||
3 | makes sure only one of them is present at any time. | ||
4 | Bug: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60932 | ||
5 | Bug: https://reviews.llvm.org/D45470 | ||
6 | --- a/libcutils/include/cutils/trace.h | ||
7 | +++ b/libcutils/include/cutils/trace.h | ||
8 | @@ -18,7 +18,14 @@ | ||
9 | #define _LIBS_CUTILS_TRACE_H | ||
10 | |||
11 | #include <inttypes.h> | ||
12 | +#ifdef __cplusplus | ||
13 | +#include <atomic> | ||
14 | +using std::atomic_bool; | ||
15 | +using std::atomic_load_explicit; | ||
16 | +using std::memory_order_acquire; | ||
17 | +#else | ||
18 | #include <stdatomic.h> | ||
19 | +#endif | ||
20 | #include <stdbool.h> | ||
21 | #include <stdint.h> | ||
22 | #include <stdio.h> | ||
23 | --- a/libcutils/include/cutils/atomic.h | ||
24 | +++ b/libcutils/include/cutils/atomic.h | ||
25 | @@ -19,7 +19,23 @@ | ||
26 | |||
27 | #include <stdint.h> | ||
28 | #include <sys/types.h> | ||
29 | +#ifdef __cplusplus | ||
30 | +#include <atomic> | ||
31 | +using std::atomic_compare_exchange_strong_explicit; | ||
32 | +using std::atomic_fetch_add_explicit; | ||
33 | +using std::atomic_fetch_or_explicit; | ||
34 | +using std::atomic_fetch_sub_explicit; | ||
35 | +using std::atomic_int_least32_t; | ||
36 | +using std::atomic_load_explicit; | ||
37 | +using std::atomic_store_explicit; | ||
38 | +using std::atomic_thread_fence; | ||
39 | +using std::memory_order::memory_order_acquire; | ||
40 | +using std::memory_order::memory_order_relaxed; | ||
41 | +using std::memory_order::memory_order_release; | ||
42 | +using std::memory_order::memory_order_seq_cst; | ||
43 | +#else | ||
44 | #include <stdatomic.h> | ||
45 | +#endif | ||
46 | |||
47 | #ifndef ANDROID_ATOMIC_INLINE | ||
48 | #define ANDROID_ATOMIC_INLINE static inline | ||
49 | --- a/liblog/logger.h | ||
50 | +++ b/liblog/logger.h | ||
51 | @@ -16,7 +16,13 @@ | ||
52 | |||
53 | #pragma once | ||
54 | |||
55 | +#ifdef __cplusplus | ||
56 | +#include <atomic> | ||
57 | +using std::atomic_int; | ||
58 | +using std::atomic_uintptr_t; | ||
59 | +#else | ||
60 | #include <stdatomic.h> | ||
61 | +#endif | ||
62 | #include <stdbool.h> | ||
63 | |||
64 | #include <cutils/list.h> | ||
65 | --- a/liblog/logger_write.cpp | ||
66 | +++ b/liblog/logger_write.cpp | ||
67 | @@ -15,7 +15,6 @@ | ||
68 | */ | ||
69 | |||
70 | #include <errno.h> | ||
71 | -#include <stdatomic.h> | ||
72 | #include <stdlib.h> | ||
73 | #include <string.h> | ||
74 | #include <sys/time.h> | ||
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core-debian/throw-exception-on-unknown-os.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core-debian/throw-exception-on-unknown-os.patch new file mode 100644 index 000000000..5e239b7dc --- /dev/null +++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core-debian/throw-exception-on-unknown-os.patch | |||
@@ -0,0 +1,15 @@ | |||
1 | Description: Turn #error into exceptions | ||
2 | So the library can be built on non-Linux platforms too, although can't | ||
3 | guarauntee its functionality regarding that piece of code. | ||
4 | --- a/base/file.cpp | ||
5 | +++ b/base/file.cpp | ||
6 | @@ -422,7 +422,8 @@ | ||
7 | path[PATH_MAX - 1] = 0; | ||
8 | return path; | ||
9 | #else | ||
10 | -#error unknown OS | ||
11 | +#include <stdexcept> | ||
12 | + throw std::runtime_error(std::string("Unknown OS!")); | ||
13 | #endif | ||
14 | } | ||
15 | |||
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core-debian/use-Python-3-for-mkbootimg.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core-debian/use-Python-3-for-mkbootimg.patch new file mode 100644 index 000000000..a14261a2e --- /dev/null +++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core-debian/use-Python-3-for-mkbootimg.patch | |||
@@ -0,0 +1,18 @@ | |||
1 | Description: Use Python 3 for `mkbootimg` | ||
2 | Bug: https://android.googlesource.com/platform/system/core/+/c434cf82d526f07cd3dcebf53582eeddf12b0a74 | ||
3 | --- a/mkbootimg/mkbootimg.py | ||
4 | +++ b/mkbootimg/mkbootimg.py | ||
5 | @@ -1,4 +1,4 @@ | ||
6 | -#!/usr/bin/env python | ||
7 | +#!/usr/bin/python3 | ||
8 | # Copyright 2015, The Android Open Source Project | ||
9 | # | ||
10 | # Licensed under the Apache License, Version 2.0 (the "License"); | ||
11 | --- a/mkbootimg/unpack_bootimg.py | ||
12 | +++ b/mkbootimg/unpack_bootimg.py | ||
13 | @@ -1,4 +1,4 @@ | ||
14 | -#!/usr/bin/env python | ||
15 | +#!/usr/bin/python3 | ||
16 | # Copyright 2018, The Android Open Source Project | ||
17 | # | ||
18 | # Licensed under the Apache License, Version 2.0 (the "License"); | ||
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core-debian/workaround-error-expected-primary-expression-before-.-token.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core-debian/workaround-error-expected-primary-expression-before-.-token.patch new file mode 100644 index 000000000..5e153b040 --- /dev/null +++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core-debian/workaround-error-expected-primary-expression-before-.-token.patch | |||
@@ -0,0 +1,31 @@ | |||
1 | Description: code uses C99/C++20 constructs that g++ does not support | ||
2 | $ g++ liblog/fake_writer.cpp -o liblog/fake_writer.o -c -std=c++17 -fPIC -Iliblog/include -Iinclude -DLIBLOG_LOG_TAG=1006 -DFAKE_LOG_DEVICE=1 -DSNET_EVENT_LOG_TAG=1397638484 | ||
3 | liblog/fake_writer.cpp:36:5: error: expected primary-expression before ‘.’ token | ||
4 | .context.priv = &logFds, | ||
5 | ^ | ||
6 | This is an ugly hack. The actual fix is probably to compile using | ||
7 | clang. Otherwise, these .context.priv elements shuld be initialized | ||
8 | in a different way. | ||
9 | |||
10 | Forwarded: not-needed | ||
11 | |||
12 | --- a/liblog/fake_writer.cpp | ||
13 | +++ b/liblog/fake_writer.cpp | ||
14 | @@ -33,7 +33,6 @@ | ||
15 | |||
16 | struct android_log_transport_write fakeLoggerWrite = { | ||
17 | .node = {&fakeLoggerWrite.node, &fakeLoggerWrite.node}, | ||
18 | - .context.priv = &logFds, | ||
19 | .name = "fake", | ||
20 | .available = NULL, | ||
21 | .open = fakeOpen, | ||
22 | --- a/liblog/stderr_write.cpp | ||
23 | +++ b/liblog/stderr_write.cpp | ||
24 | @@ -56,7 +56,6 @@ | ||
25 | |||
26 | struct android_log_transport_write stderrLoggerWrite = { | ||
27 | .node = {&stderrLoggerWrite.node, &stderrLoggerWrite.node}, | ||
28 | - .context.priv = NULL, | ||
29 | .name = "stderr", | ||
30 | .available = stderrAvailable, | ||
31 | .open = stderrOpen, | ||
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core/0001-patching-adb.mk-to-build-in-yocto-environment.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core/0001-patching-adb.mk-to-build-in-yocto-environment.patch new file mode 100644 index 000000000..d2ba52557 --- /dev/null +++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core/0001-patching-adb.mk-to-build-in-yocto-environment.patch | |||
@@ -0,0 +1,62 @@ | |||
1 | From d133fc2c71fb6b0358af453b03bcb6d1874e902a Mon Sep 17 00:00:00 2001 | ||
2 | From: Etienne Cordonnier <ecordonnier@snap.com> | ||
3 | Date: Fri, 3 Mar 2023 12:25:40 +0100 | ||
4 | Subject: [PATCH 01/15] patching adb.mk to build in yocto environment. | ||
5 | |||
6 | Changes include: | ||
7 | Introduced an output folder which will keep all the outputs from the | ||
8 | android-tools. | ||
9 | |||
10 | Adding an include file that is setting the common flags. | ||
11 | Changed the cppflag to include the headers from other components | ||
12 | of android-tools | ||
13 | |||
14 | Modified LDflags so that the libraries that are coming from other android-tools | ||
15 | are searched in the output folder. | ||
16 | |||
17 | Modified the build rule so that it outputs the binary to the OUT_DIR | ||
18 | |||
19 | Signed-off-by: Nisha Parrakat <Nisha.Parrakat@kpit.com> | ||
20 | |||
21 | Upstream-Status: Pending | ||
22 | --- | ||
23 | debian/adb.mk | 12 +++++++----- | ||
24 | 1 file changed, 7 insertions(+), 5 deletions(-) | ||
25 | |||
26 | diff --git a/debian/adb.mk b/debian/adb.mk | ||
27 | index 8dbacf9a..97c9d6ca 100644 | ||
28 | --- a/debian/adb.mk | ||
29 | +++ b/debian/adb.mk | ||
30 | @@ -1,3 +1,4 @@ | ||
31 | +include ../../rules_yocto.mk | ||
32 | NAME = adb | ||
33 | |||
34 | SOURCES = client/adb_client.cpp \ | ||
35 | @@ -12,10 +13,10 @@ SOURCES = client/adb_client.cpp \ | ||
36 | |||
37 | SOURCES := $(foreach source, $(SOURCES), adb/$(source)) | ||
38 | CXXFLAGS += -std=gnu++2a | ||
39 | -CPPFLAGS += -Iinclude -Iadb -Ibase/include \ | ||
40 | +CPPFLAGS += -Iinclude -Iadb -Ibase/include -I$(OUT_DIR)/usr/include/ \ | ||
41 | -DADB_VERSION='"$(DEB_VERSION)"' -DADB_HOST=1 -D_GNU_SOURCE | ||
42 | -LDFLAGS += -Wl,-rpath=/usr/lib/$(DEB_HOST_MULTIARCH)/android -Wl,-rpath-link=. \ | ||
43 | - -lpthread -L. -ladb -lbase | ||
44 | +LDFLAGS += -Wl,-rpath=/usr/lib/$(DEB_HOST_MULTIARCH)/android -Wl,-rpath-link=$(OUT_DIR)/usr/lib/$(DEB_HOST_MULTIARCH)/android/ \ | ||
45 | + -lpthread -L$(OUT_DIR)/usr/lib/$(DEB_HOST_MULTIARCH)/android/ -ladb -lbase | ||
46 | |||
47 | # -latomic should be the last library specified | ||
48 | # https://github.com/android/ndk/issues/589 | ||
49 | @@ -24,7 +25,8 @@ ifneq ($(filter armel mipsel,$(DEB_HOST_ARCH)),) | ||
50 | endif | ||
51 | |||
52 | build: $(SOURCES) | ||
53 | - $(CXX) $^ -o adb/$(NAME) $(CXXFLAGS) $(CPPFLAGS) $(LDFLAGS) | ||
54 | + mkdir --parents $(OUT_DIR)/usr/lib/$(DEB_HOST_MULTIARCH)/android/adb | ||
55 | + $(CXX) $^ -o $(OUT_DIR)/usr/lib/$(DEB_HOST_MULTIARCH)/android/adb/$(NAME) $(CXXFLAGS) $(CPPFLAGS) $(LDFLAGS) | ||
56 | |||
57 | clean: | ||
58 | - $(RM) adb/$(NAME) | ||
59 | + $(RM) $(OUT_DIR)/usr/lib/$(DEB_HOST_MULTIARCH)/android/adb/$(NAME) | ||
60 | -- | ||
61 | 2.36.1.vfs.0.0 | ||
62 | |||
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core/0002-libadb.mk-modifications-to-make-it-build-in-yocto-en.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core/0002-libadb.mk-modifications-to-make-it-build-in-yocto-en.patch new file mode 100644 index 000000000..1281caa49 --- /dev/null +++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core/0002-libadb.mk-modifications-to-make-it-build-in-yocto-en.patch | |||
@@ -0,0 +1,56 @@ | |||
1 | From f802e7685cfbdd66d74da2975b3a1c6d77f1a2de Mon Sep 17 00:00:00 2001 | ||
2 | From: Etienne Cordonnier <ecordonnier@snap.com> | ||
3 | Date: Fri, 3 Mar 2023 12:28:10 +0100 | ||
4 | Subject: [PATCH 02/15] libadb.mk: modifications to make it build in yocto | ||
5 | environment | ||
6 | |||
7 | Adding an include file that is setting the common flags. | ||
8 | Changed the cppflag to include the headers from other components | ||
9 | of android-tools | ||
10 | |||
11 | Modified LDflags so that the libraries that are coming from other android-tools | ||
12 | are searched in the output folder. | ||
13 | |||
14 | Modified the build rule so that it outputs the binary to the OUT_DIR | ||
15 | |||
16 | Signed-off-by: Nisha Parrakat <Nisha.Parrakat@kpit.com> | ||
17 | --- | ||
18 | debian/libadb.mk | 11 ++++++----- | ||
19 | 1 file changed, 6 insertions(+), 5 deletions(-) | ||
20 | |||
21 | diff --git a/debian/libadb.mk b/debian/libadb.mk | ||
22 | index ae240c98..db5da353 100644 | ||
23 | --- a/debian/libadb.mk | ||
24 | +++ b/debian/libadb.mk | ||
25 | @@ -1,3 +1,4 @@ | ||
26 | +include ../../rules_yocto.mk | ||
27 | NAME := libadb | ||
28 | |||
29 | LIBADB_SRC_FILES := \ | ||
30 | @@ -43,18 +44,18 @@ CPPFLAGS += \ | ||
31 | -Ibase/include \ | ||
32 | -Idiagnose_usb/include \ | ||
33 | -Ilibcrypto_utils/include \ | ||
34 | - -Iinclude \ | ||
35 | + -Iinclude -I$(OUT_DIR)/usr/include \ | ||
36 | -DPLATFORM_TOOLS_VERSION='"$(PLATFORM_TOOLS_VERSION)"' \ | ||
37 | -DADB_HOST=1 -DADB_VERSION='"$(DEB_VERSION)"' | ||
38 | |||
39 | LDFLAGS += -shared -Wl,-soname,$(NAME).so.0 \ | ||
40 | -Wl,-rpath=/usr/lib/$(DEB_HOST_MULTIARCH)/android \ | ||
41 | - -L/usr/lib/$(DEB_HOST_MULTIARCH)/android -lcrypto \ | ||
42 | - -lpthread -L. -lbase -lcutils -lcrypto_utils -lusb-1.0 | ||
43 | + -L$(OUT_DIR)/usr/lib/$(DEB_HOST_MULTIARCH)/android -lcrypto \ | ||
44 | + -lpthread -lbase -lcutils -lcrypto_utils -lusb-1.0 | ||
45 | |||
46 | $(NAME).so: $(SOURCES) | ||
47 | - $(CXX) $^ -o $(NAME).so.0 $(CXXFLAGS) $(CPPFLAGS) $(LDFLAGS) | ||
48 | - ln -s $(NAME).so.0 $(NAME).so | ||
49 | + $(CXX) $^ -o $(OUT_DIR)/usr/lib/$(DEB_HOST_MULTIARCH)/android/$(NAME).so.0 $(CXXFLAGS) $(CPPFLAGS) $(LDFLAGS) | ||
50 | + ln -sf $(NAME).so.0 $(OUT_DIR)/usr/lib/$(DEB_HOST_MULTIARCH)/android/$(NAME).so | ||
51 | |||
52 | transport_mdns_unsupported.cpp: | ||
53 | echo 'void init_mdns_transport_discovery(void) {}' > transport_mdns_unsupported.cpp | ||
54 | -- | ||
55 | 2.36.1.vfs.0.0 | ||
56 | |||
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core/0003-socket.h-removing-dependency-of-gtest.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core/0003-socket.h-removing-dependency-of-gtest.patch new file mode 100644 index 000000000..56c25eae3 --- /dev/null +++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core/0003-socket.h-removing-dependency-of-gtest.patch | |||
@@ -0,0 +1,61 @@ | |||
1 | From 4fdd086c2e9c85bc5a367a861696191e190cebc9 Mon Sep 17 00:00:00 2001 | ||
2 | From: Nisha Parrakat <Nisha.Parrakat@kpit.com> | ||
3 | Date: Thu, 2 Mar 2023 17:20:48 +0100 | ||
4 | Subject: [PATCH 03/15] socket.h: removing dependency of gtest | ||
5 | |||
6 | Removed the dependency of gtest on the build of fastboot binary. | ||
7 | Fixes below error | ||
8 | |||
9 | In file included from fastboot/fastboot.cpp:70: | ||
10 | | In file included from fastboot/tcp.h:36: | ||
11 | | fastboot/socket.h:43:10: fatal error: 'gtest/gtest_prod.h' file not found | ||
12 | | #include <gtest/gtest_prod.h> | ||
13 | | ^~~~~~~~~~~~~~~~~~~~ | ||
14 | | 1 error generated. | ||
15 | | In file included from fastboot/socket.cpp:29: | ||
16 | | fastboot/socket.h:43:10: fatal error: 'gtest/gtest_prod.h' file not found | ||
17 | | #include <gtest/gtest_prod.h> | ||
18 | | ^~~~~~~~~~~~~~~~~~~~ | ||
19 | | 1 error generated. | ||
20 | | In file included from fastboot/tcp.cpp:29: | ||
21 | | In file included from fastboot/tcp.h:36: | ||
22 | | fastboot/socket.h:43:10: fatal error: 'gtest/gtest_prod.h' file not found | ||
23 | | #include <gtest/gtest_prod.h> | ||
24 | | ^~~~~~~~~~~~~~~~~~~~ | ||
25 | | 1 error generated. | ||
26 | | In file included from fastboot/udp.cpp:31: | ||
27 | | In file included from fastboot/udp.h:34: | ||
28 | | fastboot/socket.h:43:10: fatal error: 'gtest/gtest_prod.h' file not found | ||
29 | | #include <gtest/gtest_prod.h> | ||
30 | | ^~~~~~~~~~~~~~~~~~~~ | ||
31 | | 1 error generated. | ||
32 | |||
33 | Signed-off-by: Nisha Parrakat <Nisha.Parrakat@kpit.com> | ||
34 | --- | ||
35 | fastboot/socket.h | 3 --- | ||
36 | 1 file changed, 3 deletions(-) | ||
37 | |||
38 | diff --git a/fastboot/socket.h b/fastboot/socket.h | ||
39 | index e791f2c8..671fc115 100644 | ||
40 | --- a/fastboot/socket.h | ||
41 | +++ b/fastboot/socket.h | ||
42 | @@ -40,7 +40,6 @@ | ||
43 | |||
44 | #include <android-base/macros.h> | ||
45 | #include <cutils/sockets.h> | ||
46 | -#include <gtest/gtest_prod.h> | ||
47 | |||
48 | // Socket interface to be implemented for each platform. | ||
49 | class Socket { | ||
50 | @@ -119,8 +118,6 @@ class Socket { | ||
51 | socket_send_buffers_function_ = &socket_send_buffers; | ||
52 | |||
53 | private: | ||
54 | - FRIEND_TEST(SocketTest, TestTcpSendBuffers); | ||
55 | - FRIEND_TEST(SocketTest, TestUdpSendBuffers); | ||
56 | |||
57 | DISALLOW_COPY_AND_ASSIGN(Socket); | ||
58 | }; | ||
59 | -- | ||
60 | 2.36.1.vfs.0.0 | ||
61 | |||
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core/0004-patching-fastboot.mk-to-build-in-yocto-environment.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core/0004-patching-fastboot.mk-to-build-in-yocto-environment.patch new file mode 100644 index 000000000..82ec560a6 --- /dev/null +++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core/0004-patching-fastboot.mk-to-build-in-yocto-environment.patch | |||
@@ -0,0 +1,63 @@ | |||
1 | From e826f68c68e05b0f5cc3b3c10d7d9e4deb135114 Mon Sep 17 00:00:00 2001 | ||
2 | From: Etienne Cordonnier <ecordonnier@snap.com> | ||
3 | Date: Fri, 3 Mar 2023 13:14:15 +0100 | ||
4 | Subject: [PATCH 04/15] patching fastboot.mk to build in yocto environment. | ||
5 | |||
6 | Changes include: | ||
7 | Introduced an output folder which will keep all the outputs from the | ||
8 | android-tools. | ||
9 | |||
10 | Adding an include file that is setting the common flags. | ||
11 | Changed the cppflag to include the headers from other components | ||
12 | of android-tools | ||
13 | |||
14 | Modified LDflags so that the libraries that are coming from other android-tools | ||
15 | are searched in the output folder. | ||
16 | |||
17 | Modified the build rule so that it outputs the binary to the OUT_DIR | ||
18 | |||
19 | Signed-off-by: Nisha Parrakat <Nisha.Parrakat@kpit.com> | ||
20 | |||
21 | Upstream-Status: Pending | ||
22 | --- | ||
23 | debian/fastboot.mk | 12 +++++++----- | ||
24 | 1 file changed, 7 insertions(+), 5 deletions(-) | ||
25 | |||
26 | diff --git a/debian/fastboot.mk b/debian/fastboot.mk | ||
27 | index d1aba626..e75fa87c 100644 | ||
28 | --- a/debian/fastboot.mk | ||
29 | +++ b/debian/fastboot.mk | ||
30 | @@ -1,3 +1,4 @@ | ||
31 | +include ../../rules_yocto.mk | ||
32 | NAME = fastboot | ||
33 | fastboot_SOURCES = \ | ||
34 | bootimg_utils.cpp \ | ||
35 | @@ -38,11 +39,11 @@ CPPFLAGS += \ | ||
36 | -Ifs_mgr/liblp/include \ | ||
37 | -I/usr/include/android/openssl \ | ||
38 | -Ilibsparse/include \ | ||
39 | - -Ilibziparchive/include | ||
40 | + -Ilibziparchive/include -I$(OUT_DIR)/usr/include/ | ||
41 | LDFLAGS += -Wl,-rpath=/usr/lib/$(DEB_HOST_MULTIARCH)/android \ | ||
42 | -fuse-ld=gold \ | ||
43 | - -Wl,-rpath-link=. \ | ||
44 | - -L. -lziparchive -lsparse -lbase -lcutils -ladb -lcrypto -lext4_utils \ | ||
45 | + -Wl,-rpath-link=$(OUT_DIR)/usr/lib/$(DEB_HOST_MULTIARCH)/android \ | ||
46 | + -L$(OUT_DIR)/usr/lib/$(DEB_HOST_MULTIARCH)/android -lziparchive -lsparse -lbase -lcutils -ladb -lcrypto -lext4_utils \ | ||
47 | -L/usr/lib/$(DEB_HOST_MULTIARCH)/android \ | ||
48 | -l7z \ | ||
49 | |||
50 | @@ -53,7 +54,8 @@ ifneq ($(filter armel mipsel,$(DEB_HOST_ARCH)),) | ||
51 | endif | ||
52 | |||
53 | build: $(SOURCES) | ||
54 | - $(CXX) $^ -o fastboot/$(NAME) $(CXXFLAGS) $(CPPFLAGS) $(LDFLAGS) | ||
55 | + mkdir --parents $(OUT_DIR)/usr/bin/fastboot | ||
56 | + $(CXX) $^ -o $(OUT_DIR)/usr/bin/fastboot/$(NAME) $(CXXFLAGS) $(CPPFLAGS) $(LDFLAGS) | ||
57 | |||
58 | clean: | ||
59 | - $(RM) fastboot/$(NAME) | ||
60 | + $(RM) $(OUT_DIR)/usr/bin/fastboot/$(NAME) | ||
61 | -- | ||
62 | 2.36.1.vfs.0.0 | ||
63 | |||
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core/0005-fastboot-don-t-use-sparse_file_import_auto-in-load_b.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core/0005-fastboot-don-t-use-sparse_file_import_auto-in-load_b.patch new file mode 100644 index 000000000..d465ad6bf --- /dev/null +++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core/0005-fastboot-don-t-use-sparse_file_import_auto-in-load_b.patch | |||
@@ -0,0 +1,54 @@ | |||
1 | From a4839f29e1286b0c53208a45b9c237d81021f829 Mon Sep 17 00:00:00 2001 | ||
2 | From: Etienne Cordonnier <ecordonnier@snap.com> | ||
3 | Date: Fri, 3 Mar 2023 13:15:47 +0100 | ||
4 | Subject: [PATCH 05/15] fastboot: don't use sparse_file_import_auto() in | ||
5 | load_buf_fd() | ||
6 | |||
7 | upstream commit taken as below Original Issue link https://android-review.googlesource.com/c/platform/system/core/+/1123485 | ||
8 | |||
9 | Commit taken below: | ||
10 | |||
11 | fastboot: don't use sparse_file_import_auto() in load_buf_fd() | ||
12 | |||
13 | load_buf_fd() attempts to find the size of the file that it is about | ||
14 | to load by first calling sparse_file_import_auto() then using | ||
15 | sparse_file_len() upon success or falling back to the file size on the | ||
16 | filesystem on failure. | ||
17 | |||
18 | This is problematic however as sparse_file_import_auto() creates a | ||
19 | sparse_file out of the normal file, but does not resparse it, so an | ||
20 | assertion fails during the sparse_file_len() call. | ||
21 | |||
22 | This is fixed by using sparse_file_import() instead. This will fail | ||
23 | in the case that the file is not sparse and the call to | ||
24 | sparse_file_len() will be properly skipped. | ||
25 | |||
26 | Bug: 140538105 | ||
27 | Test: flash blueline factory image with assertions enabled in | ||
28 | libsparse/sparse.cpp | ||
29 | |||
30 | Change-Id: I0283be33563a3301ce5b09bde41105a20f91086c | ||
31 | |||
32 | https://android.googlesource.com/platform/system/core/+/fbb9535aaea5ae4011f3c3edf4c00b27452f57ec | ||
33 | Upstream-Status: Backport [commit fbb9535aaea5ae4011f3c3edf4c00b27452f57ec] | ||
34 | Signed-off-by: Nisha Parrakat <Nisha.Parrakat@kpit.com> | ||
35 | --- | ||
36 | fastboot/fastboot.cpp | 2 +- | ||
37 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
38 | |||
39 | diff --git a/fastboot/fastboot.cpp b/fastboot/fastboot.cpp | ||
40 | index 3b7b5571..0ae9402e 100644 | ||
41 | --- a/fastboot/fastboot.cpp | ||
42 | +++ b/fastboot/fastboot.cpp | ||
43 | @@ -869,7 +869,7 @@ static bool load_buf_fd(int fd, struct fastboot_buffer* buf) { | ||
44 | return false; | ||
45 | } | ||
46 | |||
47 | - if (sparse_file* s = sparse_file_import_auto(fd, false, false)) { | ||
48 | + if (sparse_file* s = sparse_file_import(fd, false, false)) { | ||
49 | buf->image_size = sparse_file_len(s, false, false); | ||
50 | sparse_file_destroy(s); | ||
51 | } else { | ||
52 | -- | ||
53 | 2.36.1.vfs.0.0 | ||
54 | |||
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core/0006-libbase.mk-modifications-to-make-it-build-in-yocto-e.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core/0006-libbase.mk-modifications-to-make-it-build-in-yocto-e.patch new file mode 100644 index 000000000..6211f0463 --- /dev/null +++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core/0006-libbase.mk-modifications-to-make-it-build-in-yocto-e.patch | |||
@@ -0,0 +1,45 @@ | |||
1 | From 22c7140dc170ecb26bde33fed4c9249b164f8d3c Mon Sep 17 00:00:00 2001 | ||
2 | From: Etienne Cordonnier <ecordonnier@snap.com> | ||
3 | Date: Fri, 3 Mar 2023 13:19:08 +0100 | ||
4 | Subject: [PATCH 06/15] libbase.mk: modifications to make it build in yocto | ||
5 | environment | ||
6 | |||
7 | Adding an include file that is setting the common flags. | ||
8 | Changed the cppflag to include the headers from other components | ||
9 | of android-tools | ||
10 | |||
11 | Modified LDflags so that the libraries that are coming from other android-tools | ||
12 | are searched in the output folder. | ||
13 | |||
14 | Modified the build rule so that it outputs the binary to the OUT_DIR | ||
15 | |||
16 | Signed-off-by: Nisha Parrakat <Nisha.Parrakat@kpit.com> | ||
17 | --- | ||
18 | debian/libbase.mk | 8 +++++--- | ||
19 | 1 file changed, 5 insertions(+), 3 deletions(-) | ||
20 | |||
21 | diff --git a/debian/libbase.mk b/debian/libbase.mk | ||
22 | index 80da48f3..e6c3e365 100644 | ||
23 | --- a/debian/libbase.mk | ||
24 | +++ b/debian/libbase.mk | ||
25 | @@ -1,3 +1,4 @@ | ||
26 | +include ../../rules_yocto.mk | ||
27 | NAME = libbase | ||
28 | SOURCES = \ | ||
29 | chrono_utils.cpp \ | ||
30 | @@ -20,8 +21,9 @@ CPPFLAGS += -Iinclude -Ibase/include | ||
31 | LDFLAGS += -shared -Wl,-soname,$(NAME).so.0 | ||
32 | |||
33 | build: $(SOURCES) | ||
34 | - $(CXX) $^ -o $(NAME).so.0 $(CXXFLAGS) $(CPPFLAGS) $(LDFLAGS) | ||
35 | - ln -s $(NAME).so.0 $(NAME).so | ||
36 | + $(CXX) $^ -o $(OUT_DIR)/usr/lib/$(DEB_HOST_MULTIARCH)/android/$(NAME).so.0 $(CXXFLAGS) $(CPPFLAGS) $(LDFLAGS) | ||
37 | + ln -sf $(NAME).so.0 $(OUT_DIR)/usr/lib/$(DEB_HOST_MULTIARCH)/android/$(NAME).so | ||
38 | + cp -r base/include/* $(OUT_DIR)/usr/include/ | ||
39 | |||
40 | clean: | ||
41 | - $(RM) $(NAME).so* | ||
42 | + $(RM) $(OUT_DIR)/usr/lib/$(DEB_HOST_MULTIARCH)/android/$(NAME).so* | ||
43 | -- | ||
44 | 2.36.1.vfs.0.0 | ||
45 | |||
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core/0007-libcrypto_utils.mk-modifications-to-make-it-build-in.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core/0007-libcrypto_utils.mk-modifications-to-make-it-build-in.patch new file mode 100644 index 000000000..af927264c --- /dev/null +++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core/0007-libcrypto_utils.mk-modifications-to-make-it-build-in.patch | |||
@@ -0,0 +1,51 @@ | |||
1 | From cae154ec12a864ada8372b393fceb1d682c78c60 Mon Sep 17 00:00:00 2001 | ||
2 | From: Etienne Cordonnier <ecordonnier@snap.com> | ||
3 | Date: Fri, 3 Mar 2023 14:38:05 +0100 | ||
4 | Subject: [PATCH 07/15] libcrypto_utils.mk: modifications to make it build in | ||
5 | yocto environment | ||
6 | |||
7 | Adding an include file that is setting the common flags. | ||
8 | Changed the cppflag to include the headers from other components | ||
9 | of android-tools | ||
10 | |||
11 | Modified LDflags so that the libraries that are coming from other android-tools | ||
12 | are searched in the output folder. | ||
13 | |||
14 | Modified the build rule so that it outputs the binary and header to the OUT_DIR | ||
15 | |||
16 | Signed-off-by: Nisha Parrakat <Nisha.Parrakat@kpit.com> | ||
17 | --- | ||
18 | debian/libcrypto_utils.mk | 14 ++++++++------ | ||
19 | 1 file changed, 8 insertions(+), 6 deletions(-) | ||
20 | |||
21 | diff --git a/debian/libcrypto_utils.mk b/debian/libcrypto_utils.mk | ||
22 | index 3afd4124..80c52f30 100644 | ||
23 | --- a/debian/libcrypto_utils.mk | ||
24 | +++ b/debian/libcrypto_utils.mk | ||
25 | @@ -1,15 +1,17 @@ | ||
26 | +include ../../rules_yocto.mk | ||
27 | NAME:= libcrypto_utils | ||
28 | SOURCES := android_pubkey.c | ||
29 | SOURCES := $(foreach source, $(SOURCES), libcrypto_utils/$(source)) | ||
30 | -CPPFLAGS += -Ilibcrypto_utils/include -Iinclude | ||
31 | +CPPFLAGS += -Ilibcrypto_utils/include -Iinclude -I$(OUT_DIR)/usr/include | ||
32 | LDFLAGS += -shared -Wl,-soname,$(NAME).so.0 \ | ||
33 | -Wl,-rpath=/usr/lib/$(DEB_HOST_MULTIARCH)/android \ | ||
34 | - -L/usr/lib/$(DEB_HOST_MULTIARCH)/android \ | ||
35 | - -lcrypto -Wl,-z,defs | ||
36 | + -L$(OUT_DIR)/usr/lib/$(DEB_HOST_MULTIARCH)/android \ | ||
37 | + -l:libcrypto.so.0 -Wl,-z,defs | ||
38 | |||
39 | build: $(SOURCES) | ||
40 | - $(CC) $^ -o $(NAME).so.0 $(CPPFLAGS) $(LDFLAGS) | ||
41 | - ln -s $(NAME).so.0 $(NAME).so | ||
42 | + $(CC) $^ -o $(OUT_DIR)/usr/lib/$(DEB_HOST_MULTIARCH)/android/$(NAME).so.0 $(CPPFLAGS) $(LDFLAGS) | ||
43 | + ln -sf $(NAME).so.0 $(OUT_DIR)/usr/lib/$(DEB_HOST_MULTIARCH)/android/$(NAME).so | ||
44 | + cp -r libcrypto_utils/include/* $(OUT_DIR)/usr/include/ | ||
45 | |||
46 | clean: | ||
47 | - $(RM) $(NAME).so* | ||
48 | + $(RM) $(OUT_DIR)/usr/lib/$(DEB_HOST_MULTIARCH)/android/$(NAME).so* | ||
49 | -- | ||
50 | 2.36.1.vfs.0.0 | ||
51 | |||
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core/0008-libcutils-modifications-to-make-it-build-in-yocto-en.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core/0008-libcutils-modifications-to-make-it-build-in-yocto-en.patch new file mode 100644 index 000000000..b87622922 --- /dev/null +++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core/0008-libcutils-modifications-to-make-it-build-in-yocto-en.patch | |||
@@ -0,0 +1,41 @@ | |||
1 | From 4af9cc9e93e5cb09583c0fedeccae3fa195dbe7b Mon Sep 17 00:00:00 2001 | ||
2 | From: Etienne Cordonnier <ecordonnier@snap.com> | ||
3 | Date: Fri, 3 Mar 2023 13:26:08 +0100 | ||
4 | Subject: [PATCH 08/15] libcutils: modifications to make it build in yocto | ||
5 | environment | ||
6 | --- | ||
7 | debian/libcutils.mk | 10 ++++++---- | ||
8 | 1 file changed, 6 insertions(+), 4 deletions(-) | ||
9 | |||
10 | diff --git a/debian/libcutils.mk b/debian/libcutils.mk | ||
11 | index 7cd18d87..bb45fb57 100644 | ||
12 | --- a/debian/libcutils.mk | ||
13 | +++ b/debian/libcutils.mk | ||
14 | @@ -1,3 +1,4 @@ | ||
15 | +include ../../rules_yocto.mk | ||
16 | NAME = libcutils | ||
17 | |||
18 | # copied from libcutils/Android.bp | ||
19 | @@ -50,14 +51,15 @@ CPPFLAGS += \ | ||
20 | -Iinclude \ | ||
21 | |||
22 | LDFLAGS += -shared -Wl,-soname,$(NAME).so.0 \ | ||
23 | - -Wl,-rpath=/usr/lib/$(DEB_HOST_MULTIARCH)/android -lpthread -L. -llog -lbase | ||
24 | + -Wl,-rpath=/usr/lib/$(DEB_HOST_MULTIARCH)/android -lpthread -L$(OUT_DIR)/usr/lib/$(DEB_HOST_MULTIARCH)/android/ -llog -lbase | ||
25 | |||
26 | build: $(COBJECTS) $(CXXOBJECTS) | ||
27 | - $(CXX) $^ -o $(NAME).so.0 $(LDFLAGS) | ||
28 | - ln -s $(NAME).so.0 $(NAME).so | ||
29 | + $(CXX) $^ -o $(OUT_DIR)/usr/lib/$(DEB_HOST_MULTIARCH)/android/$(NAME).so.0 $(LDFLAGS) | ||
30 | + ln -sf $(NAME).so.0 $(OUT_DIR)/usr/lib/$(DEB_HOST_MULTIARCH)/android/$(NAME).so | ||
31 | + cp -r libcutils/include/cutils $(OUT_DIR)/usr/include/ | ||
32 | |||
33 | clean: | ||
34 | - $(RM) $(CXXOBJECTS) $(COBJECTS) $(NAME).so* | ||
35 | + $(RM) $(CXXOBJECTS) $(COBJECTS) $(OUT_DIR)/usr/lib/$(DEB_HOST_MULTIARCH)/android/$(NAME).so* | ||
36 | |||
37 | $(COBJECTS): %.o: %.c | ||
38 | $(CC) $< -o $@ $(CFLAGS) $(CPPFLAGS) | ||
39 | -- | ||
40 | 2.36.1.vfs.0.0 | ||
41 | |||
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core/0009-patching-img2simg.mk-to-build-in-yocto-environment.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core/0009-patching-img2simg.mk-to-build-in-yocto-environment.patch new file mode 100644 index 000000000..ad9b8dd55 --- /dev/null +++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core/0009-patching-img2simg.mk-to-build-in-yocto-environment.patch | |||
@@ -0,0 +1,53 @@ | |||
1 | From bea40821d787ca31b38d5879fbf751be1dbea622 Mon Sep 17 00:00:00 2001 | ||
2 | From: Etienne Cordonnier <ecordonnier@snap.com> | ||
3 | Date: Fri, 3 Mar 2023 13:33:30 +0100 | ||
4 | Subject: [PATCH 09/15] patching img2simg.mk to build in yocto environment. | ||
5 | |||
6 | Changes include: | ||
7 | Introduced an output folder which will keep all the outputs from the | ||
8 | android-tools. | ||
9 | |||
10 | Adding an include file that is setting the common flags. | ||
11 | Changed the cppflag to include the headers from other components | ||
12 | of android-tools | ||
13 | |||
14 | Modified LDflags so that the libraries that are coming from other android-tools | ||
15 | are searched in the output folder. | ||
16 | |||
17 | Modified the build rule so that it outputs the binary to the OUT_DIR | ||
18 | |||
19 | Signed-off-by: Nisha Parrakat <Nisha.Parrakat@kpit.com> | ||
20 | |||
21 | Upstream-Status: Pending | ||
22 | --- | ||
23 | debian/img2simg.mk | 11 ++++++----- | ||
24 | 1 file changed, 6 insertions(+), 5 deletions(-) | ||
25 | |||
26 | diff --git a/debian/img2simg.mk b/debian/img2simg.mk | ||
27 | index f1036cef..94772381 100644 | ||
28 | --- a/debian/img2simg.mk | ||
29 | +++ b/debian/img2simg.mk | ||
30 | @@ -1,13 +1,15 @@ | ||
31 | +include ../../rules_yocto.mk | ||
32 | NAME = img2simg | ||
33 | SOURCES = img2simg.cpp | ||
34 | SOURCES := $(foreach source, $(SOURCES), libsparse/$(source)) | ||
35 | CPPFLAGS += -Ilibsparse/include -Iinclude -std=gnu++17 | ||
36 | -LDFLAGS += -Wl,-rpath=/usr/lib/$(DEB_HOST_MULTIARCH)/android \ | ||
37 | - -Wl,-rpath-link=. \ | ||
38 | - -L. -lsparse | ||
39 | +LDFLAGS += -Wl,-rpath=$(OUT_DIR)/usr/lib/$(DEB_HOST_MULTIARCH)/android \ | ||
40 | + -Wl,-rpath-link=$(OUT_DIR)/usr/lib/$(DEB_HOST_MULTIARCH)/android/ \ | ||
41 | + -L$(OUT_DIR)/usr/lib/$(DEB_HOST_MULTIARCH)/android/ -lsparse | ||
42 | |||
43 | build: $(SOURCES) | ||
44 | - $(CXX) $^ -o libsparse/$(NAME) $(CPPFLAGS) $(LDFLAGS) | ||
45 | + mkdir --parents $(OUT_DIR)/usr/bin | ||
46 | + $(CXX) $^ -o $(OUT_DIR)/usr/bin/$(NAME) $(CPPFLAGS) $(LDFLAGS) | ||
47 | |||
48 | clean: | ||
49 | - $(RM) libsparse/$(NAME) | ||
50 | + $(RM) $(OUT_DIR)/usr/bin/$(NAME) | ||
51 | -- | ||
52 | 2.36.1.vfs.0.0 | ||
53 | |||
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core/0010-patching-simg2img.mk-to-build-in-yocto-environment.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core/0010-patching-simg2img.mk-to-build-in-yocto-environment.patch new file mode 100644 index 000000000..b7a72b8bd --- /dev/null +++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core/0010-patching-simg2img.mk-to-build-in-yocto-environment.patch | |||
@@ -0,0 +1,53 @@ | |||
1 | From 08441cf4334b911dba8c493dca3b1e2166c7d322 Mon Sep 17 00:00:00 2001 | ||
2 | From: Etienne Cordonnier <ecordonnier@snap.com> | ||
3 | Date: Fri, 3 Mar 2023 13:34:34 +0100 | ||
4 | Subject: [PATCH 10/15] patching simg2img.mk to build in yocto environment. | ||
5 | |||
6 | Changes include: | ||
7 | Introduced an output folder which will keep all the outputs from the | ||
8 | android-tools. | ||
9 | |||
10 | Adding an include file that is setting the common flags. | ||
11 | Changed the cppflag to include the headers from other components | ||
12 | of android-tools | ||
13 | |||
14 | Modified LDflags so that the libraries that are coming from other android-tools | ||
15 | are searched in the output folder. | ||
16 | |||
17 | Modified the build rule so that it outputs the binary to the OUT_DIR | ||
18 | |||
19 | Signed-off-by: Nisha Parrakat <Nisha.Parrakat@kpit.com> | ||
20 | |||
21 | Upstream-Status: Pending | ||
22 | --- | ||
23 | debian/simg2img.mk | 11 ++++++----- | ||
24 | 1 file changed, 6 insertions(+), 5 deletions(-) | ||
25 | |||
26 | diff --git a/debian/simg2img.mk b/debian/simg2img.mk | ||
27 | index 07fb56b4..d319c87e 100644 | ||
28 | --- a/debian/simg2img.mk | ||
29 | +++ b/debian/simg2img.mk | ||
30 | @@ -1,13 +1,15 @@ | ||
31 | +include ../../rules_yocto.mk | ||
32 | NAME = simg2img | ||
33 | SOURCES = simg2img.cpp sparse_crc32.cpp | ||
34 | SOURCES := $(foreach source, $(SOURCES), libsparse/$(source)) | ||
35 | CPPFLAGS += -Ilibsparse/include -Iinclude -std=gnu++17 | ||
36 | -LDFLAGS += -Wl,-rpath=/usr/lib/$(DEB_HOST_MULTIARCH)/android \ | ||
37 | - -Wl,-rpath-link=. \ | ||
38 | - -L. -lsparse | ||
39 | +LDFLAGS += -Wl,-rpath=$(OUT_DIR)/usr/lib/$(DEB_HOST_MULTIARCH)/android \ | ||
40 | + -Wl,-rpath-link=$(OUT_DIR)/usr/lib/$(DEB_HOST_MULTIARCH)/android \ | ||
41 | + -L$(OUT_DIR)/usr/lib/$(DEB_HOST_MULTIARCH)/android -lsparse | ||
42 | |||
43 | build: $(SOURCES) | ||
44 | - $(CXX) $^ -o libsparse/$(NAME) $(CPPFLAGS) $(LDFLAGS) | ||
45 | + mkdir --parents $(OUT_DIR)/usr/bin | ||
46 | + $(CXX) $^ -o $(OUT_DIR)/usr/bin/$(NAME) $(CPPFLAGS) $(LDFLAGS) | ||
47 | |||
48 | clean: | ||
49 | - $(RM) libsparse/$(NAME) | ||
50 | + $(RM) $(OUT_DIR)/usr/bin/$(NAME) | ||
51 | -- | ||
52 | 2.36.1.vfs.0.0 | ||
53 | |||
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core/0011-patching-liblog.mk-to-build-in-yocto-environment.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core/0011-patching-liblog.mk-to-build-in-yocto-environment.patch new file mode 100644 index 000000000..7a37757bd --- /dev/null +++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core/0011-patching-liblog.mk-to-build-in-yocto-environment.patch | |||
@@ -0,0 +1,53 @@ | |||
1 | From 99e46ec157e6fb912258ac6506896196e53d790b Mon Sep 17 00:00:00 2001 | ||
2 | From: Etienne Cordonnier <ecordonnier@snap.com> | ||
3 | Date: Fri, 3 Mar 2023 13:35:44 +0100 | ||
4 | Subject: [PATCH 11/15] patching liblog.mk to build in yocto environment. | ||
5 | |||
6 | Changes include: | ||
7 | Introduced an output folder which will keep all the outputs from the | ||
8 | android-tools. | ||
9 | |||
10 | Adding an include file that is setting the common flags. | ||
11 | Changed the cppflag to include the headers from other components | ||
12 | of android-tools | ||
13 | |||
14 | Modified LDflags so that the libraries that are coming from other android-tools | ||
15 | are searched in the output folder. | ||
16 | |||
17 | Modified the build rule so that it outputs the binary to the OUT_DIR | ||
18 | |||
19 | Signed-off-by: Nisha Parrakat <Nisha.Parrakat@kpit.com> | ||
20 | |||
21 | Upstream-Status: Pending | ||
22 | --- | ||
23 | debian/liblog.mk | 8 +++++--- | ||
24 | 1 file changed, 5 insertions(+), 3 deletions(-) | ||
25 | |||
26 | diff --git a/debian/liblog.mk b/debian/liblog.mk | ||
27 | index eb1909b9..3b40d710 100644 | ||
28 | --- a/debian/liblog.mk | ||
29 | +++ b/debian/liblog.mk | ||
30 | @@ -1,3 +1,4 @@ | ||
31 | +include ../../rules_yocto.mk | ||
32 | NAME = liblog | ||
33 | |||
34 | # copied from liblog/Android.bp | ||
35 | @@ -39,11 +40,12 @@ CPPFLAGS += \ | ||
36 | LDFLAGS += -shared -Wl,-soname,$(NAME).so.0 -lpthread | ||
37 | |||
38 | build: $(COBJECTS) $(CXXOBJECTS) | ||
39 | - $(CXX) $^ -o $(NAME).so.0 $(LDFLAGS) | ||
40 | - ln -s $(NAME).so.0 $(NAME).so | ||
41 | + $(CXX) $^ -o $(OUT_DIR)/usr/lib/$(DEB_HOST_MULTIARCH)/android/$(NAME).so.0 $(LDFLAGS) | ||
42 | + ln -sf $(NAME).so.0 $(OUT_DIR)/usr/lib/$(DEB_HOST_MULTIARCH)/android/$(NAME).so | ||
43 | + cp -r liblog/include/* $(OUT_DIR)/usr/include/ | ||
44 | |||
45 | clean: | ||
46 | - $(RM) $(COBJECTS) $(CXXOBJECTS) $(NAME).so* | ||
47 | + $(RM) $(COBJECTS) $(CXXOBJECTS) $(OUT_DIR)/usr/lib/$(DEB_HOST_MULTIARCH)/android/$(NAME).so* | ||
48 | |||
49 | $(COBJECTS): %.o: %.c | ||
50 | $(CC) $< -o $@ $(CFLAGS) $(CPPFLAGS) | ||
51 | -- | ||
52 | 2.36.1.vfs.0.0 | ||
53 | |||
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core/0012-patching-libsparse.mk-to-build-in-yocto-environment.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core/0012-patching-libsparse.mk-to-build-in-yocto-environment.patch new file mode 100644 index 000000000..029cc1c77 --- /dev/null +++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core/0012-patching-libsparse.mk-to-build-in-yocto-environment.patch | |||
@@ -0,0 +1,58 @@ | |||
1 | From 65ddf7ea7daae721b2d331164155542820ed3e33 Mon Sep 17 00:00:00 2001 | ||
2 | From: Etienne Cordonnier <ecordonnier@snap.com> | ||
3 | Date: Fri, 3 Mar 2023 13:36:58 +0100 | ||
4 | Subject: [PATCH 12/15] patching libsparse.mk to build in yocto environment. | ||
5 | |||
6 | Changes include: | ||
7 | Introduced an output folder which will keep all the outputs from the | ||
8 | android-tools. | ||
9 | |||
10 | Adding an include file that is setting the common flags. | ||
11 | Changed the cppflag to include the headers from other components | ||
12 | of android-tools | ||
13 | |||
14 | Modified LDflags so that the libraries that are coming from other android-tools | ||
15 | are searched in the output folder. | ||
16 | |||
17 | Modified the build rule so that it outputs the binary to the OUT_DIR | ||
18 | |||
19 | Signed-off-by: Nisha Parrakat <Nisha.Parrakat@kpit.com> | ||
20 | |||
21 | Upstream-Status: Pending | ||
22 | --- | ||
23 | debian/libsparse.mk | 9 +++++---- | ||
24 | 1 file changed, 5 insertions(+), 4 deletions(-) | ||
25 | |||
26 | diff --git a/debian/libsparse.mk b/debian/libsparse.mk | ||
27 | index de280def..64caa45f 100644 | ||
28 | --- a/debian/libsparse.mk | ||
29 | +++ b/debian/libsparse.mk | ||
30 | @@ -1,3 +1,4 @@ | ||
31 | +include ../../rules_yocto.mk | ||
32 | NAME = libsparse | ||
33 | SOURCES = \ | ||
34 | backed_block.cpp \ | ||
35 | @@ -18,16 +19,16 @@ LDFLAGS += \ | ||
36 | -shared -Wl,-soname,$(NAME).so.0 \ | ||
37 | -lz \ | ||
38 | -Wl,-rpath=/usr/lib/$(DEB_HOST_MULTIARCH)/android \ | ||
39 | - -L. \ | ||
40 | + -L$(OUT_DIR)/usr/lib/$(DEB_HOST_MULTIARCH)/android/ \ | ||
41 | -lbase | ||
42 | |||
43 | |||
44 | build: $(COBJECTS) $(CXXOBJECTS) | ||
45 | - $(CXX) $^ -o $(NAME).so.0 $(LDFLAGS) | ||
46 | - ln -s $(NAME).so.0 $(NAME).so | ||
47 | + $(CXX) $^ -o $(OUT_DIR)/usr/lib/$(DEB_HOST_MULTIARCH)/android/$(NAME).so.0 $(LDFLAGS) | ||
48 | + ln -sf $(NAME).so.0 $(OUT_DIR)/usr/lib/$(DEB_HOST_MULTIARCH)/android/$(NAME).so | ||
49 | |||
50 | clean: | ||
51 | - $(RM) $(CXXOBJECTS) $(COBJECTS) $(NAME).so* | ||
52 | + $(RM) $(CXXOBJECTS) $(COBJECTS) $(OUT_DIR)/usr/lib/$(DEB_HOST_MULTIARCH)/android/$(NAME).so* | ||
53 | |||
54 | $(COBJECTS): %.o: %.c | ||
55 | $(CC) $< -o $@ $(CFLAGS) $(CPPFLAGS) | ||
56 | -- | ||
57 | 2.36.1.vfs.0.0 | ||
58 | |||
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core/0013-patching-libziparchive.mk-to-build-in-yocto-environm.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core/0013-patching-libziparchive.mk-to-build-in-yocto-environm.patch new file mode 100644 index 000000000..b49ec3b40 --- /dev/null +++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core/0013-patching-libziparchive.mk-to-build-in-yocto-environm.patch | |||
@@ -0,0 +1,59 @@ | |||
1 | From ae2bf1925fe02ea040005df27842c77c6d02b051 Mon Sep 17 00:00:00 2001 | ||
2 | From: Etienne Cordonnier <ecordonnier@snap.com> | ||
3 | Date: Fri, 3 Mar 2023 13:39:24 +0100 | ||
4 | Subject: [PATCH 13/15] patching libziparchive.mk to build in yocto | ||
5 | environment. | ||
6 | |||
7 | Changes include: | ||
8 | Introduced an output folder which will keep all the outputs from the | ||
9 | android-tools. | ||
10 | |||
11 | Adding an include file that is setting the common flags. | ||
12 | Changed the cppflag to include the headers from other components | ||
13 | of android-tools | ||
14 | |||
15 | Modified LDflags so that the libraries that are coming from other android-tools | ||
16 | are searched in the output folder. | ||
17 | |||
18 | Modified the build rule so that it outputs the binary to the OUT_DIR | ||
19 | |||
20 | Signed-off-by: Nisha Parrakat <Nisha.Parrakat@kpit.com> | ||
21 | |||
22 | Upstream-Status: Pending | ||
23 | --- | ||
24 | debian/libziparchive.mk | 12 +++++++----- | ||
25 | 1 file changed, 7 insertions(+), 5 deletions(-) | ||
26 | |||
27 | diff --git a/debian/libziparchive.mk b/debian/libziparchive.mk | ||
28 | index 803ea58e..6a697059 100644 | ||
29 | --- a/debian/libziparchive.mk | ||
30 | +++ b/debian/libziparchive.mk | ||
31 | @@ -1,3 +1,4 @@ | ||
32 | +include ../../rules_yocto.mk | ||
33 | NAME = libziparchive | ||
34 | SOURCES = zip_archive.cc \ | ||
35 | zip_archive_stream_entry.cc\ | ||
36 | @@ -5,14 +6,15 @@ SOURCES = zip_archive.cc \ | ||
37 | SOURCES := $(foreach source, $(SOURCES), libziparchive/$(source)) | ||
38 | CXXFLAGS += -std=gnu++17 | ||
39 | CPPFLAGS += -DZLIB_CONST -D_FILE_OFFSET_BITS=64 \ | ||
40 | - -Iinclude -Ibase/include -Ilibziparchive/include | ||
41 | + -Iinclude -Ibase/include -Ilibziparchive/include -I$(OUT_DIR)/usr/include/ | ||
42 | LDFLAGS += -shared -Wl,-soname,$(NAME).so.0 \ | ||
43 | -Wl,-rpath=/usr/lib/$(DEB_HOST_MULTIARCH)/android \ | ||
44 | - -lz -L. -llog -lbase | ||
45 | + -lz -L$(OUT_DIR)/usr/lib/$(DEB_HOST_MULTIARCH)/android -llog -lbase | ||
46 | |||
47 | build: $(SOURCES) | ||
48 | - $(CXX) $^ -o $(NAME).so.0 $(CXXFLAGS) $(CPPFLAGS) $(LDFLAGS) | ||
49 | - ln -s $(NAME).so.0 $(NAME).so | ||
50 | + $(CXX) $^ -o $(OUT_DIR)/usr/lib/$(DEB_HOST_MULTIARCH)/android/$(NAME).so.0 $(CXXFLAGS) $(CPPFLAGS) $(LDFLAGS) | ||
51 | + ln -sf $(NAME).so.0 $(OUT_DIR)/usr/lib/$(DEB_HOST_MULTIARCH)/android/$(NAME).so | ||
52 | + cp -r libziparchive/include/* $(OUT_DIR)/usr/include/ | ||
53 | |||
54 | clean: | ||
55 | - $(RM) $(NAME).so* | ||
56 | + $(RM) $(OUT_DIR)/usr/lib/$(DEB_HOST_MULTIARCH)/android/$(NAME).so* | ||
57 | -- | ||
58 | 2.36.1.vfs.0.0 | ||
59 | |||
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core/0014-patching-libbacktrace.mk-to-build-in-yocto-environme.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core/0014-patching-libbacktrace.mk-to-build-in-yocto-environme.patch new file mode 100644 index 000000000..433caf248 --- /dev/null +++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core/0014-patching-libbacktrace.mk-to-build-in-yocto-environme.patch | |||
@@ -0,0 +1,69 @@ | |||
1 | From a99b74f25c7f786e26b5400218090d86596d4541 Mon Sep 17 00:00:00 2001 | ||
2 | From: Etienne Cordonnier <ecordonnier@snap.com> | ||
3 | Date: Fri, 3 Mar 2023 13:40:32 +0100 | ||
4 | Subject: [PATCH 14/15] patching libbacktrace.mk to build in yocto environment. | ||
5 | |||
6 | Changes include: | ||
7 | Introduced an output folder which will keep all the outputs from the | ||
8 | android-tools. | ||
9 | |||
10 | Adding an include file that is setting the common flags. | ||
11 | Changed the cppflag to include the headers from other components | ||
12 | of android-tools | ||
13 | |||
14 | Modified LDflags so that the libraries that are coming from other android-tools | ||
15 | are searched in the output folder. | ||
16 | |||
17 | Modified the build rule so that it outputs the binary to the OUT_DIR | ||
18 | |||
19 | Signed-off-by: Nisha Parrakat <Nisha.Parrakat@kpit.com> | ||
20 | |||
21 | Upstream-Status: Pending | ||
22 | --- | ||
23 | debian/libbacktrace.mk | 14 +++++++------- | ||
24 | 1 file changed, 7 insertions(+), 7 deletions(-) | ||
25 | |||
26 | diff --git a/debian/libbacktrace.mk b/debian/libbacktrace.mk | ||
27 | index 330d211c..229b39d9 100644 | ||
28 | --- a/debian/libbacktrace.mk | ||
29 | +++ b/debian/libbacktrace.mk | ||
30 | @@ -1,5 +1,5 @@ | ||
31 | |||
32 | -include /usr/share/dpkg/architecture.mk | ||
33 | +include ../../rules_yocto.mk | ||
34 | |||
35 | NAME = libbacktrace | ||
36 | |||
37 | @@ -88,11 +88,11 @@ CPPFLAGS += \ | ||
38 | -Ilibprocinfo/include \ | ||
39 | -Ilibunwindstack/include \ | ||
40 | -I/usr/include/android/lzma \ | ||
41 | - -I/usr/include/android/unwind | ||
42 | + -I$(OUT_DIR)/usr/include/android/libunwind | ||
43 | LDFLAGS += -shared -Wl,-soname,$(NAME).so.0 \ | ||
44 | -Wl,-rpath=/usr/lib/$(DEB_HOST_MULTIARCH)/android \ | ||
45 | - -L/usr/lib/$(DEB_HOST_MULTIARCH)/android -lunwind \ | ||
46 | - -L. -lbase -llog -lpthread -l7z | ||
47 | + -L$(OUT_DIR)/usr/lib/$(DEB_HOST_MULTIARCH)/android -lunwind \ | ||
48 | + -lbase -llog -lpthread -l7z | ||
49 | |||
50 | # -latomic should be the last library specified | ||
51 | # https://github.com/android/ndk/issues/589 | ||
52 | @@ -104,11 +104,11 @@ ifeq ($(DEB_HOST_ARCH), mipsel) | ||
53 | endif | ||
54 | |||
55 | build: $(COBJECTS) $(CXXOBJECTS) $(OBJECTS_ASSEMBLY) | ||
56 | - $(CXX) $^ -o $(NAME).so.0 $(LDFLAGS) | ||
57 | - ln -s $(NAME).so.0 $(NAME).so | ||
58 | + $(CXX) $^ -o $(OUT_DIR)/usr/lib/$(DEB_HOST_MULTIARCH)/android/$(NAME).so.0 $(LDFLAGS) | ||
59 | + ln -sf $(OUT_DIR)/usr/lib/$(DEB_HOST_MULTIARCH)/android/$(NAME).so.0 $(NAME).so | ||
60 | |||
61 | clean: | ||
62 | - $(RM) $(COBJECTS) $(CXXOBJECTS) $(NAME).so* | ||
63 | + $(RM) $(COBJECTS) $(CXXOBJECTS) $(OUT_DIR)/usr/lib/$(DEB_HOST_MULTIARCH)/android/$(NAME).so* | ||
64 | |||
65 | $(CXXOBJECTS): %.o: %.cpp | ||
66 | $(CXX) $< -o $@ $(CXXFLAGS) $(CPPFLAGS) | ||
67 | -- | ||
68 | 2.36.1.vfs.0.0 | ||
69 | |||
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core/0015-Use-namespace-std-to-compile-libbacktrace.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core/0015-Use-namespace-std-to-compile-libbacktrace.patch new file mode 100644 index 000000000..d8fee6655 --- /dev/null +++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core/0015-Use-namespace-std-to-compile-libbacktrace.patch | |||
@@ -0,0 +1,32 @@ | |||
1 | From 19a16829ef7b7ffd6466b9b90585d667a1663969 Mon Sep 17 00:00:00 2001 | ||
2 | From: Etienne Cordonnier <ecordonnier@snap.com> | ||
3 | Date: Fri, 3 Mar 2023 13:43:50 +0100 | ||
4 | Subject: [PATCH 15/15] Use namespace std to compile libbacktrace | ||
5 | |||
6 | To Fix the below error | ||
7 | |||
8 | In file included from libunwindstack/DwarfSection.cpp:21: | ||
9 | | libunwindstack/include/unwindstack/DwarfMemory.h:32:29: error: unknown type name 'size_t'; did you mean 'std::size_t'? | ||
10 | | bool ReadBytes(void* dst, size_t num_bytes); | ||
11 | | ^~~~~~ | ||
12 | | std::size_t | ||
13 | --- | ||
14 | libunwindstack/include/unwindstack/DwarfMemory.h | 2 +- | ||
15 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
16 | |||
17 | diff --git a/libunwindstack/include/unwindstack/DwarfMemory.h b/libunwindstack/include/unwindstack/DwarfMemory.h | ||
18 | index 244c0e12..0a3fefeb 100644 | ||
19 | --- a/libunwindstack/include/unwindstack/DwarfMemory.h | ||
20 | +++ b/libunwindstack/include/unwindstack/DwarfMemory.h | ||
21 | @@ -23,7 +23,7 @@ namespace unwindstack { | ||
22 | |||
23 | // Forward declarations. | ||
24 | class Memory; | ||
25 | - | ||
26 | +using namespace std; | ||
27 | class DwarfMemory { | ||
28 | public: | ||
29 | DwarfMemory(Memory* memory) : memory_(memory) {} | ||
30 | -- | ||
31 | 2.36.1.vfs.0.0 | ||
32 | |||
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core/0016-Adapt-adbd-to-work-with-yocto.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core/0016-Adapt-adbd-to-work-with-yocto.patch new file mode 100644 index 000000000..88194317b --- /dev/null +++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/core/0016-Adapt-adbd-to-work-with-yocto.patch | |||
@@ -0,0 +1,161 @@ | |||
1 | From 1c836e4402ae170b3e0bf31da9012b7a3b1c40a1 Mon Sep 17 00:00:00 2001 | ||
2 | From: Etienne Cordonnier <ecordonnier@snap.com> | ||
3 | Date: Wed, 8 Mar 2023 15:21:49 +0100 | ||
4 | Subject: [PATCH] Adapt adbd to work with yocto | ||
5 | |||
6 | Co-authored-by: JJ Robertson <jrobertson@snap.com> | ||
7 | Co-authored-by: Wejdene Smida <wsmida@snap.com> | ||
8 | Signed-off-by: Etienne Cordonnier <ecordonnier@snap.com> | ||
9 | --- | ||
10 | adb/daemon/file_sync_service.cpp | 4 ++-- | ||
11 | adb/daemon/main.cpp | 4 ++-- | ||
12 | adb/daemon/reboot_service.cpp | 5 ++++- | ||
13 | adb/daemon/set_verity_enable_state_service.cpp | 6 +++++- | ||
14 | adb/daemon/shell_service.cpp | 4 ++++ | ||
15 | adb/types.h | 1 + | ||
16 | 6 files changed, 18 insertions(+), 6 deletions(-) | ||
17 | |||
18 | diff --git a/adb/daemon/file_sync_service.cpp b/adb/daemon/file_sync_service.cpp | ||
19 | index e82a51f2..ba112cbe 100644 | ||
20 | --- a/adb/daemon/file_sync_service.cpp | ||
21 | +++ b/adb/daemon/file_sync_service.cpp | ||
22 | @@ -111,7 +111,7 @@ static bool secure_mkdirs(const std::string& path) { | ||
23 | partial_path += path_component; | ||
24 | |||
25 | if (should_use_fs_config(partial_path)) { | ||
26 | - fs_config(partial_path.c_str(), 1, nullptr, &uid, &gid, &mode, &capabilities); | ||
27 | + // fs_config(partial_path.c_str(), 1, nullptr, &uid, &gid, &mode, &capabilities); | ||
28 | } | ||
29 | if (adb_mkdir(partial_path.c_str(), mode) == -1) { | ||
30 | if (errno != EEXIST) { | ||
31 | @@ -434,7 +434,7 @@ static bool do_send(int s, const std::string& spec, std::vector<char>& buffer) { | ||
32 | uint64_t capabilities = 0; | ||
33 | if (should_use_fs_config(path)) { | ||
34 | unsigned int broken_api_hack = mode; | ||
35 | - fs_config(path.c_str(), 0, nullptr, &uid, &gid, &broken_api_hack, &capabilities); | ||
36 | + // fs_config(path.c_str(), 0, nullptr, &uid, &gid, &broken_api_hack, &capabilities); | ||
37 | mode = broken_api_hack; | ||
38 | } | ||
39 | |||
40 | diff --git a/adb/daemon/main.cpp b/adb/daemon/main.cpp | ||
41 | index e5a49171..c75263c4 100644 | ||
42 | --- a/adb/daemon/main.cpp | ||
43 | +++ b/adb/daemon/main.cpp | ||
44 | @@ -191,6 +191,8 @@ int adbd_main(int server_port) { | ||
45 | umask(0); | ||
46 | |||
47 | signal(SIGPIPE, SIG_IGN); | ||
48 | + signal(SIGINT, SIG_DFL); | ||
49 | + signal(SIGQUIT, SIG_DFL); | ||
50 | |||
51 | #if defined(__BIONIC__) | ||
52 | auto fdsan_level = android_fdsan_get_error_level(); | ||
53 | @@ -232,13 +234,11 @@ int adbd_main(int server_port) { | ||
54 | |||
55 | bool is_usb = false; | ||
56 | |||
57 | -#if defined(__ANDROID__) | ||
58 | if (access(USB_FFS_ADB_EP0, F_OK) == 0) { | ||
59 | // Listen on USB. | ||
60 | usb_init(); | ||
61 | is_usb = true; | ||
62 | } | ||
63 | -#endif | ||
64 | |||
65 | // If one of these properties is set, also listen on that port. | ||
66 | // If one of the properties isn't set and we couldn't listen on usb, listen | ||
67 | diff --git a/adb/daemon/reboot_service.cpp b/adb/daemon/reboot_service.cpp | ||
68 | index a5a11b86..6bd069d4 100644 | ||
69 | --- a/adb/daemon/reboot_service.cpp | ||
70 | +++ b/adb/daemon/reboot_service.cpp | ||
71 | @@ -28,7 +28,9 @@ | ||
72 | #include <android-base/logging.h> | ||
73 | #include <android-base/properties.h> | ||
74 | #include <android-base/stringprintf.h> | ||
75 | -#include <bootloader_message/bootloader_message.h> | ||
76 | +// #include <bootloader_message/bootloader_message.h> | ||
77 | +#include <linux/reboot.h> | ||
78 | +#include <sys/signal.h> | ||
79 | #include <cutils/android_reboot.h> | ||
80 | |||
81 | #include "adb_io.h" | ||
82 | @@ -76,6 +78,7 @@ void reboot_service(unique_fd fd, const std::string& arg) { | ||
83 | return; | ||
84 | } | ||
85 | } | ||
86 | + syscall(__NR_reboot, LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2, LINUX_REBOOT_CMD_RESTART2, reboot_arg.c_str()); | ||
87 | // Don't return early. Give the reboot command time to take effect | ||
88 | // to avoid messing up scripts which do "adb reboot && adb wait-for-device" | ||
89 | while (true) { | ||
90 | diff --git a/adb/daemon/set_verity_enable_state_service.cpp b/adb/daemon/set_verity_enable_state_service.cpp | ||
91 | index 889229fe..51e9be93 100644 | ||
92 | --- a/adb/daemon/set_verity_enable_state_service.cpp | ||
93 | +++ b/adb/daemon/set_verity_enable_state_service.cpp | ||
94 | @@ -22,7 +22,7 @@ | ||
95 | #include <errno.h> | ||
96 | #include <fcntl.h> | ||
97 | #include <inttypes.h> | ||
98 | -#include <libavb_user/libavb_user.h> | ||
99 | +// #include <libavb_user/libavb_user.h> | ||
100 | #include <stdarg.h> | ||
101 | #include <stdio.h> | ||
102 | #include <sys/mount.h> | ||
103 | @@ -65,6 +65,7 @@ static bool make_block_device_writable(const std::string& dev) { | ||
104 | /* Turn verity on/off */ | ||
105 | static bool set_verity_enabled_state(int fd, const char* block_device, const char* mount_point, | ||
106 | bool enable) { | ||
107 | +#if defined(__ANDROID__) | ||
108 | if (!make_block_device_writable(block_device)) { | ||
109 | WriteFdFmt(fd, "Could not make block device %s writable (%s).\n", | ||
110 | block_device, strerror(errno)); | ||
111 | @@ -115,6 +116,7 @@ static bool set_verity_enabled_state(int fd, const char* block_device, const cha | ||
112 | mount_point, strerror(errno)); | ||
113 | } | ||
114 | WriteFdFmt(fd, "Verity %s on %s\n", enable ? "enabled" : "disabled", mount_point); | ||
115 | +#endif | ||
116 | return true; | ||
117 | } | ||
118 | |||
119 | @@ -126,6 +128,7 @@ static std::string get_ab_suffix() { | ||
120 | return android::base::GetProperty("ro.boot.slot_suffix", ""); | ||
121 | } | ||
122 | |||
123 | +#if defined(__ANDROID__) | ||
124 | static bool is_avb_device_locked() { | ||
125 | return android::base::GetProperty("ro.boot.vbmeta.device_state", "") == "locked"; | ||
126 | } | ||
127 | @@ -245,3 +248,4 @@ void set_verity_enabled_state_service(unique_fd fd, bool enable) { | ||
128 | WriteFdExactly(fd.get(), "Now reboot your device for settings to take effect\n"); | ||
129 | } | ||
130 | } | ||
131 | +#endif | ||
132 | diff --git a/adb/daemon/shell_service.cpp b/adb/daemon/shell_service.cpp | ||
133 | index 3c8f3939..84f4f54d 100644 | ||
134 | --- a/adb/daemon/shell_service.cpp | ||
135 | +++ b/adb/daemon/shell_service.cpp | ||
136 | @@ -264,6 +264,10 @@ bool Subprocess::ForkAndExec(std::string* error) { | ||
137 | env["TMPDIR"] = "/data/local/tmp"; | ||
138 | env["USER"] = pw->pw_name; | ||
139 | } | ||
140 | + if (env.find("PS1") == env.end()) { | ||
141 | + env["PS1"] = "\\h:\\w\\$ "; | ||
142 | + } | ||
143 | + | ||
144 | |||
145 | if (!terminal_type_.empty()) { | ||
146 | env["TERM"] = terminal_type_; | ||
147 | diff --git a/adb/types.h b/adb/types.h | ||
148 | index 6af4a150..9efe223b 100644 | ||
149 | --- a/adb/types.h | ||
150 | +++ b/adb/types.h | ||
151 | @@ -20,6 +20,7 @@ | ||
152 | #include <cstring> | ||
153 | #include <deque> | ||
154 | #include <memory> | ||
155 | +#include <string> | ||
156 | #include <type_traits> | ||
157 | #include <utility> | ||
158 | #include <vector> | ||
159 | -- | ||
160 | 2.36.1.vfs.0.0 | ||
161 | |||
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/libcrypto_utils_mk_change_out_dir.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/libcrypto_utils_mk_change_out_dir.patch new file mode 100644 index 000000000..668338d8b --- /dev/null +++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/libcrypto_utils_mk_change_out_dir.patch | |||
@@ -0,0 +1,39 @@ | |||
1 | libcrypto_utils.mk: modifications to make it build in yocto environment | ||
2 | |||
3 | Adding an include file that is setting the common flags. | ||
4 | Changed the cppflag to include the headers from other components | ||
5 | of android-tools | ||
6 | |||
7 | Modified LDflags so that the libraries that are coming from other android-tools | ||
8 | are searched in the output folder. | ||
9 | |||
10 | Modified the build rule so that it outputs the binary and header to the OUT_DIR | ||
11 | |||
12 | Signed-off-by: Nisha Parrakat <Nisha.Parrakat@kpit.com> | ||
13 | |||
14 | --- git/debian/libcrypto_utils.mk 2021-04-30 14:18:54.071379767 +0200 | ||
15 | +++ git/debian/libcrypto_utils.mk 2021-04-30 14:22:46.179047308 +0200 | ||
16 | @@ -1,15 +1,17 @@ | ||
17 | +include ../../rules_yocto.mk | ||
18 | NAME:= libcrypto_utils | ||
19 | SOURCES := android_pubkey.c | ||
20 | SOURCES := $(foreach source, $(SOURCES), libcrypto_utils/$(source)) | ||
21 | -CPPFLAGS += -Ilibcrypto_utils/include -Iinclude | ||
22 | +CPPFLAGS += -Ilibcrypto_utils/include -Iinclude -I$(OUT_DIR)/usr/include | ||
23 | LDFLAGS += -shared -Wl,-soname,$(NAME).so.0 \ | ||
24 | -Wl,-rpath=/usr/lib/$(DEB_HOST_MULTIARCH)/android \ | ||
25 | - -L/usr/lib/$(DEB_HOST_MULTIARCH)/android \ | ||
26 | - -lcrypto -Wl,-z,defs | ||
27 | + -L$(OUT_DIR)/usr/lib/$(DEB_HOST_MULTIARCH)/android \ | ||
28 | + -l:libcrypto.so.0 -Wl,-z,defs | ||
29 | |||
30 | build: $(SOURCES) | ||
31 | - $(CC) $^ -o $(NAME).so.0 $(CPPFLAGS) $(LDFLAGS) | ||
32 | - ln -s $(NAME).so.0 $(NAME).so | ||
33 | + $(CC) $^ -o $(OUT_DIR)/usr/lib/$(DEB_HOST_MULTIARCH)/android/$(NAME).so.0 $(CPPFLAGS) $(LDFLAGS) | ||
34 | + ln -sf $(NAME).so.0 $(OUT_DIR)/usr/lib/$(DEB_HOST_MULTIARCH)/android/$(NAME).so | ||
35 | + cp -r libcrypto_utils/include/* $(OUT_DIR)/usr/include/ | ||
36 | |||
37 | clean: | ||
38 | - $(RM) $(NAME).so* | ||
39 | + $(RM) $(OUT_DIR)/usr/lib/$(DEB_HOST_MULTIARCH)/android/$(NAME).so* | ||
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/libunwind-debian/20150704-CVE-2015-3239_dwarf_i.h.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/libunwind-debian/20150704-CVE-2015-3239_dwarf_i.h.patch new file mode 100644 index 000000000..cc1a8cb95 --- /dev/null +++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/libunwind-debian/20150704-CVE-2015-3239_dwarf_i.h.patch | |||
@@ -0,0 +1,14 @@ | |||
1 | Description: Fixes "20150704-CVE-2015-3239" | ||
2 | Index: pkg-libunwind/include/dwarf_i.h | ||
3 | =================================================================== | ||
4 | --- pkg-libunwind.orig/include/dwarf_i.h 2015-07-04 10:57:29.000000000 +0900 | ||
5 | +++ pkg-libunwind/include/dwarf_i.h 2015-07-04 11:06:08.675616821 +0900 | ||
6 | @@ -20,7 +20,7 @@ | ||
7 | extern const uint8_t dwarf_to_unw_regnum_map[DWARF_REGNUM_MAP_LENGTH]; | ||
8 | /* REG is evaluated multiple times; it better be side-effects free! */ | ||
9 | # define dwarf_to_unw_regnum(reg) \ | ||
10 | - (((reg) <= DWARF_REGNUM_MAP_LENGTH) ? dwarf_to_unw_regnum_map[reg] : 0) | ||
11 | + (((reg) < DWARF_REGNUM_MAP_LENGTH) ? dwarf_to_unw_regnum_map[reg] : 0) | ||
12 | #endif | ||
13 | |||
14 | #ifdef UNW_LOCAL_ONLY | ||
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/libunwind-debian/legacy_built-in_sync_functions.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/libunwind-debian/legacy_built-in_sync_functions.patch new file mode 100644 index 000000000..8d78faac1 --- /dev/null +++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/libunwind-debian/legacy_built-in_sync_functions.patch | |||
@@ -0,0 +1,25 @@ | |||
1 | Description: Replace the legacy __sync built-in functions with __atomic ones | ||
2 | libunwind uses the built-in __sync_* functions which are deprecated by GCC and | ||
3 | should be replaced by __atomic_* ones. See the official manuals [1]. | ||
4 | . | ||
5 | The legacy __sync functions do not require to specify the memory order but | ||
6 | __atomic ones do, so we choose the strongest one: __ATOMIC_SEQ_CST. | ||
7 | . | ||
8 | We do this because __sync_fetch_and_add() is not supported on armel. | ||
9 | . | ||
10 | [1]: https://gcc.gnu.org/onlinedocs/gcc/_005f_005fsync-Builtins.html | ||
11 | Author: Kai-Chung Yan () | ||
12 | Last-Update: 2016-10-04 | ||
13 | --- a/include/libunwind_i.h | ||
14 | +++ b/include/libunwind_i.h | ||
15 | @@ -155,8 +155,8 @@ | ||
16 | u.vp = addr; | ||
17 | return __sync_bool_compare_and_swap(u.vlp, (long) old, (long) new); | ||
18 | } | ||
19 | -# define fetch_and_add1(_ptr) __sync_fetch_and_add(_ptr, 1) | ||
20 | -# define fetch_and_add(_ptr, value) __sync_fetch_and_add(_ptr, value) | ||
21 | +# define fetch_and_add1(_ptr) __atomic_fetch_add(_ptr, 1, __ATOMIC_SEQ_CST) | ||
22 | +# define fetch_and_add(_ptr, value) __atomic_fetch_add(_ptr, value, __ATOMIC_SEQ_CST) | ||
23 | # define HAVE_CMPXCHG | ||
24 | # define HAVE_FETCH_AND_ADD | ||
25 | #endif | ||
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/libunwind-debian/series b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/libunwind-debian/series new file mode 100644 index 000000000..9cac341b6 --- /dev/null +++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/libunwind-debian/series | |||
@@ -0,0 +1,3 @@ | |||
1 | user_pt_regs.patch | ||
2 | legacy_built-in_sync_functions.patch | ||
3 | 20150704-CVE-2015-3239_dwarf_i.h.patch | ||
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/libunwind-debian/user_pt_regs.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/libunwind-debian/user_pt_regs.patch new file mode 100644 index 000000000..8051b6d18 --- /dev/null +++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/libunwind-debian/user_pt_regs.patch | |||
@@ -0,0 +1,23 @@ | |||
1 | Author: Kai-Chung Yan <seamlikok@gmail.com> | ||
2 | Last-Update: 2016-08-24 | ||
3 | Description: Manual definition of struct user_pt_regs | ||
4 | On ARM64, libunwind uses struct user_pt_regs which is not defined in | ||
5 | anywhere, which causes FTBFS. | ||
6 | --- a/src/ptrace/_UPT_access_reg.c | ||
7 | +++ b/src/ptrace/_UPT_access_reg.c | ||
8 | @@ -26,6 +26,15 @@ | ||
9 | |||
10 | #include "_UPT_internal.h" | ||
11 | |||
12 | +#if defined(__aarch64__) | ||
13 | + struct user_pt_regs { | ||
14 | + __u64 regs[31]; | ||
15 | + __u64 sp; | ||
16 | + __u64 pc; | ||
17 | + __u64 pstate; | ||
18 | + }; | ||
19 | +#endif | ||
20 | + | ||
21 | #if UNW_TARGET_IA64 | ||
22 | # include <elf.h> | ||
23 | # ifdef HAVE_ASM_PTRACE_OFFSETS_H | ||
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/rules_yocto.mk b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/rules_yocto.mk new file mode 100644 index 000000000..5e217f47f --- /dev/null +++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/rules_yocto.mk | |||
@@ -0,0 +1,4 @@ | |||
1 | CPPFLAGS += -fPIC | ||
2 | ifndef OUT_DIR | ||
3 | OUT_DIR = ../../debian/out | ||
4 | endif | ||
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools_10.0.0.r36.bb b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools_10.0.0.r36.bb new file mode 100644 index 000000000..f34265576 --- /dev/null +++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools_10.0.0.r36.bb | |||
@@ -0,0 +1,229 @@ | |||
1 | DESCRIPTION = "Different utilities from Android" | ||
2 | SECTION = "console/utils" | ||
3 | LICENSE = "Apache-2.0 & GPL-2.0-only & BSD-2-Clause & BSD-3-Clause" | ||
4 | LIC_FILES_CHKSUM = " \ | ||
5 | file://${COMMON_LICENSE_DIR}/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10 \ | ||
6 | file://${COMMON_LICENSE_DIR}/GPL-2.0-only;md5=801f80980d171dd6425610833a22dbe6 \ | ||
7 | file://${COMMON_LICENSE_DIR}/BSD-2-Clause;md5=cb641bc04cda31daea161b1bc15da69f \ | ||
8 | file://${COMMON_LICENSE_DIR}/BSD-3-Clause;md5=550794465ba0ec5312d6919e203a55f9 \ | ||
9 | " | ||
10 | DEPENDS = "libbsd libpcre zlib libcap libusb squashfs-tools p7zip libselinux" | ||
11 | |||
12 | ANDROID_MIRROR = "android.googlesource.com" | ||
13 | |||
14 | # matches with 10.0.0+r36 | ||
15 | SRCREV_boringssl = "ae2dd49c7cb74d04bdba7c1c9bd62c1e9cdf98f6" | ||
16 | SRCREV_core = "5aa13b053182b758d7a19db0c83e1b9b5bf1ec2e" | ||
17 | SRCREV_extras = "d31740f9d0399f8b938e88e58843d966e1cccab6" | ||
18 | SRCREV_libhardware = "c6925520342a7d37758f85eb1cf3baa20a7b7a18" | ||
19 | SRCREV_build = "28768b3120f751583a2743101b892f210d4715cf" | ||
20 | SRCREV_libunwind = "03a963ecf6ea836b38b3537cbcda0ecfd7a77393" | ||
21 | |||
22 | SRC_URI = " \ | ||
23 | git://salsa.debian.org/android-tools-team/android-platform-external-boringssl;name=boringssl;protocol=https;nobranch=1;destsuffix=git/external/boringssl \ | ||
24 | git://salsa.debian.org/android-tools-team/android-platform-system-core;name=core;protocol=https;nobranch=1;destsuffix=git/system/core \ | ||
25 | git://salsa.debian.org/android-tools-team/android-platform-system-extras;name=extras;protocol=https;nobranch=1;destsuffix=git/system/extras \ | ||
26 | git://${ANDROID_MIRROR}/platform/hardware/libhardware;name=libhardware;protocol=https;nobranch=1;destsuffix=git/hardware/libhardware \ | ||
27 | git://salsa.debian.org/android-tools-team/android-platform-build.git;name=build;protocol=https;nobranch=1;destsuffix=git/build \ | ||
28 | git://salsa.debian.org/android-tools-team/android-platform-external-libunwind.git;protocol=https;name=libunwind;nobranch=1;destsuffix=git/external/libunwind \ | ||
29 | " | ||
30 | |||
31 | # Patches copied from android-platform-system-core/debian/patches | ||
32 | # and applied in the order defined by the "series" file | ||
33 | SRC_URI += " \ | ||
34 | file://core-debian/move-log-file-to-proper-dir.patch;patchdir=system/core \ | ||
35 | file://core-debian/Added-missing-headers.patch;patchdir=system/core \ | ||
36 | file://core-debian/libusb-header-path.patch;patchdir=system/core \ | ||
37 | file://core-debian/stdatomic.patch;patchdir=system/core \ | ||
38 | file://core-debian/Nonnull.patch;patchdir=system/core \ | ||
39 | file://core-debian/Vector-cast.patch;patchdir=system/core \ | ||
40 | file://core-debian/use-Python-3-for-mkbootimg.patch;patchdir=system/core \ | ||
41 | file://core-debian/throw-exception-on-unknown-os.patch;patchdir=system/core \ | ||
42 | file://core-debian/simg_dump-python3.patch;patchdir=system/core \ | ||
43 | file://core-debian/fix-attribute-issue-with-gcc.patch;patchdir=system/core \ | ||
44 | file://core-debian/workaround-error-expected-primary-expression-before-.-token.patch;patchdir=system/core \ | ||
45 | file://core-debian/fix-gettid-exception-declaration.patch;patchdir=system/core \ | ||
46 | file://core-debian/fix-build-on-non-x86.patch;patchdir=system/core \ | ||
47 | file://core-debian/add-missing-headers.patch;patchdir=system/core \ | ||
48 | file://core-debian/hard-code-build-number.patch;patchdir=system/core \ | ||
49 | file://core-debian/fix-gcc-11-ftbfs.patch;patchdir=system/core \ | ||
50 | file://core-debian/fix-gnu-hurd.patch;patchdir=system/core \ | ||
51 | " | ||
52 | |||
53 | # Patches copied from android-platform-external-libunwind/debian/patches | ||
54 | # and applied in the order defined by the "series" file | ||
55 | SRC_URI += " \ | ||
56 | file://libunwind-debian/user_pt_regs.patch;patchdir=external/libunwind \ | ||
57 | file://libunwind-debian/legacy_built-in_sync_functions.patch;patchdir=external/libunwind \ | ||
58 | file://libunwind-debian/20150704-CVE-2015-3239_dwarf_i.h.patch;patchdir=external/libunwind \ | ||
59 | " | ||
60 | |||
61 | # meta-clang specific patches + files: | ||
62 | SRC_URI += " \ | ||
63 | file://core/0001-patching-adb.mk-to-build-in-yocto-environment.patch;patchdir=system/core \ | ||
64 | file://core/0002-libadb.mk-modifications-to-make-it-build-in-yocto-en.patch;patchdir=system/core \ | ||
65 | file://core/0003-socket.h-removing-dependency-of-gtest.patch;patchdir=system/core \ | ||
66 | file://core/0004-patching-fastboot.mk-to-build-in-yocto-environment.patch;patchdir=system/core \ | ||
67 | file://core/0005-fastboot-don-t-use-sparse_file_import_auto-in-load_b.patch;patchdir=system/core \ | ||
68 | file://core/0006-libbase.mk-modifications-to-make-it-build-in-yocto-e.patch;patchdir=system/core \ | ||
69 | file://core/0007-libcrypto_utils.mk-modifications-to-make-it-build-in.patch;patchdir=system/core \ | ||
70 | file://core/0008-libcutils-modifications-to-make-it-build-in-yocto-en.patch;patchdir=system/core \ | ||
71 | file://core/0009-patching-img2simg.mk-to-build-in-yocto-environment.patch;patchdir=system/core \ | ||
72 | file://core/0010-patching-simg2img.mk-to-build-in-yocto-environment.patch;patchdir=system/core \ | ||
73 | file://core/0011-patching-liblog.mk-to-build-in-yocto-environment.patch;patchdir=system/core \ | ||
74 | file://core/0012-patching-libsparse.mk-to-build-in-yocto-environment.patch;patchdir=system/core \ | ||
75 | file://core/0013-patching-libziparchive.mk-to-build-in-yocto-environm.patch;patchdir=system/core \ | ||
76 | file://core/0014-patching-libbacktrace.mk-to-build-in-yocto-environme.patch;patchdir=system/core \ | ||
77 | file://core/0015-Use-namespace-std-to-compile-libbacktrace.patch;patchdir=system/core \ | ||
78 | file://core/0016-Adapt-adbd-to-work-with-yocto.patch;patchdir=system/core \ | ||
79 | file://0001-libcrypto.mk-modifications-to-make-it-build-in-yocto.patch;patchdir=external/boringssl \ | ||
80 | file://0001-patching-libundwind-to-build-in-yocto-environment.patch;patchdir=external/libunwind \ | ||
81 | file://0001-libext4_utils.mk-modifications-to-make-it-build-in-y.patch;patchdir=system/extras \ | ||
82 | file://0002-libfec-change-out_dir-in-makefile.patch;patchdir=system/extras \ | ||
83 | file://rules_yocto.mk;subdir=git \ | ||
84 | file://android-tools-adbd.service \ | ||
85 | file://adbd.mk;subdir=git/system/core/debian \ | ||
86 | " | ||
87 | |||
88 | S = "${WORKDIR}/git" | ||
89 | B = "${WORKDIR}/${BPN}" | ||
90 | |||
91 | # http://errors.yoctoproject.org/Errors/Details/1debian881/ | ||
92 | ARM_INSTRUCTION_SET:armv4 = "arm" | ||
93 | ARM_INSTRUCTION_SET:armv5 = "arm" | ||
94 | |||
95 | COMPATIBLE_HOST:powerpc = "(null)" | ||
96 | COMPATIBLE_HOST:powerpc64 = "(null)" | ||
97 | COMPATIBLE_HOST:powerpc64le = "(null)" | ||
98 | |||
99 | inherit systemd clang | ||
100 | |||
101 | TOOLCHAIN = "clang" | ||
102 | TOOLCHAIN:class-native = "clang" | ||
103 | DEPENDS:append:class-target = "\ | ||
104 | clang-cross-${TARGET_ARCH} \ | ||
105 | " | ||
106 | DEPENDS:append:class-native = " clang-native" | ||
107 | |||
108 | SYSTEMD_SERVICE:${PN} = "android-tools-adbd.service" | ||
109 | |||
110 | # Find libbsd headers during native builds | ||
111 | CC:append:class-native = " -I${STAGING_INCDIR}" | ||
112 | CC:append:class-nativesdk = " -I${STAGING_INCDIR}" | ||
113 | |||
114 | PREREQUISITE_core = "libbase libsparse liblog libcutils" | ||
115 | TOOLS_TO_BUILD = "libcrypto_utils libadb libziparchive fastboot adb img2simg simg2img libbacktrace" | ||
116 | TOOLS_TO_BUILD:append:class-target = " adbd" | ||
117 | |||
118 | # Adb needs sys/capability.h, which is not available for native* | ||
119 | TOOLS:class-native = "boringssl fastboot ext4_utils mkbootimg" | ||
120 | TOOLS:class-nativesdk = "boringssl fastboot ext4_utils mkbootimg" | ||
121 | |||
122 | do_compile() { | ||
123 | |||
124 | case "${HOST_ARCH}" in | ||
125 | arm) | ||
126 | export android_arch=linux-arm | ||
127 | cpu=arm | ||
128 | deb_host_arch=arm | ||
129 | ;; | ||
130 | aarch64) | ||
131 | export android_arch=linux-arm64 | ||
132 | cpu=arm64 | ||
133 | deb_host_arch=arm64 | ||
134 | ;; | ||
135 | riscv64) | ||
136 | export android_arch=linux-riscv64 | ||
137 | ;; | ||
138 | mips|mipsel) | ||
139 | export android_arch=linux-mips | ||
140 | cpu=mips | ||
141 | deb_host_arch=mips | ||
142 | ;; | ||
143 | mips64|mips64el) | ||
144 | export android_arch=linux-mips64 | ||
145 | cpu=mips64 | ||
146 | deb_host_arch=mips64 | ||
147 | ;; | ||
148 | powerpc|powerpc64) | ||
149 | export android_arch=linux-ppc | ||
150 | ;; | ||
151 | i586|i686|x86_64) | ||
152 | export android_arch=linux-x86 | ||
153 | cpu=x86_64 | ||
154 | deb_host_arch=amd64 | ||
155 | ;; | ||
156 | esac | ||
157 | |||
158 | export SRCDIR=${S} | ||
159 | |||
160 | oe_runmake -f ${S}/external/boringssl/debian/libcrypto.mk -C ${S}/external/boringssl | ||
161 | oe_runmake -f ${S}/external/libunwind/debian/libunwind.mk -C ${S}/external/libunwind CPU=${cpu} | ||
162 | |||
163 | for tool in ${PREREQUISITE_core}; do | ||
164 | oe_runmake -f ${S}/system/core/debian/${tool}.mk -C ${S}/system/core | ||
165 | done | ||
166 | |||
167 | for i in `find ${S}/system/extras/debian/ -name "*.mk"`; do | ||
168 | oe_runmake -f $i -C ${S}/system/extras | ||
169 | done | ||
170 | |||
171 | for tool in ${TOOLS_TO_BUILD}; do | ||
172 | if [ "$tool" = "libbacktrace" ]; then | ||
173 | oe_runmake -f ${S}/system/core/debian/${tool}.mk -C ${S}/system/core DEB_HOST_ARCH=${deb_host_arch} | ||
174 | else | ||
175 | oe_runmake -f ${S}/system/core/debian/${tool}.mk -C ${S}/system/core | ||
176 | fi | ||
177 | done | ||
178 | |||
179 | } | ||
180 | |||
181 | do_install() { | ||
182 | if echo ${TOOLS_TO_BUILD} | grep -q "ext4_utils" ; then | ||
183 | install -D -p -m0755 ${S}/system/core/libsparse/simg_dump.py ${D}${bindir}/simg_dump | ||
184 | fi | ||
185 | |||
186 | if echo ${TOOLS_TO_BUILD} | grep -q "adb " ; then | ||
187 | install -d ${D}${bindir} | ||
188 | install -m0755 ${S}/debian/out/usr/lib/android/adb/adb ${D}${bindir} | ||
189 | fi | ||
190 | |||
191 | if echo ${TOOLS_TO_BUILD} | grep -q "adbd" ; then | ||
192 | install -d ${D}${bindir} | ||
193 | install -m0755 ${B}/adbd/adbd ${D}${bindir} | ||
194 | fi | ||
195 | |||
196 | # Outside the if statement to avoid errors during do_package | ||
197 | install -D -p -m0644 ${WORKDIR}/android-tools-adbd.service \ | ||
198 | ${D}${systemd_unitdir}/system/android-tools-adbd.service | ||
199 | |||
200 | if echo ${TOOLS_TO_BUILD} | grep -q "fastboot" ; then | ||
201 | install -d ${D}${bindir} | ||
202 | install -m0755 ${S}/debian/out/usr/bin/fastboot/fastboot ${D}${bindir} | ||
203 | fi | ||
204 | |||
205 | install -d ${D}${libdir}/android/ | ||
206 | install -m0755 ${S}/debian/out/usr/lib/android/*.so.* ${D}${libdir}/android/ | ||
207 | if echo ${TOOLS_TO_BUILD} | grep -q "mkbootimg" ; then | ||
208 | install -d ${D}${bindir} | ||
209 | install -m0755 ${B}/mkbootimg/mkbootimg ${D}${bindir} | ||
210 | fi | ||
211 | } | ||
212 | |||
213 | PACKAGES += "${PN}-fstools" | ||
214 | |||
215 | RDEPENDS:${BPN} = "${BPN}-conf p7zip" | ||
216 | |||
217 | FILES:${PN}-fstools = "\ | ||
218 | ${bindir}/ext2simg \ | ||
219 | ${bindir}/ext4fixup \ | ||
220 | ${bindir}/img2simg \ | ||
221 | ${bindir}/make_ext4fs \ | ||
222 | ${bindir}/simg2img \ | ||
223 | ${bindir}/simg2simg \ | ||
224 | ${bindir}/simg_dump \ | ||
225 | ${bindir}/mkuserimg \ | ||
226 | " | ||
227 | FILES:${PN} += "${libdir}/android ${libdir}/android/*" | ||
228 | |||
229 | BBCLASSEXTEND = "native" | ||