Initial unified commit for Android 14, with TrebleDroid GSI target, syncing up to 20240208

This commit is contained in:
Andy CrossGate Yan
2024-02-17 16:46:38 +08:00
commit e9902a4450
281 changed files with 169698 additions and 0 deletions

View File

@@ -0,0 +1,75 @@
From 8c656a5c6d12c62d767ba210823db70cec5224b0 Mon Sep 17 00:00:00 2001
From: Andy CrossGate Yan <GeForce8800Ultra@gmail.com>
Date: Wed, 8 Dec 2021 07:04:53 +0000
Subject: [PATCH] Remove init.vndk-nodef.rc
This partially reverts "Deprecate VNDK-lite support from Legacy GSI".
Paired with https://github.com/LineageOS/android_system_core/commit/0b265e35ddf42638fa807f5349a10c40e3d46446, it kicks permissive devices into bootloader.
Given that GSI+permissive won't ever be a Lineage official scenario, revert this only on our side.
Thanks @Kethen for the insight!
Change-Id: I7c14fe5229e953f620bb225fa5c981752d0ac5f9
---
target/product/gsi/Android.mk | 13 -------------
target/product/gsi/init.gsi.rc | 2 --
target/product/gsi/init.vndk-nodef.rc | 3 ---
target/product/gsi_release.mk | 1 -
4 files changed, 19 deletions(-)
delete mode 100644 target/product/gsi/init.vndk-nodef.rc
diff --git a/target/product/gsi/Android.mk b/target/product/gsi/Android.mk
index 107c94f685..0ad39c3610 100644
--- a/target/product/gsi/Android.mk
+++ b/target/product/gsi/Android.mk
@@ -256,16 +256,3 @@ LOCAL_SYSTEM_EXT_MODULE := true
LOCAL_MODULE_RELATIVE_PATH := init
include $(BUILD_PREBUILT)
-
-
-include $(CLEAR_VARS)
-LOCAL_MODULE := init.vndk-nodef.rc
-LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0
-LOCAL_LICENSE_CONDITIONS := notice
-LOCAL_NOTICE_FILE := build/soong/licenses/LICENSE
-LOCAL_SRC_FILES := $(LOCAL_MODULE)
-LOCAL_MODULE_CLASS := ETC
-LOCAL_SYSTEM_EXT_MODULE := true
-LOCAL_MODULE_RELATIVE_PATH := gsi
-
-include $(BUILD_PREBUILT)
diff --git a/target/product/gsi/init.gsi.rc b/target/product/gsi/init.gsi.rc
index 69c8e467be..c6faba78d9 100644
--- a/target/product/gsi/init.gsi.rc
+++ b/target/product/gsi/init.gsi.rc
@@ -1,5 +1,3 @@
#
# Android init script for GSI required initialization
#
-
-import /system/system_ext/etc/gsi/init.vndk-${ro.vndk.version:-nodef}.rc
diff --git a/target/product/gsi/init.vndk-nodef.rc b/target/product/gsi/init.vndk-nodef.rc
deleted file mode 100644
index 1b141a05e7..0000000000
--- a/target/product/gsi/init.vndk-nodef.rc
+++ /dev/null
@@ -1,3 +0,0 @@
-on early-init
- # Reboot if BOARD_VNDK_VERSION is not defined
- exec - root -- /system/bin/reboot bootloader
diff --git a/target/product/gsi_release.mk b/target/product/gsi_release.mk
index 3b977927d1..7bade98ca1 100644
--- a/target/product/gsi_release.mk
+++ b/target/product/gsi_release.mk
@@ -62,7 +62,6 @@ PRODUCT_PACKAGES += com.android.apex.cts.shim.v1_with_prebuilts.flattened
PRODUCT_PACKAGES += \
gsi_skip_mount.cfg \
init.gsi.rc \
- init.vndk-nodef.rc \
# Overlay the GSI specific SystemUI setting
PRODUCT_PACKAGES += gsi_overlay_systemui
--
2.34.1

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,23 @@
From ae62c13bca7549786b4705d4fb7913ccceb6917e Mon Sep 17 00:00:00 2001
From: Andy CrossGate Yan <GeForce8800Ultra@gmail.com>
Date: Sun, 8 Aug 2021 09:29:32 +0000
Subject: [PATCH 2/9] treble: Set BOARD_EXT4_SHARE_DUP_BLOCKS explicitly
Change-Id: I725443154fabde548d2e6c1b072d34c27596c421
---
board-base.mk | 2 ++
1 file changed, 2 insertions(+)
diff --git a/board-base.mk b/board-base.mk
index 2cb5dbc..e493d1c 100644
--- a/board-base.mk
+++ b/board-base.mk
@@ -10,3 +10,5 @@ BOARD_ROOT_EXTRA_FOLDERS += bt_firmware sec_storage efs persist
BUILD_BROKEN_ELF_PREBUILT_PRODUCT_COPY_FILES := true
BOARD_ROOT_EXTRA_SYMLINKS := $(filter-out $(BOARD_ROOT_EXTRA_SYMLINKS),/mnt/vendor/persist:/persist)
+
+BOARD_EXT4_SHARE_DUP_BLOCKS := true
--
2.34.1

