Major overhaul

More automation, less manual steps
Credits to @Magendanz for many of the ideas!
This commit is contained in:
Andy CrossGate Yan 2020-04-13 11:48:05 +00:00
commit feb0e4bf2a
16 changed files with 1225 additions and 0 deletions

27
README.md Normal file
View File

@ -0,0 +1,27 @@
## Building PHH-based LineageOS GSIs ##
To get started with building LineageOS GSI, you'll need to get familiar with [Git and Repo](https://source.android.com/source/using-repo.html) as well as [How to build a GSI](https://github.com/phhusson/treble_experimentations/wiki/How-to-build-a-GSI%3F).
First, open a new Terminal window, which defaults to your home directory. Clone the modified treble_experimentations repo there:
git clone https://github.com/AndyCGYan/treble_experimentations
Create a new working directory for your LineageOS build and navigate to it:
mkdir lineage-16.x-build-gsi; cd lineage-16.x-build-gsi
Initialize your LineageOS workspace:
repo init -u https://github.com/LineageOS/android.git -b lineage-16.0
Clone the modified treble patches and this repo:
git clone https://github.com/AndyCGYan/treble_patches -b lineage-16.0
git clone https://github.com/AndyCGYan/treble_build_los -b lineage-16.0
Finally, start the build script:
bash treble_build_los/buildbot_treble.sh
Be sure to update the cloned repos from time to time!

107
buildbot_treble.sh Normal file
View File

