From bfafeec006a22798d0e501751487c01a004a0ada Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Wed, 17 Aug 2022 21:05:47 -0400 Subject: [PATCH 1/7] gsi: Build ThemePicker --- device.mk | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/device.mk b/device.mk index 6296c8d..1b59ea1 100644 --- a/device.mk +++ b/device.mk @@ -49,6 +49,10 @@ PRODUCT_PACKAGES += \ PRODUCT_PACKAGES += \ UnifiedNlp +# ThemePicker (for Launcher3) +PRODUCT_PACKAGES += \ + ThemePicker + # Enable ro.adb.secure on userdebug and user ifeq (,$(filter eng,$(TARGET_BUILD_VARIANT))) PRODUCT_SYSTEM_EXT_PROPERTIES += \ From 7cefc97acbc35355739227cc34a055f21e90ae4c Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Wed, 17 Aug 2022 21:06:09 -0400 Subject: [PATCH 2/7] gsi: There is no relaxed artifact path anymore --- device.mk | 3 --- 1 file changed, 3 deletions(-) diff --git a/device.mk b/device.mk index 1b59ea1..9934a8a 100644 --- a/device.mk +++ b/device.mk @@ -19,9 +19,6 @@ PRODUCT_INSTALL_DEBUG_POLICY_TO_SYSTEM_EXT := # Enable dynamically-sized images PRODUCT_USE_DYNAMIC_PARTITION_SIZE := true -# Relaxed artifact requirements (mirror AOSP GSI) -PRODUCT_ENFORCE_ARTIFACT_PATH_REQUIREMENTS := relaxed - # Soong namespaces PRODUCT_SOONG_NAMESPACES += device/peter/gsi From 37bc1ed46972c93c2b18fafd313b8211c7e3c12c Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Thu, 18 Aug 2022 10:31:16 -0400 Subject: [PATCH 3/7] gsi: Convert overlays to RROs and add Launcher3 overlay --- device.mk | 7 +++++-- overlay/GsiFrameworkResTarget/Android.bp | 5 +++++ overlay/GsiFrameworkResTarget/AndroidManifest.xml | 8 ++++++++ .../res => GsiFrameworkResTarget}/res/values/config.xml | 0 .../res/xml/config_webview_packages.xml | 0 overlay/GsiLauncher3Target/Android.bp | 5 +++++ overlay/GsiLauncher3Target/AndroidManifest.xml | 8 ++++++++ overlay/GsiLauncher3Target/res/values/config.xml | 4 ++++ 8 files changed, 35 insertions(+), 2 deletions(-) create mode 100644 overlay/GsiFrameworkResTarget/Android.bp create mode 100644 overlay/GsiFrameworkResTarget/AndroidManifest.xml rename overlay/{frameworks/base/core/res => GsiFrameworkResTarget}/res/values/config.xml (100%) rename overlay/{frameworks/base/core/res => GsiFrameworkResTarget}/res/xml/config_webview_packages.xml (100%) create mode 100644 overlay/GsiLauncher3Target/Android.bp create mode 100644 overlay/GsiLauncher3Target/AndroidManifest.xml create mode 100644 overlay/GsiLauncher3Target/res/values/config.xml diff --git a/device.mk b/device.mk index 9934a8a..a7df43a 100644 --- a/device.mk +++ b/device.mk @@ -23,7 +23,9 @@ PRODUCT_USE_DYNAMIC_PARTITION_SIZE := true PRODUCT_SOONG_NAMESPACES += device/peter/gsi # Overlay -PRODUCT_PACKAGE_OVERLAYS += device/peter/gsi/overlay +PRODUCT_PACKAGES += \ + GsiFrameworkResTarget \ + GsiLauncher3Target # Device-specific overlays from phhusson include vendor/hardware_overlay/overlay.mk @@ -46,8 +48,9 @@ PRODUCT_PACKAGES += \ PRODUCT_PACKAGES += \ UnifiedNlp -# ThemePicker (for Launcher3) +# Launcher3 PRODUCT_PACKAGES += \ + Launcher3QuickStep \ ThemePicker # Enable ro.adb.secure on userdebug and user diff --git a/overlay/GsiFrameworkResTarget/Android.bp b/overlay/GsiFrameworkResTarget/Android.bp new file mode 100644 index 0000000..1903cda --- /dev/null +++ b/overlay/GsiFrameworkResTarget/Android.bp @@ -0,0 +1,5 @@ +runtime_resource_overlay { + name: "GsiFrameworkResTarget", + sdk_version: "current", + product_specific: true, +} diff --git a/overlay/GsiFrameworkResTarget/AndroidManifest.xml b/overlay/GsiFrameworkResTarget/AndroidManifest.xml new file mode 100644 index 0000000..f2f4250 --- /dev/null +++ b/overlay/GsiFrameworkResTarget/AndroidManifest.xml @@ -0,0 +1,8 @@ + + + + diff --git a/overlay/frameworks/base/core/res/res/values/config.xml b/overlay/GsiFrameworkResTarget/res/values/config.xml similarity index 100% rename from overlay/frameworks/base/core/res/res/values/config.xml rename to overlay/GsiFrameworkResTarget/res/values/config.xml diff --git a/overlay/frameworks/base/core/res/res/xml/config_webview_packages.xml b/overlay/GsiFrameworkResTarget/res/xml/config_webview_packages.xml similarity index 100% rename from overlay/frameworks/base/core/res/res/xml/config_webview_packages.xml rename to overlay/GsiFrameworkResTarget/res/xml/config_webview_packages.xml diff --git a/overlay/GsiLauncher3Target/Android.bp b/overlay/GsiLauncher3Target/Android.bp new file mode 100644 index 0000000..c22719e --- /dev/null +++ b/overlay/GsiLauncher3Target/Android.bp @@ -0,0 +1,5 @@ +runtime_resource_overlay { + name: "GsiLauncher3Target", + sdk_version: "current", + product_specific: true, +} diff --git a/overlay/GsiLauncher3Target/AndroidManifest.xml b/overlay/GsiLauncher3Target/AndroidManifest.xml new file mode 100644 index 0000000..2f9b446 --- /dev/null +++ b/overlay/GsiLauncher3Target/AndroidManifest.xml @@ -0,0 +1,8 @@ + + + + diff --git a/overlay/GsiLauncher3Target/res/values/config.xml b/overlay/GsiLauncher3Target/res/values/config.xml new file mode 100644 index 0000000..ed2d281 --- /dev/null +++ b/overlay/GsiLauncher3Target/res/values/config.xml @@ -0,0 +1,4 @@ + + + com.android.wallpaper + From 7406e20839808cc54ea6bbfa721cac24730847f2 Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Thu, 18 Aug 2022 11:32:55 -0400 Subject: [PATCH 4/7] gsi: Make icons round by default --- overlay/GsiFrameworkResTarget/res/values/config.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/overlay/GsiFrameworkResTarget/res/values/config.xml b/overlay/GsiFrameworkResTarget/res/values/config.xml index b4a3cf2..b5d6479 100644 --- a/overlay/GsiFrameworkResTarget/res/values/config.xml +++ b/overlay/GsiFrameworkResTarget/res/values/config.xml @@ -21,6 +21,8 @@ true true + + "M50 0A50 50,0,1,1,50 100A50 50,0,1,1,50 0" com.android.wallpaperpicker true From 53def4f63d6bab425fa8d75502cc7179a1d35fb2 Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Sat, 20 Aug 2022 16:00:10 -0400 Subject: [PATCH 5/7] gsi: Add vendor/foss --- device.mk | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/device.mk b/device.mk index a7df43a..319ed33 100644 --- a/device.mk +++ b/device.mk @@ -45,8 +45,7 @@ PRODUCT_PACKAGES += \ OpenEUICC # vendor/foss -PRODUCT_PACKAGES += \ - UnifiedNlp +include vendor/foss/apps.mk # Launcher3 PRODUCT_PACKAGES += \ From 2ff6ca6d55e95f40612f39c54e7b6c8f574d05e2 Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Sat, 20 Aug 2022 16:02:36 -0400 Subject: [PATCH 6/7] gsi: overlay: Add Bromite as allowed webview impl --- .../GsiFrameworkResTarget/res/xml/config_webview_packages.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/overlay/GsiFrameworkResTarget/res/xml/config_webview_packages.xml b/overlay/GsiFrameworkResTarget/res/xml/config_webview_packages.xml index ca9b6f6..a503b19 100644 --- a/overlay/GsiFrameworkResTarget/res/xml/config_webview_packages.xml +++ b/overlay/GsiFrameworkResTarget/res/xml/config_webview_packages.xml @@ -29,4 +29,6 @@ + + From d6e8edf497032277a94923248619995915ddee64 Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Sun, 21 Aug 2022 17:17:56 -0400 Subject: [PATCH 7/7] gsi: Include vendor/foss makefile * and move config_webview_packages to foss overlay instead of the device overlay --- device.mk | 2 +- .../res/xml/config_webview_packages.xml | 34 ------------------- 2 files changed, 1 insertion(+), 35 deletions(-) delete mode 100644 overlay/GsiFrameworkResTarget/res/xml/config_webview_packages.xml diff --git a/device.mk b/device.mk index 319ed33..ff254f0 100644 --- a/device.mk +++ b/device.mk @@ -45,7 +45,7 @@ PRODUCT_PACKAGES += \ OpenEUICC # vendor/foss -include vendor/foss/apps.mk +include vendor/foss/foss.mk # Launcher3 PRODUCT_PACKAGES += \ diff --git a/overlay/GsiFrameworkResTarget/res/xml/config_webview_packages.xml b/overlay/GsiFrameworkResTarget/res/xml/config_webview_packages.xml deleted file mode 100644 index a503b19..0000000 --- a/overlay/GsiFrameworkResTarget/res/xml/config_webview_packages.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - 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 - - - - - -