Skip to content

Commit c1fb163

Browse files
committed
Migrate to AOSPv14
Issues: 1. HVUI/Vulkan does not work on A14 yet. Reverted to GLES. 2. Updated wpa_supplicant does not connect to closed Wi-Fi networks. It was temporarily reverted to the A13 version. Signed-off-by: Roman Stratiienko <[email protected]>
1 parent c5a2a37 commit c1fb163

22 files changed

+1298
-207
lines changed

aosptree/vendor/devices-community/gd_rpi4/device.mk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ PRODUCT_VENDOR_PROPERTIES += \
6565
ro.hardware.vulkan=broadcom \
6666

6767
# Enable Vulkan backend for SKIA/HWUI
68-
TARGET_USES_VULKAN = true
68+
# TARGET_USES_VULKAN = true
6969

7070
# Bluetooth
7171
PRODUCT_VENDOR_PROPERTIES += \

manifests/glodroid.xml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
<remove-project name="platform/external/mesa3d" />
1212
<remove-project name="platform/external/v4l2_codec2" />
1313
<remove-project name="platform/external/drm_hwcomposer" />
14+
<remove-project name="platform/external/wpa_supplicant_8" />
1415

1516
<project path="glodroid" remote="glodroid" name="glodroid_configuration.git" groups="glodroid" revision="refs/tags/basedir-v0.9.0" />
1617
<project path="glodroid/configuration" remote="glodroid" name="glodroid_configuration.git" groups="glodroid" revision="1ba92aede3fccf6fb07ef3787a7bdd55f58e03fc" />
@@ -20,7 +21,7 @@
2021
<!-- gpu+display components (vendor) -->
2122
<project path="glodroid/vendor/minigbm" remote="aosp" name="platform/external/minigbm" groups="glodroid" revision="84b3a09ef0e620c1b2ec19c7626c327e68a847bc" />
2223
<project path="glodroid/vendor/drm_hwcomposer" remote="aosp" name="platform/external/drm_hwcomposer" groups="glodroid" revision="5de61b5e4fbf43b78b605dab68465aa6722930c4" />
23-
<project path="glodroid/vendor/mesa3d" remote="aosp" name="platform/external/mesa3d" groups="glodroid" revision="f88338f80127d8bbbb49269e2399fd9e7e460c5c" />
24+
<project path="glodroid/vendor/mesa3d" remote="aosp" name="platform/external/mesa3d" groups="glodroid" revision="9b0960cfe39414815b1dc5a786e6312639f49352" />
2425

2526
<!-- camera components (vendor) -->
2627
<project path="glodroid/vendor/libcamera" remote="libcamera" name="libcamera.git" groups="glodroid" revision="960d0c1e19feaf310321c906e14bd5410c6be629" />
@@ -45,11 +46,14 @@
4546
<project path="glodroid/vendor/glib/subprojects/proxy-libintl" remote="github" name="frida/proxy-libintl.git" groups="glodroid" revision="refs/tags/0.4" />
4647

4748
<!-- other components (vendor) -->
48-
<project path="glodroid/vendor/aospext" remote="glodroid" name="aospext.git" groups="glodroid" revision="03accdcd9e5f4dd08b9d9ad05c7f57ef4137b579" />
49+
<project path="glodroid/vendor/aospext" remote="glodroid" name="aospext.git" groups="glodroid" revision="7f85fd53d7a90239135b27e96643996e31744233" />
4950
<project path="glodroid/vendor/iio-sensors-hal" remote="glodroid" name="glodroid_forks.git" groups="glodroid" revision="refs/tags/iio-sensors-hal-v0.9.0" />
5051
<project path="glodroid/vendor/tinyhal" remote="github" name="CirrusLogic/tinyhal.git" groups="glodroid" revision="9c5df120b33ca51f05d4f997da659111ab63498e" />
5152
<project path="glodroid/vendor/libudev-zero" remote="glodroid" name="glodroid_forks.git" groups="glodroid" revision="refs/tags/libudev_zero-v0.8.2" />
5253