@ -0,0 +1,107 @@
#!/bin/bash
echo ""
echo "LineageOS 16.x Treble Buildbot"
echo "ATTENTION: this script syncs repo on each run"
echo "Executing in 5 seconds - CTRL-C to exit"
echo ""
sleep 5
START=`date +%s`
BUILD_DATE="$(date +%Y%m%d)"
BL=$PWD/treble_build_los
echo "Preparing local manifest"
mkdir -p .repo/local_manifests
cp $BL/manifest.xml .repo/local_manifests/manifest.xml
echo ""
echo "Syncing repos"
repo sync -c --force-sync --no-clone-bundle --no-tags -j$(nproc --all)
echo ""
echo "Setting up build environment"
source build/envsetup.sh &> /dev/null
echo ""
echo "Applying PHH patches"
cd frameworks/base
git revert e0a5469cf5a2345fae7e81d16d717d285acd3a6e --no-edit # FODCircleView: defer removal to next re-layout
git revert 817541a8353014e40fa07a1ee27d9d2f35ea2c16 --no-edit # Initial support for in-display fingerprint sensors
cd ../..
rm -f device/*/sepolicy/common/private/genfs_contexts
cd device/phh/treble
git clean -fdx
bash generate.sh lineage
cd ../../..
bash ~/treble_experimentations/apply-patches.sh treble_patches
echo ""
echo "Applying universal patches"
cd frameworks/base
git am $BL/patches/0001-Disable-vendor-mismatch-warning.patch
git am $BL/patches/0001-Keyguard-Show-shortcuts-by-default.patch
git am $BL/patches/0001-core-Add-support-for-MicroG.patch
cd ../..
cd lineage-sdk
git am $BL/patches/0001-sdk-Invert-per-app-stretch-to-fullscreen.patch
cd ..
cd packages/apps/LineageParts
git am $BL/patches/0001-LineageParts-Invert-per-app-stretch-to-fullscreen.patch
cd ../../..
cd vendor/lineage
git am $BL/patches/0001-vendor_lineage-Log-privapp-permissions-whitelist-vio.patch
cd ../..
echo ""
echo "Applying GSI-specific patches"
cd build/make
git am $BL/patches/0001-Revert-Enable-dyanmic-image-size-for-GSI.patch
cd ../..
cd device/phh/treble
git revert 82b15278bad816632dcaeaed623b569978e9840d --no-edit # Update lineage.mk for LineageOS 16.0
git am $BL/patches/0001-Remove-fsck-SELinux-labels.patch
git am $BL/patches/0001-treble-Add-overlay-lineage.patch
git am $BL/patches/0001-treble-Don-t-specify-config_wallpaperCropperPackage.patch
git am $BL/patches/0001-Increase-system-partition-size-for-arm_ab.patch
cd ../../..
cd external/tinycompress
git revert fbe2bd5c3d670234c3c92f875986acc148e6d792 --no-edit # tinycompress: Use generated kernel headers
cd ../..
cd vendor/lineage
git am $BL/patches/0001-build_soong-Disable-generated_kernel_headers.patch
cd ../..
cd vendor/qcom/opensource/cryptfs_hw
git revert 6a3fc11bcc95d1abebb60e5d714adf75ece83102 --no-edit # cryptfs_hw: Use generated kernel headers
git am $BL/patches/0001-Header-hack-to-compile-for-8974.patch
cd ../../../..
echo ""
echo "CHECK PATCH STATUS NOW!"
sleep 5
echo ""
export WITHOUT_CHECK_API=true
export WITH_SU=true
mkdir -p ~/build-output/
buildVariant() {
lunch ${1}-userdebug
make installclean
make -j$(nproc --all) systemimage
make vndk-test-sepolicy
mv $OUT/system.img ~/build-output/lineage-16.0-$BUILD_DATE-UNOFFICIAL-${1}.img
}
buildVariant treble_arm_avN
buildVariant treble_arm_bvN
buildVariant treble_a64_avN
buildVariant treble_a64_bvN
buildVariant treble_arm64_avN
buildVariant treble_arm64_bvN
ls ~/build-output | grep 'lineage'
END=`date +%s`
ELAPSEDM=$(($(($END-$START))/60))
ELAPSEDS=$(($(($END-$START))-$ELAPSEDM*60))
echo "Buildbot completed in $ELAPSEDM minutes and $ELAPSEDS seconds"
echo ""

9
manifest.xml Normal file
View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="phhusson/vendor_hardware_overlay" path="vendor/hardware_overlay" remote="github" revision="pie" />
<project name="phhusson/device_phh_treble" path="device/phh/treble" remote="github" revision="android-9.0" />
<project name="phhusson/vendor_vndk" path="vendor/vndk" remote="github" revision="master" />
<project name="phhusson/vendor_vndk-tests" path="vendor/vndk-tests" remote="github" revision="master" />
<project name="phhusson/vendor_interfaces" path="vendor/interfaces" remote="github" revision="pie" />
<project name="phhusson/vendor_magisk" path="vendor/magisk" remote="github" revision="master" />
</manifest>

View File

@ -0,0 +1,28 @@
From 7cb0be20c75a47e2f8b5849bc3d8485222bcafbe Mon Sep 17 00:00:00 2001
From: Andy CrossGate Yan <GeForce8800Ultra@gmail.com>
Date: Thu, 5 Apr 2018 10:01:19 +0800
Subject: [PATCH] Disable vendor mismatch warning
Change-Id: Ieb8fe91e2f02462f074312ed0f4885d183e9780b
---
services/core/java/com/android/server/am/ActivityManagerService.java | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java
index 7274c80..0d1a92f 100644
--- a/services/core/java/com/android/server/am/ActivityManagerService.java
+++ b/services/core/java/com/android/server/am/ActivityManagerService.java
@@ -14356,8 +14356,8 @@ public class ActivityManagerService extends IActivityManager.Stub
}
if (!Build.isBuildConsistent()) {
- Slog.e(TAG, "Build fingerprint is not consistent, warning user");
- mUiHandler.obtainMessage(SHOW_FINGERPRINT_ERROR_UI_MSG).sendToTarget();
+ Slog.e(TAG, "Build fingerprint is not consistent");
+ // Do not emit warning about vendor mismatch
}
long ident = Binder.clearCallingIdentity();
--
2.7.4

View File

@ -0,0 +1,312 @@
From 648f554499f29980f450a231a94945d245c7ae5c Mon Sep 17 00:00:00 2001
From: Michael Bestas <mkbestas@lineageos.org>
Date: Sat, 1 Sep 2018 14:56:27 +0300
Subject: [PATCH] Header hack to compile for 8974
Change-Id: Ib8d70bb2499a147506d896ebd54e5aa45fe76f2e
---
Android.bp | 3 +-
cryptfs_hw.c | 2 +-
qseecom.h | 263 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 265 insertions(+), 3 deletions(-)
create mode 100644 qseecom.h
diff --git a/Android.bp b/Android.bp
index abbe407..d40e884 100644
--- a/Android.bp
+++ b/Android.bp
@@ -10,8 +10,7 @@ commonSharedLibraries = [
cc_library_shared {
name: "libcryptfs_hw",
- header_libs: ["qseecom-kernel-headers",
- "libhardware_headers"],
+ header_libs: ["libhardware_headers"],
cflags: ["-DCONFIG_HW_DISK_ENCRYPTION"],
srcs: sourceFiles,
shared_libs: commonSharedLibraries,
diff --git a/cryptfs_hw.c b/cryptfs_hw.c
index 482e28b..fbde52f 100644
--- a/cryptfs_hw.c
+++ b/cryptfs_hw.c
@@ -37,7 +37,7 @@
#include <dirent.h>
#include <dlfcn.h>
#include <errno.h>
-#include <linux/qseecom.h>
+#include "qseecom.h"
#include <hardware/keymaster_common.h>
#include <hardware/hardware.h>
#include "cutils/log.h"
diff --git a/qseecom.h b/qseecom.h
new file mode 100644
index 0000000..b63b36e
--- /dev/null
+++ b/qseecom.h
@@ -0,0 +1,263 @@
+#ifndef __QSEECOM_H_
+#define __QSEECOM_H_
+
+#include <linux/types.h>
+#include <linux/ioctl.h>
+
+#define MAX_ION_FD 4
+#define MAX_APP_NAME_SIZE 32
+#define QSEECOM_HASH_SIZE 32
+/*
+ * struct qseecom_register_listener_req -
+ * for register listener ioctl request
+ * @listener_id - service id (shared between userspace and QSE)
+ * @ifd_data_fd - ion handle
+ * @virt_sb_base - shared buffer base in user space
+ * @sb_size - shared buffer size
+ */
+struct qseecom_register_listener_req {
+ uint32_t listener_id; /* in */
+ int32_t ifd_data_fd; /* in */
+ uint32_t virt_sb_base; /* in */
+ uint32_t sb_size; /* in */
+};
+
+/*
+ * struct qseecom_send_cmd_req - for send command ioctl request
+ * @cmd_req_len - command buffer length
+ * @cmd_req_buf - command buffer
+ * @resp_len - response buffer length
+ * @resp_buf - response buffer
+ */
+struct qseecom_send_cmd_req {
+ void *cmd_req_buf; /* in */
+ unsigned int cmd_req_len; /* in */
+ void *resp_buf; /* in/out */
+ unsigned int resp_len; /* in/out */
+};
+
+/*
+ * struct qseecom_ion_fd_info - ion fd handle data information
+ * @fd - ion handle to some memory allocated in user space
+ * @cmd_buf_offset - command buffer offset
+ */
+struct qseecom_ion_fd_info {
+ int32_t fd;
+ uint32_t cmd_buf_offset;
+};
+/*
+ * struct qseecom_send_modfd_cmd_req - for send command ioctl request
+ * @cmd_req_len - command buffer length
+ * @cmd_req_buf - command buffer
+ * @resp_len - response buffer length
+ * @resp_buf - response buffer
+ * @ifd_data_fd - ion handle to memory allocated in user space
+ * @cmd_buf_offset - command buffer offset
+ */
+struct qseecom_send_modfd_cmd_req {
+ void *cmd_req_buf; /* in */
+ unsigned int cmd_req_len; /* in */
+ void *resp_buf; /* in/out */
+ unsigned int resp_len; /* in/out */
+ struct qseecom_ion_fd_info ifd_data[MAX_ION_FD];
+};
+
+/*
+ * struct qseecom_listener_send_resp_req - signal to continue the send_cmd req.
+ * Used as a trigger from HLOS service to notify QSEECOM that it's done with its
+ * operation and provide the response for QSEECOM can continue the incomplete
+ * command execution
+ * @resp_len - Length of the response
+ * @resp_buf - Response buffer where the response of the cmd should go.
+ */
+struct qseecom_send_resp_req {
+ void *resp_buf; /* in */
+ unsigned int resp_len; /* in */
+};
+
+/*
+ * struct qseecom_load_img_data - for sending image length information and
+ * ion file descriptor to the qseecom driver. ion file descriptor is used
+ * for retrieving the ion file handle and in turn the physical address of
+ * the image location.
+ * @mdt_len - Length of the .mdt file in bytes.
+ * @img_len - Length of the .mdt + .b00 +..+.bxx images files in bytes
+ * @ion_fd - Ion file descriptor used when allocating memory.
+ * @img_name - Name of the image.
+*/
+struct qseecom_load_img_req {
+ uint32_t mdt_len; /* in */
+ uint32_t img_len; /* in */
+ int32_t ifd_data_fd; /* in */
+ char img_name[MAX_APP_NAME_SIZE]; /* in */
+ int app_id; /* out*/
+};
+
+struct qseecom_set_sb_mem_param_req {
+ int32_t ifd_data_fd; /* in */
+ uint32_t virt_sb_base; /* in */
+ uint32_t sb_len; /* in */
+};
+
+/*
+ * struct qseecom_qseos_version_req - get qseos version
+ * @qseos_version - version number
+ */
+struct qseecom_qseos_version_req {
+ unsigned int qseos_version; /* in */
+};
+
+/*
+ * struct qseecom_qseos_app_load_query - verify if app is loaded in qsee
+ * @app_name[MAX_APP_NAME_SIZE]- name of the app.
+ * @app_id - app id.
+ */
+struct qseecom_qseos_app_load_query {
+ char app_name[MAX_APP_NAME_SIZE]; /* in */
+ int app_id; /* out */
+};
+
+struct qseecom_send_svc_cmd_req {
+ uint32_t cmd_id;
+ void *cmd_req_buf; /* in */
+ unsigned int cmd_req_len; /* in */
+ void *resp_buf; /* in/out */
+ unsigned int resp_len; /* in/out */
+};
+
+enum qseecom_key_management_usage_type {
+ QSEOS_KM_USAGE_DISK_ENCRYPTION = 0x01,
+ QSEOS_KM_USAGE_FILE_ENCRYPTION = 0x02,
+ QSEOS_KM_USAGE_MAX
+};
+
+struct qseecom_create_key_req {
+ unsigned char hash32[QSEECOM_HASH_SIZE];
+ enum qseecom_key_management_usage_type usage;
+};
+
+struct qseecom_wipe_key_req {
+ enum qseecom_key_management_usage_type usage;
+ int wipe_key_flag;/* 1->remove key from storage(alone with clear key) */
+ /* 0->do not remove from storage (clear key) */
+};
+
+struct qseecom_update_key_userinfo_req {
+ unsigned char current_hash32[QSEECOM_HASH_SIZE];
+ unsigned char new_hash32[QSEECOM_HASH_SIZE];
+ enum qseecom_key_management_usage_type usage;
+};
+
+#define SHA256_DIGEST_LENGTH (256/8)
+/*
+ * struct qseecom_save_partition_hash_req
+ * @partition_id - partition id.
+ * @hash[SHA256_DIGEST_LENGTH] - sha256 digest.
+ */
+struct qseecom_save_partition_hash_req {
+ int partition_id; /* in */
+ char digest[SHA256_DIGEST_LENGTH]; /* in */
+};
+
+/*
+ * struct qseecom_is_es_activated_req
+ * @is_activated - 1=true , 0=false
+ */
+struct qseecom_is_es_activated_req {
+ int is_activated; /* out */
+};
+
+
+enum qseecom_bandwidth_request_mode {
+ INACTIVE = 0,
+ LOW,
+ MEDIUM,
+ HIGH,
+};
+
+/*
+ * struct qseecom_send_modfd_resp - for send command ioctl request
+ * @req_len - command buffer length
+ * @req_buf - command buffer
+ * @ifd_data_fd - ion handle to memory allocated in user space
+ * @cmd_buf_offset - command buffer offset
+ */
+struct qseecom_send_modfd_listener_resp {
+ void *resp_buf_ptr; /* in */
+ unsigned int resp_len; /* in */
+ struct qseecom_ion_fd_info ifd_data[MAX_ION_FD]; /* in */
+};
+
+#define QSEECOM_IOC_MAGIC 0x97
+
+
+#define QSEECOM_IOCTL_REGISTER_LISTENER_REQ \
+ _IOWR(QSEECOM_IOC_MAGIC, 1, struct qseecom_register_listener_req)
+
+#define QSEECOM_IOCTL_UNREGISTER_LISTENER_REQ \
+ _IO(QSEECOM_IOC_MAGIC, 2)
+
+#define QSEECOM_IOCTL_SEND_CMD_REQ \
+ _IOWR(QSEECOM_IOC_MAGIC, 3, struct qseecom_send_cmd_req)
+
+#define QSEECOM_IOCTL_SEND_MODFD_CMD_REQ \
+ _IOWR(QSEECOM_IOC_MAGIC, 4, struct qseecom_send_modfd_cmd_req)
+
+#define QSEECOM_IOCTL_RECEIVE_REQ \
+ _IO(QSEECOM_IOC_MAGIC, 5)
+
+#define QSEECOM_IOCTL_SEND_RESP_REQ \
+ _IO(QSEECOM_IOC_MAGIC, 6)
+
+#define QSEECOM_IOCTL_LOAD_APP_REQ \
+ _IOWR(QSEECOM_IOC_MAGIC, 7, struct qseecom_load_img_req)
+
+#define QSEECOM_IOCTL_SET_MEM_PARAM_REQ \
+ _IOWR(QSEECOM_IOC_MAGIC, 8, struct qseecom_set_sb_mem_param_req)
+
+#define QSEECOM_IOCTL_UNLOAD_APP_REQ \
+ _IO(QSEECOM_IOC_MAGIC, 9)
+
+#define QSEECOM_IOCTL_GET_QSEOS_VERSION_REQ \
+ _IOWR(QSEECOM_IOC_MAGIC, 10, struct qseecom_qseos_version_req)
+
+#define QSEECOM_IOCTL_PERF_ENABLE_REQ \
+ _IO(QSEECOM_IOC_MAGIC, 11)
+
+#define QSEECOM_IOCTL_PERF_DISABLE_REQ \
+ _IO(QSEECOM_IOC_MAGIC, 12)
+
+#define QSEECOM_IOCTL_LOAD_EXTERNAL_ELF_REQ \
+ _IOWR(QSEECOM_IOC_MAGIC, 13, struct qseecom_load_img_req)
+
+#define QSEECOM_IOCTL_UNLOAD_EXTERNAL_ELF_REQ \
+ _IO(QSEECOM_IOC_MAGIC, 14)
+
+#define QSEECOM_IOCTL_APP_LOADED_QUERY_REQ \
+ _IOWR(QSEECOM_IOC_MAGIC, 15, struct qseecom_qseos_app_load_query)
+
+#define QSEECOM_IOCTL_SEND_CMD_SERVICE_REQ \
+ _IOWR(QSEECOM_IOC_MAGIC, 16, struct qseecom_send_svc_cmd_req)
+
+#define QSEECOM_IOCTL_CREATE_KEY_REQ \
+ _IOWR(QSEECOM_IOC_MAGIC, 17, struct qseecom_create_key_req)
+
+#define QSEECOM_IOCTL_WIPE_KEY_REQ \
+ _IOWR(QSEECOM_IOC_MAGIC, 18, struct qseecom_wipe_key_req)
+
+#define QSEECOM_IOCTL_SAVE_PARTITION_HASH_REQ \
+ _IOWR(QSEECOM_IOC_MAGIC, 19, struct qseecom_save_partition_hash_req)
+
+#define QSEECOM_IOCTL_IS_ES_ACTIVATED_REQ \
+ _IOWR(QSEECOM_IOC_MAGIC, 20, struct qseecom_is_es_activated_req)
+
+#define QSEECOM_IOCTL_SEND_MODFD_RESP \
+ _IOWR(QSEECOM_IOC_MAGIC, 21, struct qseecom_send_modfd_listener_resp)
+
+#define QSEECOM_IOCTL_SET_BUS_SCALING_REQ \
+ _IOWR(QSEECOM_IOC_MAGIC, 23, int)
+
+#define QSEECOM_IOCTL_UPDATE_KEY_USER_INFO_REQ \
+ _IOWR(QSEECOM_IOC_MAGIC, 24, struct qseecom_update_key_userinfo_req)
+
+#endif /* __QSEECOM_H_ */
--
2.7.4