View File

@@ -0,0 +1,25 @@
From bb54a87ee1d14bd80308129c1ab38ad042d807a2 Mon Sep 17 00:00:00 2001
From: Andy CrossGate Yan <GeForce8800Ultra@gmail.com>
Date: Wed, 20 Oct 2021 11:30:25 +0000
Subject: [PATCH 3/9] treble: Set TARGET_NO_KERNEL_OVERRIDE
Taken from Lineage generic targets - skips building kernel cleanly
Change-Id: Id71d3a3aed56fd4e815a64ef4191b125fc5026ce
---
board-base.mk | 2 ++
1 file changed, 2 insertions(+)
diff --git a/board-base.mk b/board-base.mk
index e493d1c..9d1d45e 100644
--- a/board-base.mk
+++ b/board-base.mk
@@ -12,3 +12,5 @@ BUILD_BROKEN_ELF_PREBUILT_PRODUCT_COPY_FILES := true
BOARD_ROOT_EXTRA_SYMLINKS := $(filter-out $(BOARD_ROOT_EXTRA_SYMLINKS),/mnt/vendor/persist:/persist)
BOARD_EXT4_SHARE_DUP_BLOCKS := true
+
+TARGET_NO_KERNEL_OVERRIDE := true
--
2.34.1

View File

@@ -0,0 +1,40 @@
From c4cf51f21f0b23e57fd4eb49cce0056f459ebc65 Mon Sep 17 00:00:00 2001
From: Andy CrossGate Yan <GeForce8800Ultra@gmail.com>
Date: Tue, 11 Oct 2022 11:29:02 +0000
Subject: [PATCH 4/9] treble: Enable call recording
Change-Id: I57ca3604363547419a566b37b5151b6b30c46d28
---
.../dialer/callrecord/res/values/config.xml | 20 +++++++++++++++++++
1 file changed, 20 insertions(+)
create mode 100644 overlay-lineage/packages/apps/Dialer/java/com/android/dialer/callrecord/res/values/config.xml
diff --git a/overlay-lineage/packages/apps/Dialer/java/com/android/dialer/callrecord/res/values/config.xml b/overlay-lineage/packages/apps/Dialer/java/com/android/dialer/callrecord/res/values/config.xml
new file mode 100644
index 0000000..4cacde5
--- /dev/null
+++ b/overlay-lineage/packages/apps/Dialer/java/com/android/dialer/callrecord/res/values/config.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (C) 2021 The LineageOS Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<resources>
+ <bool name="call_recording_enabled">true</bool>
+ <integer name="call_recording_audio_source">4</integer>
+</resources>
--
2.34.1

View File