54+
<!-- Downgrade wpa_supplicant to Android-13 commit point. TODO: Remove this when the RPI4 WIFI issue is found/fixed -->
55+
<project path="external/wpa_supplicant_8" remote="aosp" name="platform/external/wpa_supplicant_8" revision="1d9ae9a55470b894973457e3a4892a8820ca1bd7" />
56+
5357
<!-- bootloader components (platform) -->
5458
<project path="glodroid/bootloader/u-boot" remote="github" name="u-boot/u-boot.git" groups="glodroid" revision="487e42f7bc5e685c9337890a38358581bb4f31bc" />
5559
<project path="glodroid/bootloader/atf" name="platform/external/arm-trusted-firmware" groups="glodroid" revision="a127b99d5a063c798d1c6d2e1d4791a630f78355" />

patches-aosp/build/soong/0001-GLODROID-Don-t-use-clang-tidy.patch

Lines changed: 0 additions & 29 deletions
This file was deleted.
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
From 13fed80854c281cc7eaf78e5848b10f5becb947a Mon Sep 17 00:00:00 2001
2+
From: Jooyung Han <[email protected]>
3+
Date: Tue, 26 Jul 2022 12:56:00 +0900
4+
Subject: [PATCH 1/3] Add netlink public header library
5+
6+
libwifi-hal-bcm has been using the header via LOCAL_C_INCLUDES. To
7+
convert libwifi-hal-bcm into a Soong module, the header is exposed as a
8+
header lib.
9+
10+
Bug: 239984067
11+
Test: m libwifi-hal-bcm
12+
Merged-In: I92e044565b291c003cff9ac580dd36299fab9851
13+
Change-Id: I92e044565b291c003cff9ac580dd36299fab9851
14+
(cherry picked from commit eb043d58c236676a019ff8579d46b06f83a6daa1)
15+
---
16+
Android.bp | 8 ++++++++
17+
1 file changed, 8 insertions(+)
18+
19+
diff --git a/Android.bp b/Android.bp
20+
index cbb1a90f..35cdb4f5 100644
21+
--- a/Android.bp
22+
+++ b/Android.bp
23+
@@ -26,3 +26,11 @@ license {
24+
],
25+
license_text: ["LICENSE"],
26+
}
27+
+
28+
+cc_library_headers {
29+
+ name: "libnetlink_iface_headers",
30+
+ vendor_available: true,
31+
+ export_include_dirs: [
32+
+ "src/drivers",
33+
+ ],
34+
+}
35+
--
36+
2.39.2
37+
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
From c5ccabd03d222c26b8a255f3e4c9b5ec3a002270 Mon Sep 17 00:00:00 2001
2+
From: Jeongik Cha <[email protected]>
3+
Date: Fri, 18 Nov 2022 15:09:34 +0900
4+
Subject: [PATCH 2/3] Decalre a soong module for hostapd manifest
5+
6+
Bug: 202992812
7+
Bug: 259516259
8+
Test: build
9+
Change-Id: Ibc2b7a0d66f6c07660dee96a6a3f7976687ce18e
10+
---
11+
hostapd/Android.bp | 6 ++++++
12+
1 file changed, 6 insertions(+)
13+
14+
diff --git a/hostapd/Android.bp b/hostapd/Android.bp
15+
index 2a252080..3194d369 100644
16+
--- a/hostapd/Android.bp
17+
+++ b/hostapd/Android.bp
18+
@@ -318,3 +318,9 @@ filegroup {
19+
],
20+
21+
}
22+
+
23+
+// This manifest can used by a vendor apex module for hostapd as well.
24+
+filegroup {
25+
+ name: "android.hardware.wifi.hostapd.xml",
26+
+ srcs: ["android.hardware.wifi.hostapd.xml"],
27+
+}
28+
--
29+
2.39.2
30+
Lines changed: 157 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,157 @@
1+
From 61b76bf4a6ee2a1b47aea2d47baa22cfe8e43568 Mon Sep 17 00:00:00 2001
2+
From: David Benjamin <[email protected]>
3+
Date: Mon, 13 Jun 2022 12:22:05 -0400
4+
Subject: [PATCH 3/3] Remove a host of incorrect OPENSSL_IS_BORINGSSL ifdefs
5+
6+
The <openssl/buf.h> include is neccessary in both OpenSSL and BoringSSL
7+
because the file uses BUF_MEM (IWYU). It's just that OpenSSL spells it
8+
<openssl/buffer.h>, not matching the type, so use the compatible
9+
spelling.
10+
11+
Additionally all the CHECKED_CAST and manual STACK_OF(T) definitions are
12+
calling into BoringSSL internals that we were only keeping around for
13+
compatible with wpa_supplicant's incorrect use of the APIs. The correct
14+
APIs are simply to just use the same code as OpenSSL and call the
15+
DEFINE_STACK_OF macros.
16+
17+
(tls_openssl_ocsp.c needs to be rewritten entirely later, as the use of
18+
<openssl/asn1t.h> is also quite dangerous, but I've left that alone for
19+
now.)
20+
21+
Test: treehugger
22+
Change-Id: Id923db6513f9e2833854322994aa3a113ee1579d
23+
---
24+
hs20/client/est.c | 28 +++-------------------------
25+
src/crypto/tls_openssl_ocsp.c | 8 +-------
26+
src/utils/http_curl.c | 23 -----------------------
27+
3 files changed, 4 insertions(+), 55 deletions(-)
28+
29+
diff --git a/hs20/client/est.c b/hs20/client/est.c
30+
index 97f91321..c3f27e1e 100644
31+
--- a/hs20/client/est.c
32+
+++ b/hs20/client/est.c
33+
@@ -17,9 +17,7 @@
34+
#include <openssl/x509.h>
35+
#include <openssl/x509v3.h>
36+
#include <openssl/opensslv.h>
37+
-#ifdef OPENSSL_IS_BORINGSSL
38+
-#include <openssl/buf.h>
39+
-#endif /* OPENSSL_IS_BORINGSSL */
40+
+#include <openssl/buffer.h>
41+
42+
#include "common.h"
43+
#include "utils/base64.h"
44+
@@ -220,9 +218,7 @@ typedef struct {
45+
} d;
46+
} AttrOrOID;
47+
48+
-#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(OPENSSL_IS_BORINGSSL)
49+
DEFINE_STACK_OF(AttrOrOID)
50+
-#endif
51+
52+
typedef struct {
53+
int type;
54+
@@ -340,30 +336,13 @@ static void add_csrattrs(struct hs20_osu_client *ctx, CsrAttrs *csrattrs,
55+
if (!csrattrs || ! csrattrs->attrs)
56+
return;
57+
58+
-#ifdef OPENSSL_IS_BORINGSSL
59+
- num = sk_num(CHECKED_CAST(_STACK *, STACK_OF(AttrOrOID) *,
60+
- csrattrs->attrs));
61+
- for (i = 0; i < num; i++) {
62+
- AttrOrOID *ao = sk_value(
63+
- CHECKED_CAST(_STACK *, const STACK_OF(AttrOrOID) *,
64+
- csrattrs->attrs), i);
65+
- switch (ao->type) {
66+
- case 0:
67+
- add_csrattrs_oid(ctx, ao->d.oid, exts);
68+
- break;
69+
- case 1:
70+
- add_csrattrs_attr(ctx, ao->d.attribute, exts);
71+
- break;
72+
- }
73+
- }
74+
-#else /* OPENSSL_IS_BORINGSSL */
75+
-#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(OPENSSL_IS_BORINGSSL)
76+
+#if OPENSSL_VERSION_NUMBER >= 0x10100000L
77+
num = sk_AttrOrOID_num(csrattrs->attrs);
78+
#else
79+
num = SKM_sk_num(AttrOrOID, csrattrs->attrs);
80+
#endif
81+
for (i = 0; i < num; i++) {
82+
-#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(OPENSSL_IS_BORINGSSL)
83+
+#if OPENSSL_VERSION_NUMBER >= 0x10100000L
84+
AttrOrOID *ao = sk_AttrOrOID_value(csrattrs->attrs, i);
85+
#else
86+
AttrOrOID *ao = SKM_sk_value(AttrOrOID, csrattrs->attrs, i);
87+
@@ -377,7 +356,6 @@ static void add_csrattrs(struct hs20_osu_client *ctx, CsrAttrs *csrattrs,
88+
break;
89+
}
90+
}
91+
-#endif /* OPENSSL_IS_BORINGSSL */
92+
}
93+
94+
95+
diff --git a/src/crypto/tls_openssl_ocsp.c b/src/crypto/tls_openssl_ocsp.c
96+
index b570bea0..a74e6f3d 100644
97+
--- a/src/crypto/tls_openssl_ocsp.c
98+
+++ b/src/crypto/tls_openssl_ocsp.c
99+
@@ -216,13 +216,7 @@ ASN1_SEQUENCE(BasicOCSPResponse) = {
100+
101+
IMPLEMENT_ASN1_FUNCTIONS(BasicOCSPResponse);
102+
103+
-#define sk_SingleResponse_num(sk) \
104+
-sk_num(CHECKED_CAST(_STACK *, STACK_OF(SingleResponse) *, sk))
105+
-
106+
-#define sk_SingleResponse_value(sk, i) \
107+
- ((SingleResponse *) \
108+
- sk_value(CHECKED_CAST(_STACK *, STACK_OF(SingleResponse) *, sk), (i)))
109+
-
110+
+DEFINE_STACK_OF(SingleResponse)
111+
112+
static char * mem_bio_to_str(BIO *out)
113+
{
114+
diff --git a/src/utils/http_curl.c b/src/utils/http_curl.c
115+
index 30b07f23..77d5b357 100644
116+
--- a/src/utils/http_curl.c
117+
+++ b/src/utils/http_curl.c
118+
@@ -433,28 +433,6 @@ ASN1_SEQUENCE(LogotypeExtn) = {
119+
120+
IMPLEMENT_ASN1_FUNCTIONS(LogotypeExtn);
121+
122+
-#ifdef OPENSSL_IS_BORINGSSL
123+
-#define sk_LogotypeInfo_num(st) \
124+
-sk_num(CHECKED_CAST(_STACK *, STACK_OF(LogotypeInfo) *, (st)))
125+
-#define sk_LogotypeInfo_value(st, i) (LogotypeInfo *) \
126+
-sk_value(CHECKED_CAST(_STACK *, const STACK_OF(LogotypeInfo) *, (st)), (i))
127+
-#define sk_LogotypeImage_num(st) \
128+
-sk_num(CHECKED_CAST(_STACK *, STACK_OF(LogotypeImage) *, (st)))
129+
-#define sk_LogotypeImage_value(st, i) (LogotypeImage *) \
130+
-sk_value(CHECKED_CAST(_STACK *, const STACK_OF(LogotypeImage) *, (st)), (i))
131+
-#define sk_LogotypeAudio_num(st) \
132+
-sk_num(CHECKED_CAST(_STACK *, STACK_OF(LogotypeAudio) *, (st)))
133+
-#define sk_LogotypeAudio_value(st, i) (LogotypeAudio *) \
134+
-sk_value(CHECK_CAST(_STACK *, const STACK_OF(LogotypeAudio) *, (st)), (i))
135+
-#define sk_HashAlgAndValue_num(st) \
136+
-sk_num(CHECKED_CAST(_STACK *, STACK_OF(HashAlgAndValue) *, (st)))
137+
-#define sk_HashAlgAndValue_value(st, i) (HashAlgAndValue *) \
138+
-sk_value(CHECKED_CAST(_STACK *, const STACK_OF(HashAlgAndValue) *, (st)), (i))
139+
-#define sk_ASN1_IA5STRING_num(st) \
140+
-sk_num(CHECKED_CAST(_STACK *, STACK_OF(ASN1_IA5STRING) *, (st)))
141+
-#define sk_ASN1_IA5STRING_value(st, i) (ASN1_IA5STRING *) \
142+
-sk_value(CHECKED_CAST(_STACK *, const STACK_OF(ASN1_IA5STRING) *, (st)), (i))
143+
-#else /* OPENSSL_IS_BORINGSSL */
144+
#if OPENSSL_VERSION_NUMBER < 0x10100000L
145+
#define sk_LogotypeInfo_num(st) SKM_sk_num(LogotypeInfo, (st))
146+
#define sk_LogotypeInfo_value(st, i) SKM_sk_value(LogotypeInfo, (st), (i))
147+
@@ -473,7 +451,6 @@ DEFINE_STACK_OF(LogotypeAudio)
148+
DEFINE_STACK_OF(HashAlgAndValue)
149+
DEFINE_STACK_OF(ASN1_IA5STRING)
150+
#endif
151+
-#endif /* OPENSSL_IS_BORINGSSL */
152+
153+
154+
static void add_logo(struct http_ctx *ctx, struct http_cert *hcert,
155+
--
156+
2.39.2
157+
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
From 2be0dae3f8fb3c912edb49dba2f2cd434b8d9401 Mon Sep 17 00:00:00 2001
2+
From: Roman Stratiienko <[email protected]>
3+
Date: Thu, 19 Oct 2023 03:37:01 +0300
4+
Subject: [PATCH] HWUI: Fix deadlock in graphics pipeline
5+
6+
Mutex lock() causes deadlock when the queue is empty.
7+
Regression is caused by b013c8dee3b3e897b3557206f2d6c75b8c9f2f84
8+
For some unknown reason, it is reproduced only on GloDroid :)
9+
So probably some other part of GD is to blame.
10+
Or, it is just a coincidence.
11+
12+
TODO: Do one more investigation attempt.
13+
14+
Change-Id: Ic981947babe62b83032e9ba1630cc0458c228f44
15+
Signed-off-by: Roman Stratiienko <[email protected]>
16+
---
17+
libs/hwui/renderthread/CanvasContext.cpp | 6 +++++-
18+
1 file changed, 5 insertions(+), 1 deletion(-)
19+
20+
diff --git a/libs/hwui/renderthread/CanvasContext.cpp b/libs/hwui/renderthread/CanvasContext.cpp
21+
index 16b35ffcabac..a9dde31e83e7 100644
22+
--- a/libs/hwui/renderthread/CanvasContext.cpp
23+
+++ b/libs/hwui/renderthread/CanvasContext.cpp
24+
@@ -586,7 +586,11 @@ void CanvasContext::draw(bool solelyTextureViewUpdates) {
25+
// not visible to IRenderPipeline much less FrameInfoVisualizer. And since this is
26+
// the thread we're primarily concerned about being responsive, this being too broad
27+
// shouldn't pose a performance issue.
28+
- std::scoped_lock lock(mFrameMetricsReporterMutex);
29+
+
30+
+// Causes deadlock when the queue is empty. Regression is caused by b013c8dee3b3e897b3557206f2d6c75b8c9f2f84
31+
+// For some unknown reason, it is reproduced only on GloDroid :) So probably some other part of GD is to blame. Or, it is just a coincidence.
32+
+// std::scoped_lock lock(mFrameMetricsReporterMutex);
33+
+
34+
drawResult = mRenderPipeline->draw(frame, windowDirty, dirty, mLightGeometry,
35+
&mLayerUpdateQueue, mContentDrawBounds, mOpaque,
36+
mLightInfo, mRenderNodes, &(profiler()), mBufferParams);
37+
--
38+
2.39.2
39+

0 commit comments

Comments
 (0)