View File

@ -0,0 +1,24 @@
From 037c36f36b8f71bd2001c30285bcfcd6523973b0 Mon Sep 17 00:00:00 2001
From: Andy CrossGate Yan <GeForce8800Ultra@gmail.com>
Date: Wed, 4 Sep 2019 01:37:30 +0000
Subject: [PATCH] Increase system partition size for arm_ab
Change-Id: I3ac099dd64624ec27c5fb64ce3fa3a9e500402e5
---
phhgsi_arm_ab/BoardConfig.mk | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/phhgsi_arm_ab/BoardConfig.mk b/phhgsi_arm_ab/BoardConfig.mk
index 18aaace..5726959 100644
--- a/phhgsi_arm_ab/BoardConfig.mk
+++ b/phhgsi_arm_ab/BoardConfig.mk
@@ -2,5 +2,5 @@ include build/make/target/board/generic_arm_ab/BoardConfig.mk
include device/phh/treble/board-base.mk
ifeq ($(BOARD_SYSTEMIMAGE_PARTITION_RESERVED_SIZE),)
-BOARD_SYSTEMIMAGE_PARTITION_SIZE := 1073741824
+BOARD_SYSTEMIMAGE_PARTITION_SIZE := 1313583104
endif
--
2.17.1

View File

@ -0,0 +1,30 @@
From 5629fd17b7498c753bc7194fdb6e05000a72a5a7 Mon Sep 17 00:00:00 2001
From: AndyCGYan <GeForce8800Ultra@gmail.com>
Date: Thu, 27 Dec 2018 16:38:19 +0800
Subject: [PATCH] Keyguard: Show shortcuts by default
Change-Id: I5655e0be26cec61214735719dffcda810286cd41
---
packages/SystemUI/res/values/config.xml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/packages/SystemUI/res/values/config.xml b/packages/SystemUI/res/values/config.xml
index ce7f929..a61bce3 100644
--- a/packages/SystemUI/res/values/config.xml
+++ b/packages/SystemUI/res/values/config.xml
@@ -74,10 +74,10 @@
<integer translatable="false" name="config_search_panel_view_vibration_duration">20</integer>
<!-- Show mic or phone affordance on Keyguard -->
- <bool name="config_keyguardShowLeftAffordance">false</bool>
+ <bool name="config_keyguardShowLeftAffordance">true</bool>
<!-- Show camera affordance on Keyguard -->
- <bool name="config_keyguardShowCameraAffordance">false</bool>
+ <bool name="config_keyguardShowCameraAffordance">true</bool>
<!-- Whether we should use SRC drawing mode when drawing the scrim behind. If this flag is set,
we change the canvas opacity so libhwui doesn't call glClear on our surface, and then we
--
2.7.4