@@ -0,0 +1,46 @@
From 7295a2f4cd712111205bcbc356e468f2a8ad01fd Mon Sep 17 00:00:00 2001
From: Andy CrossGate Yan <GeForce8800Ultra@gmail.com>
Date: Sat, 5 Nov 2022 23:49:11 +0000
Subject: [PATCH 5/9] treble: Switch to MindTheGapps
Change-Id: I1b80d4c5176cbf4af21d147c71b0abce6027c7c7
---
generate.sh | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/generate.sh b/generate.sh
index 3527159..0bd6556 100644
--- a/generate.sh
+++ b/generate.sh
@@ -24,9 +24,15 @@ for part in a ab;do
extra_packages=""
vndk="vndk.mk"
optional_base=""
+
+ baseArch="$arch"
+ if [ "$arch" = "a64" ];then
+ baseArch="arm"
+ fi
+
if [ "$apps" == "gapps" ];then
apps_suffix="g"
- apps_script='$(call inherit-product, device/phh/treble/gapps.mk)'
+ apps_script='$(call inherit-product, vendor/gapps/'$baseArch'/'$baseArch'-vendor.mk)'
apps_name="with GApps"
fi
if [ "$apps" == "gapps-go" ];then
@@ -66,11 +72,6 @@ for part in a ab;do
target="lineage_${arch}_${part_suffix}${apps_suffix}${su_suffix}"
- baseArch="$arch"
- if [ "$arch" = "a64" ];then
- baseArch="arm"
- fi
-
zygote=32
if [ "$arch" = "arm64" ];then
zygote=64_32
--
2.34.1

View File

@@ -0,0 +1,35 @@
From 86cd9fa8131d6a7534b7ee7944e7ac177d032442 Mon Sep 17 00:00:00 2001
From: Andy CrossGate Yan <GeForce8800Ultra@gmail.com>
Date: Tue, 22 Nov 2022 00:36:15 +0000
Subject: [PATCH 6/9] treble: Stop securing ADB
Seems to kill USB Debugging altogether on certain devices,
and unrelated to SN anyway
Build-time macro coupled with vendor/lineage might do better...
Change-Id: I0215b3ed970dd53a124f48e30ca2cf4b0c6d2899
---
rw-system.sh | 3 ---
1 file changed, 3 deletions(-)
diff --git a/rw-system.sh b/rw-system.sh
index 358f232..e631b64 100644
--- a/rw-system.sh
+++ b/rw-system.sh
@@ -793,13 +793,10 @@ if [ -f /system/phh/secure ] || [ -f /metadata/phh/secure ];then
resetprop_phh ro.boot.veritymode enforcing
resetprop_phh ro.boot.warranty_bit 0
resetprop_phh ro.warranty_bit 0
- resetprop_phh ro.debuggable 0
resetprop_phh ro.secure 1
resetprop_phh ro.build.type user
resetprop_phh ro.build.selinux 0
- resetprop_phh ro.adb.secure 1
-
# Hide system/xbin/su
mount /mnt/phh/empty_dir /system/xbin
mount /mnt/phh/empty_dir /system/app/me.phh.superuser
--
2.34.1

View File