View File

@ -0,0 +1,87 @@
From 2ac5823e318b5cbf1418d9f1b45fae66711a621b Mon Sep 17 00:00:00 2001
From: AndyCGYan <GeForce8800Ultra@gmail.com>
Date: Sun, 13 Jan 2019 21:44:48 +0800
Subject: [PATCH] LineageParts: Invert per-app stretch-to-fullscreen
Change-Id: Icb02c8dfd84882f736e37d6cd92c35e5eb288faa
---
res/values-zh-rCN/strings.xml | 4 ++--
res/values/strings.xml | 4 ++--
res/xml/long_screen_prefs.xml | 2 +-
res/xml/parts_catalog.xml | 4 ++--
src/org/lineageos/lineageparts/applications/LongScreenSettings.java | 2 +-
5 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index 2938aa0..04848ad 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -481,8 +481,8 @@
<string name="expanded_desktop_style_hide_navigation">隐藏导航栏</string>
<string name="expanded_desktop_style_hide_both">同时隐藏</string>
<string name="expanded_desktop_nothing_to_show_text">关闭开关以自定义您每个应用的扩展桌面</string>
- <string name="long_screen_settings_title">全屏应用</string>
- <string name="long_screen_settings_summary">强制旧式应用程序使用全屏长宽比</string>
+ <string name="inverse_long_screen_settings_title">禁用拉伸全屏</string>
+ <string name="inverse_long_screen_settings_summary">对选定的应用禁用拉伸全屏</string>
<string name="charging_sounds_settings_title">充电提示音</string>
<string name="charging_sounds_enabled_title">启用</string>
<string name="charging_sounds_enabled_summary">连接或断开电源时发出声音</string>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 684cbee..bc5fffe 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -616,8 +616,8 @@
<string name="expanded_desktop_nothing_to_show_text">Turn the switch off to customize your expanded desktop on a per-app basis</string>
<!-- Applications: Long screen -->
- <string name="long_screen_settings_title">Full screen apps</string>
- <string name="long_screen_settings_summary">Force legacy apps to use full screen aspect ratio</string>
+ <string name="inverse_long_screen_settings_title">Disable stretch-to-fullscreen</string>
+ <string name="inverse_long_screen_settings_summary">Prevent selected apps from utilizing stretch-to-fullscreen</string>
<!-- Sounds: Charging sounds -->
<string name="charging_sounds_settings_title">Charging sounds</string>
diff --git a/res/xml/long_screen_prefs.xml b/res/xml/long_screen_prefs.xml
index ec947fa..20da90a 100644
--- a/res/xml/long_screen_prefs.xml
+++ b/res/xml/long_screen_prefs.xml
@@ -18,6 +18,6 @@
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:lineage="http://schemas.android.com/apk/res/org.lineageos.lineageparts"
android:key="long_screen_settings"
- android:title="@string/long_screen_settings_title">
+ android:title="@string/inverse_long_screen_settings_title">
</PreferenceScreen>
diff --git a/res/xml/parts_catalog.xml b/res/xml/parts_catalog.xml
index 2ad4fdb..4bc2c5a 100644
--- a/res/xml/parts_catalog.xml
+++ b/res/xml/parts_catalog.xml
@@ -102,8 +102,8 @@
lineage:xmlRes="@xml/expanded_desktop_prefs" />
<part android:key="long_screen_settings"
- android:title="@string/long_screen_settings_title"
- android:summary="@string/long_screen_settings_summary"
+ android:title="@string/inverse_long_screen_settings_title"
+ android:summary="@string/inverse_long_screen_settings_summary"
android:fragment="org.lineageos.lineageparts.applications.LongScreenSettings"
lineage:xmlRes="@xml/long_screen_prefs" />
diff --git a/src/org/lineageos/lineageparts/applications/LongScreenSettings.java b/src/org/lineageos/lineageparts/applications/LongScreenSettings.java
index 782e33e..3aa6320 100644
--- a/src/org/lineageos/lineageparts/applications/LongScreenSettings.java
+++ b/src/org/lineageos/lineageparts/applications/LongScreenSettings.java
@@ -245,7 +245,7 @@ public class LongScreenSettings extends SettingsPreferenceFragment
mApplicationsState.ensureIcon(entry);
holder.icon.setImageDrawable(entry.icon);
holder.state.setTag(entry);
- holder.state.setChecked(mLongScreen.shouldForceLongScreen(entry.info.packageName));
+ holder.state.setChecked(!(mLongScreen.shouldForceLongScreen(entry.info.packageName)));
return holder.rootView;
}
--
2.7.4

View File

@ -0,0 +1,29 @@
From d922de7e988db91e16f0d9c15b5589026e7bc11c Mon Sep 17 00:00:00 2001
From: Andy CrossGate Yan <GeForce8800Ultra@gmail.com>
Date: Wed, 23 Oct 2019 09:38:16 +0000
Subject: [PATCH] Remove fsck SELinux labels
These are covered by LOS sepolicy
Change-Id: I7c63c9aed39afc07b8c80918053154113f848cd9
---
sepolicy/file_contexts | 3 ---
1 file changed, 3 deletions(-)
diff --git a/sepolicy/file_contexts b/sepolicy/file_contexts
index 1160738..a29bd32 100644
--- a/sepolicy/file_contexts
+++ b/sepolicy/file_contexts
@@ -4,8 +4,5 @@
/system/bin/rw-system.sh u:object_r:phhsu_exec:s0
/system/bin/phh-on-boot.sh u:object_r:phhsu_exec:s0
-/system/bin/fsck\.exfat u:object_r:fsck_exec:s0
-/system/bin/fsck\.ntfs u:object_r:fsck_exec:s0
-
/sec_storage(/.*)? u:object_r:teecd_data_file:s0
/dev/dsm u:object_r:dmd_device:s0
--
2.17.1

View File

@ -0,0 +1,226 @@
From fb17ff0c8ac4a23c36cdde42797795f36a20bc58 Mon Sep 17 00:00:00 2001
From: AndyCGYan <GeForce8800Ultra@gmail.com>
Date: Mon, 15 Jul 2019 10:39:08 +0000
Subject: [PATCH] Revert "Enable dyanmic image size for GSI"
This reverts commit b9acd8b4f49d710b4dae2c73ac8e919589f76d44.
---
target/board/BoardConfigGsiCommon.mk | 3 ---
target/board/generic/BoardConfig.mk | 2 ++
target/board/generic_arm64/BoardConfig.mk | 2 ++
target/board/generic_arm_a/BoardConfig.mk | 3 +++
target/board/generic_arm_ab/BoardConfig.mk | 3 +++
target/board/generic_x86/BoardConfig.mk | 1 +
target/board/generic_x86_64/BoardConfig.mk | 1 +
target/board/treble_common.mk | 3 ---
target/board/treble_common_32.mk | 4 ++++
target/board/treble_common_64.mk | 3 +++
target/product/aosp_arm.mk | 3 ---
target/product/aosp_arm64.mk | 3 ---
target/product/aosp_x86.mk | 3 ---
target/product/aosp_x86_64.mk | 3 ---
target/product/treble_common.mk | 3 ---
15 files changed, 19 insertions(+), 21 deletions(-)
diff --git a/target/board/BoardConfigGsiCommon.mk b/target/board/BoardConfigGsiCommon.mk
index bbc9a3639..97420e14b 100644
--- a/target/board/BoardConfigGsiCommon.mk
+++ b/target/board/BoardConfigGsiCommon.mk
@@ -10,9 +10,6 @@ TARGET_USERIMAGES_USE_EXT4 := true
# we explicit specify this need below (even though it's the current default).
TARGET_USERIMAGES_SPARSE_EXT_DISABLED := false
-# Enable dyanmic system image size and reserved 64MB in it.
-BOARD_SYSTEMIMAGE_PARTITION_RESERVED_SIZE := 67108864
-
# Android Verified Boot (AVB):
# 1) Sets BOARD_AVB_ENABLE to sign the GSI image.
# 2) Sets AVB_VBMETA_IMAGE_FLAGS_VERIFICATION_DISABLED (--flag 2) in
diff --git a/target/board/generic/BoardConfig.mk b/target/board/generic/BoardConfig.mk
index 738c03731..19d1b03c7 100644
--- a/target/board/generic/BoardConfig.mk
+++ b/target/board/generic/BoardConfig.mk
@@ -48,6 +48,8 @@ TARGET_CPU_ABI2 := armeabi
include build/make/target/board/BoardConfigEmuCommon.mk
include build/make/target/board/BoardConfigGsiCommon.mk
+# Partition size is default 1.5GB (1536MB) for 64 bits projects
+BOARD_SYSTEMIMAGE_PARTITION_SIZE := 1610612736
BOARD_USERDATAIMAGE_PARTITION_SIZE := 576716800
# Wifi.
diff --git a/target/board/generic_arm64/BoardConfig.mk b/target/board/generic_arm64/BoardConfig.mk
index 13d5bd64a..d99e86f7c 100644
--- a/target/board/generic_arm64/BoardConfig.mk
+++ b/target/board/generic_arm64/BoardConfig.mk
@@ -55,6 +55,8 @@ endif
include build/make/target/board/BoardConfigEmuCommon.mk
include build/make/target/board/BoardConfigGsiCommon.mk
+# Partition size is default 1.5GB (1536MB) for 64 bits projects
+BOARD_SYSTEMIMAGE_PARTITION_SIZE := 1610612736
BOARD_USERDATAIMAGE_PARTITION_SIZE := 576716800
# Emulator system image is going to be used as GSI and some vendor still hasn't
diff --git a/target/board/generic_arm_a/BoardConfig.mk b/target/board/generic_arm_a/BoardConfig.mk
index 57a5196a9..f0e1a3949 100644
--- a/target/board/generic_arm_a/BoardConfig.mk
+++ b/target/board/generic_arm_a/BoardConfig.mk
@@ -16,6 +16,9 @@
include build/make/target/board/treble_common_32.mk
+# Overwrite the setting in treble_common_32.mk for non-A/B arm GSI
+BOARD_SYSTEMIMAGE_PARTITION_SIZE := 943718400 # 900MB
+
TARGET_ARCH := arm
TARGET_ARCH_VARIANT := armv7-a-neon
TARGET_CPU_ABI := armeabi-v7a
diff --git a/target/board/generic_arm_ab/BoardConfig.mk b/target/board/generic_arm_ab/BoardConfig.mk
index 3d1484290..c1df8f1c2 100644
--- a/target/board/generic_arm_ab/BoardConfig.mk
+++ b/target/board/generic_arm_ab/BoardConfig.mk
@@ -16,6 +16,9 @@
include build/make/target/board/treble_common_32.mk
+# Overwrite the setting in treble_common_32.mk for non-A/B arm GSI
+BOARD_SYSTEMIMAGE_PARTITION_SIZE := 943718400 # 900MB
+
TARGET_ARCH := arm
TARGET_ARCH_VARIANT := armv7-a-neon
TARGET_CPU_ABI := armeabi-v7a
diff --git a/target/board/generic_x86/BoardConfig.mk b/target/board/generic_x86/BoardConfig.mk
index 650073e68..ae2e6414d 100644
--- a/target/board/generic_x86/BoardConfig.mk
+++ b/target/board/generic_x86/BoardConfig.mk
@@ -23,6 +23,7 @@ TARGET_PRELINK_MODULE := false
include build/make/target/board/BoardConfigEmuCommon.mk
include build/make/target/board/BoardConfigGsiCommon.mk
+BOARD_SYSTEMIMAGE_PARTITION_SIZE := 2684354560
# Resize to 4G to accomodate ASAN and CTS
BOARD_USERDATAIMAGE_PARTITION_SIZE := 4294967296
diff --git a/target/board/generic_x86_64/BoardConfig.mk b/target/board/generic_x86_64/BoardConfig.mk
index 142663044..7fc822d60 100755
--- a/target/board/generic_x86_64/BoardConfig.mk
+++ b/target/board/generic_x86_64/BoardConfig.mk
@@ -27,6 +27,7 @@ TARGET_PRELINK_MODULE := false
include build/make/target/board/BoardConfigEmuCommon.mk
include build/make/target/board/BoardConfigGsiCommon.mk
+BOARD_SYSTEMIMAGE_PARTITION_SIZE := 2684354560 # 2.5 GB
BOARD_USERDATAIMAGE_PARTITION_SIZE := 576716800
BOARD_SEPOLICY_DIRS += device/generic/goldfish/sepolicy/x86
diff --git a/target/board/treble_common.mk b/target/board/treble_common.mk
index b5c01a5a9..a6aba4a05 100644
--- a/target/board/treble_common.mk
+++ b/target/board/treble_common.mk
@@ -35,9 +35,6 @@ TARGET_USERIMAGES_USE_EXT4 := true
TARGET_USERIMAGES_USE_F2FS := true
TARGET_USERIMAGES_SPARSE_EXT_DISABLED := false
-# Enable dyanmic system image size and reserved 64MB in it.
-BOARD_SYSTEMIMAGE_PARTITION_RESERVED_SIZE := 67108864
-
# Generic AOSP image always requires separate vendor.img
TARGET_COPY_OUT_VENDOR := vendor
diff --git a/target/board/treble_common_32.mk b/target/board/treble_common_32.mk
index e8bad087b..d637b3d8c 100644
--- a/target/board/treble_common_32.mk
+++ b/target/board/treble_common_32.mk
@@ -18,3 +18,7 @@ include build/make/target/board/treble_common.mk
# Legacy GSI keeps 32 bits binder for 32 bits CPU Arch
TARGET_USES_64_BIT_BINDER := false
+
+# Partition size defaults to 1 GB (1024 MB) for 32-bit products. It can
+# be overwritten in specific BoardConfig.mk, if so desired.
+BOARD_SYSTEMIMAGE_PARTITION_SIZE := 1073741824
diff --git a/target/board/treble_common_64.mk b/target/board/treble_common_64.mk
index 8980dfde1..0a6eb172d 100644
--- a/target/board/treble_common_64.mk
+++ b/target/board/treble_common_64.mk
@@ -18,3 +18,6 @@ include build/make/target/board/treble_common.mk
# Enable 64-bits binder
TARGET_USES_64_BIT_BINDER := true
+
+# Partition size is default 1.5GB (1536MB) for 64 bits projects
+BOARD_SYSTEMIMAGE_PARTITION_SIZE := 1610612736
diff --git a/target/product/aosp_arm.mk b/target/product/aosp_arm.mk
index f0752a8e2..bc62e60b0 100644
--- a/target/product/aosp_arm.mk
+++ b/target/product/aosp_arm.mk
@@ -25,9 +25,6 @@
include $(SRC_TARGET_DIR)/product/full.mk
-# Enable dynamic partition size
-PRODUCT_USE_DYNAMIC_PARTITION_SIZE := true
-
# Enable A/B update
AB_OTA_UPDATER := true
AB_OTA_PARTITIONS := system
diff --git a/target/product/aosp_arm64.mk b/target/product/aosp_arm64.mk
index ab231110c..9c1a16416 100644
--- a/target/product/aosp_arm64.mk
+++ b/target/product/aosp_arm64.mk
@@ -41,9 +41,6 @@ $(call inherit-product, $(SRC_TARGET_DIR)/product/core_64_bit.mk)
$(call inherit-product, $(SRC_TARGET_DIR)/product/aosp_base_telephony.mk)
$(call inherit-product, $(SRC_TARGET_DIR)/board/generic_arm64/device.mk)
-# Enable dynamic partition size
-PRODUCT_USE_DYNAMIC_PARTITION_SIZE := true
-
# Enable A/B update
AB_OTA_UPDATER := true
AB_OTA_PARTITIONS := system
diff --git a/target/product/aosp_x86.mk b/target/product/aosp_x86.mk
index 9d1b14bc9..8ca88dce0 100644
--- a/target/product/aosp_x86.mk
+++ b/target/product/aosp_x86.mk
@@ -25,9 +25,6 @@
include $(SRC_TARGET_DIR)/product/full_x86.mk
-# Enable dynamic partition size
-PRODUCT_USE_DYNAMIC_PARTITION_SIZE := true
-
# Enable A/B update
AB_OTA_UPDATER := true
AB_OTA_PARTITIONS := system
diff --git a/target/product/aosp_x86_64.mk b/target/product/aosp_x86_64.mk
index b38c4173e..0948149b8 100644
--- a/target/product/aosp_x86_64.mk
+++ b/target/product/aosp_x86_64.mk
@@ -41,9 +41,6 @@ $(call inherit-product, $(SRC_TARGET_DIR)/product/core_64_bit.mk)
$(call inherit-product, $(SRC_TARGET_DIR)/product/aosp_base_telephony.mk)
$(call inherit-product, $(SRC_TARGET_DIR)/board/generic_x86_64/device.mk)
-# Enable dynamic partition size
-PRODUCT_USE_DYNAMIC_PARTITION_SIZE := true
-
# Enable A/B update
AB_OTA_UPDATER := true
AB_OTA_PARTITIONS := system
diff --git a/target/product/treble_common.mk b/target/product/treble_common.mk
index e76e89646..aa2aa7f72 100644
--- a/target/product/treble_common.mk
+++ b/target/product/treble_common.mk
@@ -23,9 +23,6 @@
$(call inherit-product, $(SRC_TARGET_DIR)/product/aosp_base.mk)
$(call inherit-product, $(SRC_TARGET_DIR)/product/telephony.mk)
-# Enable dynamic partition size
-PRODUCT_USE_DYNAMIC_PARTITION_SIZE := true
-
# Split selinux policy
PRODUCT_FULL_TREBLE_OVERRIDE := true
--
2.17.1