@@ -0,0 +1,49 @@
From 211c16eca1949b5813b7e4d65eaa0fa8cdeb2b01 Mon Sep 17 00:00:00 2001
From: Andy CrossGate Yan <GeForce8800Ultra@gmail.com>
Date: Thu, 29 Dec 2022 15:12:03 +0000
Subject: [PATCH 7/9] treble: Securize on-demand
Status is stored in /metadata and controlled by persist prop
Change-Id: I8069b6f471ad87ab34c18b743689ab3584cee35b
---
phh-prop-handler.sh | 14 ++++++++++++++
vndk.rc | 3 +++
2 files changed, 17 insertions(+)
diff --git a/phh-prop-handler.sh b/phh-prop-handler.sh
index aea5bb0..0020d21 100644
--- a/phh-prop-handler.sh
+++ b/phh-prop-handler.sh
@@ -279,3 +279,17 @@ if [ "$1" == "persist.bluetooth.system_audio_hal.enabled" ]; then
restartAudio
exit
fi
+
+if [ "$1" == "persist.sys.phh.securize" ];then
+ if [[ "$prop_value" != "true" && "$prop_value" != "false" ]]; then
+ exit 1
+ fi
+
+ if [[ "$prop_value" == "true" ]]; then
+ mkdir /metadata/phh
+ touch /metadata/phh/secure
+ else
+ rm /metadata/phh/secure
+ fi
+ exit
+fi
diff --git a/vndk.rc b/vndk.rc
index 3029abf..d75bc9e 100644
--- a/vndk.rc
+++ b/vndk.rc
@@ -102,3 +102,6 @@ service watchdogd-gsi /system/bin/watchdogd 10 20
class core
oneshot
seclabel u:r:watchdogd:s0
+
+on property:persist.sys.phh.securize=*
+ exec u:r:phhsu_daemon:s0 root -- /system/bin/phh-prop-handler.sh "persist.sys.phh.securize"
--
2.34.1

View File