View File

@ -0,0 +1,42 @@
From 2fa3046c27e558919397c0a2c60598a1296331c5 Mon Sep 17 00:00:00 2001
From: AndyCGYan <GeForce8800Ultra@gmail.com>
Date: Sun, 3 Mar 2019 14:07:33 +0800
Subject: [PATCH] build_soong: Disable generated_kernel_headers
Change-Id: I630857cec208f1830e776bf5031d7bb9bc4435d0
---
build/soong/Android.bp | 21 ---------------------
1 file changed, 21 deletions(-)
diff --git a/build/soong/Android.bp b/build/soong/Android.bp
index 382b68e..f9108a8 100644
--- a/build/soong/Android.bp
+++ b/build/soong/Android.bp
@@ -23,24 +23,3 @@ bootstrap_go_package {
],
pluginFor: ["soong_build"],
}
-
-lineage_generator {
- name: "generated_kernel_includes",
-
- // The headers make command
- cmd: "make $(KERNEL_MAKE_FLAGS) -C $(TARGET_KERNEL_SOURCE) O=$(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/include", "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_library_headers {
- name: "generated_kernel_headers",
- generated_headers: ["generated_kernel_includes"],
- export_generated_headers: ["generated_kernel_includes"],
- vendor_available: true,
-}
--
2.7.4