@@ -0,0 +1,46 @@
From 985159eedef9f48dececcef108b9bee809adef3b Mon Sep 17 00:00:00 2001
From: Andy CrossGate Yan <GeForce8800Ultra@gmail.com>
Date: Wed, 22 Mar 2023 23:37:05 +0000
Subject: [PATCH 8/9] treble: Also use /data/adb for securize status
Change-Id: I778f2be5407ae0a548a098c72031cce9be83cf96
---
phh-prop-handler.sh | 5 ++++-
rw-system.sh | 2 +-
2 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/phh-prop-handler.sh b/phh-prop-handler.sh
index 0020d21..750f1eb 100644
--- a/phh-prop-handler.sh
+++ b/phh-prop-handler.sh
@@ -286,10 +286,13 @@ if [ "$1" == "persist.sys.phh.securize" ];then
fi
if [[ "$prop_value" == "true" ]]; then
- mkdir /metadata/phh
+ mkdir -p /metadata/phh
touch /metadata/phh/secure
+ mkdir -p /data/adb/phh
+ touch /data/adb/phh/secure
else
rm /metadata/phh/secure
+ rm /data/adb/phh/secure
fi
exit
fi
diff --git a/rw-system.sh b/rw-system.sh
index e631b64..c5df982 100644
--- a/rw-system.sh
+++ b/rw-system.sh
@@ -756,7 +756,7 @@ copyprop() {
resetprop_phh "$1" "$(getprop "$2")"
fi
}
-if [ -f /system/phh/secure ] || [ -f /metadata/phh/secure ];then
+if [ -f /system/phh/secure ] || [ -f /metadata/phh/secure ] || [ -f /data/adb/phh/secure ];then
copyprop ro.build.device ro.vendor.build.device
copyprop ro.system.build.fingerprint ro.vendor.build.fingerprint
copyprop ro.bootimage.build.fingerprint ro.vendor.build.fingerprint
--
2.34.1

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,87 @@
From 10c70671dc889ac496c433ee312a5b7259bed22e Mon Sep 17 00:00:00 2001
From: Victor Bo <bvoid@yandex.ru>
Date: Wed, 3 Mar 2021 06:31:17 -0500
Subject: [PATCH] Restore /sbin for Magisk compatibility
Squash of:
- Revert "Do not create /sbin"
- Revert "Remove sbin from fs_config.cpp"
- add /sbin to the PATH
Change-Id: I1224c9b64ce8eb14f7d15c8441c0633a7e6a20de
---
CleanSpec.mk | 2 --
libcutils/fs_config.cpp | 3 +++
rootdir/Android.mk | 2 +-
rootdir/init.environ.rc.in | 1 +
4 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/CleanSpec.mk b/CleanSpec.mk
index 0a534a2bd..81150a0fa 100644
--- a/CleanSpec.mk
+++ b/CleanSpec.mk
@@ -80,8 +80,6 @@ $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/etc/vndksp.libraries.txt)
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/recovery/root/)
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/root/sbin/charger)
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/recovery/root/sbin/charger)
-$(call add-clean-step, rm -rf $(PRODUCT_OUT)/root/sbin)
-$(call add-clean-step, rm -rf $(PRODUCT_OUT)/recovery/root/sbin)
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/product_services)
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/product_services.img)
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/product_services)
diff --git a/libcutils/fs_config.cpp b/libcutils/fs_config.cpp
index 8aadc3bb7..5535425e2 100644
--- a/libcutils/fs_config.cpp
+++ b/libcutils/fs_config.cpp
@@ -80,6 +80,7 @@ static const struct fs_path_config android_dirs[] = {
{ 00771, AID_SYSTEM, AID_SYSTEM, 0, "data" },
{ 00755, AID_ROOT, AID_SYSTEM, 0, "mnt" },
{ 00751, AID_ROOT, AID_SHELL, 0, "product/bin" },
+ { 00750, AID_ROOT, AID_SHELL, 0, "sbin" },
{ 00751, AID_ROOT, AID_SHELL, 0, "product/apex/*/bin" },
{ 00777, AID_ROOT, AID_ROOT, 0, "sdcard" },
{ 00751, AID_ROOT, AID_SDCARD_R, 0, "storage" },
@@ -168,6 +169,7 @@ static const struct fs_path_config android_files[] = {
{ 00600, AID_ROOT, AID_ROOT, 0, "system_ext/build.prop" },
{ 00444, AID_ROOT, AID_ROOT, 0, system_ext_conf_dir + 1 },
{ 00444, AID_ROOT, AID_ROOT, 0, system_ext_conf_file + 1 },
+ { 00750, AID_ROOT, AID_SHELL, 0, "sbin/fs_mgr" },
{ 00755, AID_ROOT, AID_SHELL, 0, "system/bin/crash_dump32" },
{ 00755, AID_ROOT, AID_SHELL, 0, "system/bin/crash_dump64" },
{ 00755, AID_ROOT, AID_SHELL, 0, "system/bin/debuggerd" },
@@ -222,6 +224,7 @@ static const struct fs_path_config android_files[] = {
{ 00750, AID_ROOT, AID_SHELL, 0, "init*" },
{ 00755, AID_ROOT, AID_SHELL, 0, "odm/bin/*" },
{ 00755, AID_ROOT, AID_SHELL, 0, "product/bin/*" },
+ { 00750, AID_ROOT, AID_SHELL, 0, "sbin/*" },
{ 00755, AID_ROOT, AID_SHELL, 0, "product/apex/*bin/*" },
{ 00755, AID_ROOT, AID_SHELL, 0, "system/bin/*" },
{ 00755, AID_ROOT, AID_SHELL, 0, "system/xbin/*" },
diff --git a/rootdir/Android.mk b/rootdir/Android.mk
index 3362872c0..1b686c38f 100644
--- a/rootdir/Android.mk
+++ b/rootdir/Android.mk
@@ -91,7 +91,7 @@ endif
#
# create some directories (some are mount points) and symlinks
LOCAL_POST_INSTALL_CMD := mkdir -p $(addprefix $(TARGET_ROOT_OUT)/, \
- dev proc sys system data data_mirror odm oem acct config storage mnt apex debug_ramdisk \
+ sbin dev proc sys system data data_mirror odm oem acct config storage mnt apex debug_ramdisk \
linkerconfig second_stage_resources postinstall $(BOARD_ROOT_EXTRA_FOLDERS)); \
ln -sf /system/bin $(TARGET_ROOT_OUT)/bin; \
ln -sf /system/etc $(TARGET_ROOT_OUT)/etc; \
diff --git a/rootdir/init.environ.rc.in b/rootdir/init.environ.rc.in
index bf6e986c4..090fa5a78 100644
--- a/rootdir/init.environ.rc.in
+++ b/rootdir/init.environ.rc.in
@@ -10,6 +10,7 @@ on early-init
export ANDROID_TZDATA_ROOT /apex/com.android.tzdata
export EXTERNAL_STORAGE /sdcard
export ASEC_MOUNTPOINT /mnt/asec
+ export PATH /sbin:/product/bin:/apex/com.android.runtime/bin:/apex/com.android.art/bin:/system_ext/bin:/system/bin:/system/xbin:/odm/bin:/vendor/bin:/vendor/xbin
%EXPORT_GLOBAL_ASAN_OPTIONS%
%EXPORT_GLOBAL_GCOV_OPTIONS%
%EXPORT_GLOBAL_CLANG_COVERAGE_OPTIONS%
--
2.34.1

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,45 @@
From 3e4384c994002a3164ece52d9a942d6c3451feb1 Mon Sep 17 00:00:00 2001
From: AndyCGYan <GeForce8800Ultra@gmail.com>
Date: Sun, 3 Mar 2019 14:07:33 +0800
Subject: [PATCH 1/2] build_soong: Disable generated_kernel_headers
...but done in a way so that there's no need to remove generated_kernel_headers from individual projects - thanks @ExpressLuke
Change-Id: I630857cec208f1830e776bf5031d7bb9bc4435d0
---
build/soong/Android.bp | 12 ------------
1 file changed, 12 deletions(-)
diff --git a/build/soong/Android.bp b/build/soong/Android.bp
index 2a21c5c0..417fac02 100644
--- a/build/soong/Android.bp
+++ b/build/soong/Android.bp
@@ -20,9 +20,6 @@ bootstrap_go_package {
lineage_generator {
name: "generated_kernel_includes",
- // The headers make command
- cmd: "$(PATH_OVERRIDE_SOONG) $(KERNEL_MAKE_CMD) $(KERNEL_MAKE_FLAGS) -C $(TARGET_KERNEL_SOURCE) O=$(KERNEL_BUILD_OUT_PREFIX)$(genDir) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) headers_install",
-
// Directories that can be imported by a cc_* module generated_headers property
export_include_dirs: [
"usr/audio/include/uapi",
@@ -31,15 +28,6 @@ lineage_generator {
"usr/include/audio/include/uapi",
"usr/techpack/audio/include",
],
-
- // Sources for dependency tracking
- dep_root: "$(TARGET_KERNEL_SOURCE)",
- dep_files: [
- "Makefile",
- "include/**/*",
- "arch/$(KERNEL_ARCH)/include/**/*",
- "techpack/audio/include/**/*",
- ],
}
cc_defaults {
--
2.34.1

View File

@@ -0,0 +1,34 @@
From c942de76b74fa53e3b3983d17444c051a8a38dcc Mon Sep 17 00:00:00 2001
From: Andy CrossGate Yan <GeForce8800Ultra@gmail.com>
Date: Tue, 19 Oct 2021 15:48:43 +0000
Subject: [PATCH 2/2] vendor_lineage: Disable ADB authentication
Change-Id: I4370583ecab1c88ef6f42e29d3eaa52c24d13f09
---
config/common.mk | 5 -----
1 file changed, 5 deletions(-)
diff --git a/config/common.mk b/config/common.mk
index 00d0a416..c9930600 100644
--- a/config/common.mk
+++ b/config/common.mk
@@ -13,16 +13,11 @@ PRODUCT_SYSTEM_DEFAULT_PROPERTIES += \
ro.com.google.clientidbase=$(PRODUCT_GMS_CLIENTID_BASE)
endif
-ifeq ($(TARGET_BUILD_VARIANT),eng)
# Disable ADB authentication
PRODUCT_SYSTEM_DEFAULT_PROPERTIES += ro.adb.secure=0
-else
-# Enable ADB authentication
-PRODUCT_SYSTEM_DEFAULT_PROPERTIES += ro.adb.secure=1
# Disable extra StrictMode features on all non-engineering builds
PRODUCT_SYSTEM_DEFAULT_PROPERTIES += persist.sys.strictmode.disable=true
-endif
# Backup Tool
PRODUCT_COPY_FILES += \
--
2.34.1