View File

@ -0,0 +1,106 @@
From 51c79844320ca6dcb8d9c145709f0dc394f3146a Mon Sep 17 00:00:00 2001
From: Andy CrossGate Yan <GeForce8800Ultra@gmail.com>
Date: Fri, 17 May 2019 03:36:35 +0000
Subject: [PATCH] core: Add support for MicroG
-fake signatures, enabled per app by dynamic permission
Change-Id: I0e5a0aca9fccbd4372de8ce3af76c53cc7c35f28
---
core/res/AndroidManifest.xml | 7 ++++++
core/res/res/values/config.xml | 2 ++
core/res/res/values/strings.xml | 5 ++++
.../server/pm/PackageManagerService.java | 23 +++++++++++++++++--
4 files changed, 35 insertions(+), 2 deletions(-)
diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml
index 34d26f0da90..08f95ec1fdf 100644
--- a/core/res/AndroidManifest.xml
+++ b/core/res/AndroidManifest.xml
@@ -2357,6 +2357,13 @@
android:description="@string/permdesc_getPackageSize"
android:protectionLevel="normal" />
+ <!-- @hide Allows an application to change the package signature as
+ seen by applications -->
+ <permission android:name="android.permission.FAKE_PACKAGE_SIGNATURE"
+ android:protectionLevel="dangerous"
+ android:label="@string/permlab_fakePackageSignature"
+ android:description="@string/permdesc_fakePackageSignature" />
+
<!-- @deprecated No longer useful, see
{@link android.content.pm.PackageManager#addPackageToPreferred}
for details. -->
diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml
index f7b06f98512..703a63ff5f1 100644
--- a/core/res/res/values/config.xml
+++ b/core/res/res/values/config.xml
@@ -1716,6 +1716,8 @@
<string-array name="config_locationProviderPackageNames" translatable="false">
<!-- The standard AOSP fused location provider -->
<item>com.android.location.fused</item>
+ <!-- The (faked) microg fused location provider (a free reimplementation) -->
+ <item>com.google.android.gms</item>
</string-array>
<!-- This string array can be overriden to enable test location providers initially. -->
diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml
index f6600462ea7..bd96a09684f 100644
--- a/core/res/res/values/strings.xml
+++ b/core/res/res/values/strings.xml
@@ -785,6 +785,11 @@
<!-- Permissions -->
+ <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
+ <string name="permlab_fakePackageSignature">Spoof package signature</string>
+ <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
+ <string name="permdesc_fakePackageSignature">Allows the app to pretend to be a different app. Malicious applications might be able to use this to access private application data. Legitimate uses include an emulator pretending to be what it emulates. Grant this permission with caution only!</string>
+
<!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
<string name="permlab_statusBar">disable or modify status bar</string>
<!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java
index 9b50a1545a5..f12509e36e7 100644
--- a/services/core/java/com/android/server/pm/PackageManagerService.java
+++ b/services/core/java/com/android/server/pm/PackageManagerService.java
@@ -4001,8 +4001,9 @@ public class PackageManagerService extends IPackageManager.Stub
final Set<String> permissions = ArrayUtils.isEmpty(p.requestedPermissions)
? Collections.<String>emptySet() : permissionsState.getPermissions(userId);
- PackageInfo packageInfo = PackageParser.generatePackageInfo(p, gids, flags,
- ps.firstInstallTime, ps.lastUpdateTime, permissions, state, userId);
+ PackageInfo packageInfo = mayFakeSignature(p, PackageParser.generatePackageInfo(p, gids, flags,
+ ps.firstInstallTime, ps.lastUpdateTime, permissions, state, userId),
+ permissions);
if (packageInfo == null) {
return null;
@@ -4038,6 +4039,24 @@ public class PackageManagerService extends IPackageManager.Stub
}
}
+ private PackageInfo mayFakeSignature(PackageParser.Package p, PackageInfo pi,
+ Set<String> permissions) {
+ try {
+ if (permissions.contains("android.permission.FAKE_PACKAGE_SIGNATURE")
+ && p.applicationInfo.targetSdkVersion > Build.VERSION_CODES.LOLLIPOP_MR1
+ && p.mAppMetaData != null) {
+ String sig = p.mAppMetaData.getString("fake-signature");
+ if (sig != null) {
+ pi.signatures = new Signature[] {new Signature(sig)};
+ }
+ }
+ } catch (Throwable t) {
+ // We should never die because of any failures, this is system code!
+ Log.w("PackageManagerService.FAKE_PACKAGE_SIGNATURE", t);
+ }
+ return pi;
+ }
+
@Override
public void checkPackageStartable(String packageName, int userId) {
final int callingUid = Binder.getCallingUid();
--
2.17.1

View File

@ -0,0 +1,26 @@
From 95ef97f5aa82c15e47f9313eca4899d89dba5dd0 Mon Sep 17 00:00:00 2001
From: Andy CrossGate Yan <GeForce8800Ultra@gmail.com>
Date: Wed, 4 Jul 2018 17:59:14 +0800
Subject: [PATCH] sdk: Invert per-app stretch-to-fullscreen implementation
Change-Id: Idf7dab4e1e0c79953fa672f33ec65fecffb37c83
---
sdk/src/java/org/lineageos/internal/applications/LongScreen.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sdk/src/java/org/lineageos/internal/applications/LongScreen.java b/sdk/src/java/org/lineageos/internal/applications/LongScreen.java
index 7fe0d68..26ea349 100644
--- a/sdk/src/java/org/lineageos/internal/applications/LongScreen.java
+++ b/sdk/src/java/org/lineageos/internal/applications/LongScreen.java
@@ -57,7 +57,7 @@ public class LongScreen {
}
public boolean shouldForceLongScreen(String packageName) {
- return isSupported() && mApps.contains(packageName);
+ return isSupported() && !(mApps.contains(packageName));
}
public Set<String> getApps() {
--
2.7.4

View File

@ -0,0 +1,117 @@
From b35194fdd618f1ae2682c6d285d92a4ae7d421cc Mon Sep 17 00:00:00 2001
From: AndyCGYan <GeForce8800Ultra@gmail.com>
Date: Mon, 15 Jul 2019 10:43:52 +0000
Subject: [PATCH] treble: Add overlay-lineage
Change-Id: I9d313b1488d98acc7cf37d23820946ee99745426
---
base.mk | 4 +-
.../lineage/res/res/values/config.xml | 81 +++++++++++++++++++
2 files changed, 84 insertions(+), 1 deletion(-)
create mode 100644 overlay-lineage/lineage-sdk/lineage/res/res/values/config.xml
diff --git a/base.mk b/base.mk
index 8636247..f18e1c7 100644
--- a/base.mk
+++ b/base.mk
@@ -11,7 +11,9 @@ PRODUCT_COPY_FILES += \
device/sample/etc/apns-full-conf.xml:system/etc/apns-conf.xml
BOARD_PLAT_PRIVATE_SEPOLICY_DIR += device/phh/treble/sepolicy
-DEVICE_PACKAGE_OVERLAYS += device/phh/treble/overlay
+DEVICE_PACKAGE_OVERLAYS += \
+ device/phh/treble/overlay \
+ device/phh/treble/overlay-lineage
$(call inherit-product, vendor/hardware_overlay/overlay.mk)
$(call inherit-product, $(SRC_TARGET_DIR)/product/core_64_bit.mk)
diff --git a/overlay-lineage/lineage-sdk/lineage/res/res/values/config.xml b/overlay-lineage/lineage-sdk/lineage/res/res/values/config.xml
new file mode 100644
index 0000000..8df673a
--- /dev/null
+++ b/overlay-lineage/lineage-sdk/lineage/res/res/values/config.xml
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2015-2016 The CyanogenMod Project
+ 2017-2018 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>
+ <!-- Whether device has screen with higher aspect ratio -->
+ <bool name="config_haveHigherAspectRatioScreen">true</bool>
+
+ <!-- All the capabilities of the LEDs on this device, stored as a bit field.
+ This integer should equal the sum of the corresponding value for each
+ of the following capabilities present:
+ // Device has a color adjustable battery light.
+ LIGHTS_RGB_NOTIFICATION_LED = 1
+ // Device has a color adjustable notification light.
+ LIGHTS_RGB_BATTERY_LED = 2
+ LIGHTS_MULTIPLE_NOTIFICATION_LED = 4 (deprecated)
+ // The notification light has adjustable pulsing capability.
+ LIGHTS_PULSATING_LED = 8
+ // Device has a multi-segment battery light that is able to
+ // use the light brightness value to determine how many
+ // segments to show (in order to represent battery level).
+ LIGHTS_SEGMENTED_BATTERY_LED = 16
+ // The notification light supports HAL adjustable brightness
+ // via the alpha channel.
+ // Note: if a device notification light supports LIGHTS_RGB_NOTIFICATION_LED
+ // then HAL support is not necessary for brightness control. In this case,
+ // brightness support will be provided by lineage-sdk through the scaling of
+ // RGB color values.
+ LIGHTS_ADJUSTABLE_NOTIFICATION_LED_BRIGHTNESS = 32
+ // Device has a battery light.
+ LIGHTS_BATTERY_LED = 64
+ // The battery light supports HAL adjustable brightness via
+ // the alpha channel.
+ // Note: if a device battery light supports LIGHTS_RGB_BATTERY_LED then HAL
+ // support is not necessary for brightness control. In this case,
+ // brightness support will be provided by lineage-sdk through the scaling of
+ // RGB color values.
+ LIGHTS_ADJUSTABLE_BATTERY_LED_BRIGHTNESS = 128
+ For example, a device with notification and battery lights that supports
+ pulsating and RGB control would set this config to 75. -->
+ <integer name="config_deviceLightCapabilities">255</integer>
+
+ <!-- Hardware keys present on the device, stored as a bit field.
+ This integer should equal the sum of the corresponding value for each
+ of the following keys present:
+ 1 - Home
+ 2 - Back
+ 4 - Menu
+ 8 - Assistant (search)
+ 16 - App switch
+ 32 - Camera
+ 64 - Volume rocker
+ For example, a device with Home, Back and Menu keys would set this
+ config to 7. -->
+ <integer name="config_deviceHardwareKeys">127</integer>
+
+ <!-- Hardware keys present on the device with the ability to wake, stored as a bit field.
+ This integer should equal the sum of the corresponding value for each
+ of the following keys present:
+ 1 - Home
+ 2 - Back
+ 4 - Menu
+ 8 - Assistant (search)
+ 16 - App switch
+ 32 - Camera
+ 64 - Volume rocker
+ For example, a device with Home, Back and Menu keys would set this
+ config to 7. -->
+ <integer name="config_deviceHardwareWakeKeys">127</integer>
+</resources>
--
2.17.1

View File

@ -0,0 +1,25 @@
From 5180f2417b628e6f1611ce24fd54f711fbdbb991 Mon Sep 17 00:00:00 2001
From: Andy CrossGate Yan <GeForce8800Ultra@gmail.com>
Date: Tue, 10 Sep 2019 02:42:36 +0000
Subject: [PATCH] treble: Don't specify config_wallpaperCropperPackage
Change-Id: I72b59def304779e4bd9a399c01cf1180d15bf444
---
overlay/frameworks/base/core/res/res/values/config.xml | 1 -
1 file changed, 1 deletion(-)
diff --git a/overlay/frameworks/base/core/res/res/values/config.xml b/overlay/frameworks/base/core/res/res/values/config.xml
index 0cdc065..627c91e 100644
--- a/overlay/frameworks/base/core/res/res/values/config.xml
+++ b/overlay/frameworks/base/core/res/res/values/config.xml
@@ -22,7 +22,6 @@
<string name="config_icon_mask" translatable="false">"M50 0C77.6 0 100 22.4 100 50C100 77.6 77.6 100 50 100C22.4 100 0 77.6 0 50C0 22.4 22.4 0 50 0Z"</string>
<bool name="config_useRoundIcon">true</bool>
- <string name="config_wallpaperCropperPackage">com.android.wallpaperpicker</string>
<bool name="config_unplugTurnsOnScreen">true</bool>
<!-- Currently disabled for Android Go
<integer name="config_multiuserMaximumUsers">4</integer>
--
2.17.1

View File

@ -0,0 +1,30 @@
From 3290062c72effc07ccfd62e2b8ef67f897869b8d Mon Sep 17 00:00:00 2001
From: Andy CrossGate Yan <GeForce8800Ultra@gmail.com>
Date: Thu, 5 Sep 2019 02:08:22 +0000
Subject: [PATCH] vendor_lineage: Log privapp-permissions whitelist violations
instead
Change-Id: I49dba61f332253e291a65e79ca70d9a07d45bb07
---
config/common.mk | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/config/common.mk b/config/common.mk
index 837e11ef..8dfc372b 100644
--- a/config/common.mk
+++ b/config/common.mk
@@ -89,9 +89,9 @@ PRODUCT_COPY_FILES += \
vendor/lineage/config/permissions/privapp-permissions-lineage.xml:system/etc/permissions/privapp-permissions-lineage.xml \
vendor/lineage/config/permissions/privapp-permissions-cm-legacy.xml:system/etc/permissions/privapp-permissions-cm-legacy.xml
-# Enforce privapp-permissions whitelist
+# Log privapp-permissions whitelist violations
PRODUCT_SYSTEM_DEFAULT_PROPERTIES += \
- ro.control_privapp_permissions=enforce
+ ro.control_privapp_permissions=log
# Hidden API whitelist
PRODUCT_COPY_FILES += \
--
2.17.1