September

LeOS-U
harvey186 2024-10-05 19:14:50 +02:00
parent c754105c58
commit 10952555ad
121 changed files with 636541 additions and 154369 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 61 KiB

View File

@ -1,37 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<remote name="github" fetch="https://github.com" />
<remote name="gitlab" fetch="https://gitlab.com" />
<remote name="e-priv" fetch="ssh://git@gitlab.e.foundation:2222" revision="refs/heads/v1-t"/>
<remote name="e" fetch="https://gitlab.e.foundation" revision="refs/heads/v1-t"/>
<remote name="cr" fetch="https://github.com" />
<!-- eOS -->
<project name="e/os/elib" path="packages/apps/elib" remote="e" revision="252b29c4c355ab08b4a2f51f154f2523547bdfe2" upstream="main" dest-branch="main"/>
<project name="e/os/ih8sn" path="external/ih8sn" remote="e" revision="5d2b981d71461a9874bb87021fb05419b2f7d209" upstream="master" dest-branch="master"/>
<project name="e/os/picotts" path="external/svox" remote="e" revision="3e6293ea56b958c5537a2dd8318d3732748dea81" upstream="refs/heads/v1-t" dest-branch="refs/heads/v1-t"/>
<!-- TrebleDroid -->
<project name="TrebleDroid/device_phh_treble" path="device/phh/treble" remote="github" revision="android-14.0" />
<project name="TrebleDroid/vendor_hardware_overlay" path="vendor/hardware_overlay" remote="github" revision="pie" />
<project name="TrebleDroid/vendor_interfaces" path="vendor/interfaces" remote="github" revision="android-14.0" />
<project name="TrebleDroid/treble_app" path="treble_app" remote="github" revision="master" />
<project name="AndyCGYan/android_packages_apps_QcRilAm" path="packages/apps/QcRilAm" remote="github" revision="master" />
<project name="platform/prebuilts/vndk/v28" path="prebuilts/vndk/v28" remote="aosp" revision="204f1bad00aaf480ba33233f7b8c2ddaa03155dd" clone-depth="1" />
<!-- ponces -->
<project name="ponces/vendor_ponces" path="vendor/ponces" remote="github" revision="android-14.0" />
<project name="ponces/treble_adapter" path="treble_adapter" remote="github" revision="master" />
<project name="ponces/packages_apps_ParanoidSense" path="packages/apps/ParanoidSense" remote="github" revision="uvite" />
<!-- LineageOS -->
<remove-project name="platform/packages/apps/Launcher3" />
<remove-project name="platform/packages/apps/ThemePicker" />
<remove-project path="packages/inputmethods/LatinIME" />
<project name="LineageOS/android_packages_apps_ThemePicker" path="packages/apps/ThemePicker" remote="github" revision="lineage-21.0" />
<!-- CRDroid -->
<project name="crdroidandroid/android_packages_inputmethods_LatinIME" path="packages/inputmethods/LatinIME" remote="cr" revision="14.0" />
</manifest>

View File

@ -1,194 +0,0 @@
#!/bin/bash
MONTH="date +%B"
echo
echo "--------------------------------------"
echo " LeOS-U Buildbot "
echo " by "
echo " harvey186 "
echo "--------------------------------------"
echo
git clone https://github.com/ponces/treble_aosp -b android-14.0
git clone https://github.com/ponces/vendor_ponces.git -b android-14.0 vendor/ponces
cp LeOS/patch.sh treble_aosp
set -e
initRepos() {
if [ ! -d .repo ]; then
echo "--> Initializing workspace"
repo init -u https://android.googlesource.com/platform/manifest -b android-14.0.0_r17 --git-lfs
echo
echo "--> Preparing local manifest"
mkdir -p .repo/local_manifests
cp treble_aosp/build/manifest.xml .repo/local_manifests/aosp.xml
cp LeOS/leos.xml .repo/local_manifests/leos.xml
cp LeOS/removeAOSP.xml .repo/local_manifests/remove.xml
echo
fi
}
syncRepos() {
echo "--> Syncing repos"
repo sync -c --force-sync --no-clone-bundle --no-tags -j$(nproc --all)
echo
}
applyPatches() {
echo "--> Applying TrebleDroid patches"
bash treble_aosp/patch.sh treble_aosp trebledroid
echo
echo "--> Applying ponces personal patches"
rm treble_aosp/patches/personal/platform_frameworks_base/0001-gmscompat-Change-attestation-and-instrumentation-to-.patch
rm treble_aosp/patches/personal/platform_frameworks_base/0002-gmscompat-Spoof-Pixel-XL-for-Google-Photos.patch
rm treble_aosp/patches/personal/platform_frameworks_base/0007-permissions-Pre-grant-google-restore-permissions.patch
rm -R treble_aosp/patches/personal/platform_frameworks_base/0008-feat-Add-Lockscreen-Weather-with-OmniJaws-1-2.patch
rm -R treble_aosp/patches/personal/platform_packages_apps_Settings/0001-feat-Add-Lockscreen-Weather-with-OmniJaws-2-2.patch
rm treble_aosp/patches/personal/platform_build/0001-Remove-su-from-vanilla-builds.patch
bash treble_aosp/patch.sh treble_aosp personal
echo
echo "--> Applying LeOS patches"
mv patches/leos treble_aosp/patches/leos
bash treble_aosp/patch.sh treble_aosp leos
cp LeOS/instrumentation_test_list.mk plattform_testing/build/tasks/tests/
cp LeOS/platform_test_list.mk plattform_testing/build/tasks/tests/
echo
echo "creatings host file"
cp LeOS/hosts system/core/rootdir/etc/
echo "--> Generating makefiles"
cd device/phh/treble
cp treble_aosp/build/aosp.mk device/phh/treble/
bash generate.sh aosp
cd ../../..
echo
}
setupEnv() {
echo "--> Setting up build environment"
source build/envsetup.sh &>/dev/null
mkdir -p $BD
echo
}
buildTrebleApp() {
echo "--> Building treble_app"
cd treble_app
bash build.sh release
cp TrebleApp.apk ../vendor/hardware_overlay/TrebleApp/app.apk
cd ..
echo
}
buildVanillaVariant() {
echo "--> Building treble_arm64_bvS"
export WITHOUT_CHECK_API=true
export USE_CCACHE=1
export CCACHE_SIZE=50G
export WITH_SU=true
lunch leos_arm64_bvS-userdebug
#make installclean
make -j12 RELAX_USES_LIBRARY_CHECK=true systemimage
echo
echo "--> Building LeOS-U-VNDKLITE-arm64-bvS.img"
cd treble_adapter
sudo bash lite-adapter.sh 64 ../out/target/product/leos_arm64_ab/system.img
mv s.img LeOS-U-VNDKLITE-arm64-bvS.img
sudo rm -rf d tmp
cd prebuilts/prebuiltapks/foss_nano/
bash update.sh
cd ../../..
echo "--> Building treble_arm64_bvN"
export WITHOUT_CHECK_API=true
export USE_CCACHE=1
export CCACHE_SIZE=50G
export WITH_SU=true
lunch leos_arm64_bvN-userdebug
#make installclean
make -j12 RELAX_USES_LIBRARY_CHECK=true systemimage
cp out/target/product/leos_arm64_ab/system.img treble_adapter/LeOS-U-VNDK-arm64_bvN.img
echo "--> Building LeOS-U-VNDKLITE-arm64-bvN"
sudo bash lite-adapterN.sh 64 ../out/target/product/leos_arm64_ab/system.img
mv s.img LeOS-U-VNDKLITE-arm64-bvN.img
sudo rm -rf d tmp
cd ..
echo
echo
echo "--> Building treble_a64_bvN"
export WITHOUT_CHECK_API=true
export USE_CCACHE=1
export CCACHE_SIZE=50G
export WITH_SU=true
lunch leos_a64_bvN-userdebug
#make installclean
make -j12 RELAX_USES_LIBRARY_CHECK=true systemimage
cp out/target/product/leos_a64_ab/system.img treble_adapter/LeOS-U-VNDK-a64-bvN.img
echo "--> Building LeOS-U-VNDKLITE-a64-bvN"
sudo bash lite-adapterNa64.sh 32 ../out/target/product/leos_a64_ab/system.img
mv s.img LeOS-U-VNDKLITE-a64-bvN.img
sudo rm -rf d tmp
cd ..
echo
cd prebuilts/prebuiltapks/foss_nano/
bash update.sh
cd ../../..
echo "--> Building treble_a64_bvS"
export WITHOUT_CHECK_API=true
export USE_CCACHE=1
export CCACHE_SIZE=50G
export WITH_SU=true
lunch leos_a64_bvS-userdebug
#make installclean
make -j12 RELAX_USES_LIBRARY_CHECK=true systemimage
echo "--> Building LeOS-U-VNDKLITE-a64-bvS.img"
cd treble_adapter
sudo bash lite-adapterSa64.sh 32 ../out/target/product/leos_a64_ab/system.img
mv s.img LeOS-U-VNDKLITE-a64-bvS.img
sudo rm -rf d tmp
}
generatePackages() {
echo "--> Generating packages"
cd treble_adapter
xz -vT0 *.img
cp *.img.xz /media/ich/exSSD2/leos-cloud/LeOS-Files/LeOS-U/$MONTH/
echo
}
echo "READY"
START=$(date +%s)
initRepos
syncRepos
applyPatches
setupEnv
buildTrebleApp
buildVanillaVariant
generatePackages
END=$(date +%s)
ELAPSEDM=$(($(($END-$START))/60))
ELAPSEDS=$(($(($END-$START))-$ELAPSEDM*60))
echo "--> Buildbot completed in $ELAPSEDM minutes and $ELAPSEDS seconds"
echo

Binary file not shown.

Before

Width:  |  Height:  |  Size: 241 KiB

View File

@ -1,17 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<remote name="e-priv" fetch="ssh://git@gitlab.e.foundation:2222" revision="refs/heads/v1-t"/>
<remote name="e" fetch="https://gitlab.e.foundation" revision="refs/heads/v1-t"/>
<project name="e/os/elib" path="packages/apps/elib" remote="e" revision="252b29c4c355ab08b4a2f51f154f2523547bdfe2" upstream="main" dest-branch="main"/>
<project name="e/os/ih8sn" path="external/ih8sn" remote="e" revision="5d2b981d71461a9874bb87021fb05419b2f7d209" upstream="master" dest-branch="master"/>
<project name="e/os/picotts" path="external/svox" remote="e" revision="3e6293ea56b958c5537a2dd8318d3732748dea81" upstream="refs/heads/v1-t" dest-branch="refs/heads/v1-t"/>
<project path="packages/apps/Launcher3" name="platform/packages/apps/Launcher3" groups="pdk-fs" />
<remove-project path="packages/inputmethods/LatinIME" />
<project name="crdroidandroid/android_packages_inputmethods_LatinIME" path="packages/inputmethods/LatinIME" remote="github" revision="14.0" />
</manifest>

153287
LeOS/hosts

File diff suppressed because it is too large Load Diff

View File

@ -1,103 +0,0 @@
# Copyright (C) 2016 The Android Open Source 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.
instrumentation_tests := \
HelloWorldTests \
BluetoothInstrumentationTests \
LongevityPlatformLibTests \
ManagedProvisioningTests \
FrameworksCoreTests \
FrameworksCoreGameManagerTests \
FrameworksMockingCoreTests \
BinderProxyCountingTestApp \
BinderProxyCountingTestService \
FrameworksNetTests \
FrameworksUiServicesTests \
BstatsTestApp \
FrameworksServicesTests \
FrameworksMockingServicesTests \
WmTests \
WmPerfTests \
DisplayServiceTests \
JobTestApp \
SuspendTestApp \
FrameworksUtilTests \
MtpServiceTests \
MtpTests \
DocumentsUITests \
ShellTests \
SystemUITests \
TestablesTests \
FrameworksWifiApiTests \
FrameworksWifiNonUpdatableApiTests \
FrameworksWifiTests \
FrameworksTelephonyTests \
ContactsProviderTests \
SettingsUnitTests \
TelecomUnitTests \
TraceurUiTests \
AndroidVCardTests \
PermissionFunctionalTests \
BlockedNumberProviderTest \
DownloadAppFunctionalTests \
NotificationFunctionalTests \
DynamicCodeLoggerIntegrationTests \
UsbTests \
DownloadProviderTests \
CalendarProviderTests \
SettingsLibTests \
RSTest \
PrintSpoolerOutOfProcessTests \
CellBroadcastReceiverUnitTests \
CellBroadcastServiceTests \
TelephonyProviderTests \
CarrierConfigTests \
TeleServiceTests \
PresencePollingTests \
ImsCommonTests \
SettingsProviderTest \
FrameworksPrivacyLibraryTests \
SettingsUITests \
SettingsPerfTests \
ExtServicesUnitTests \
FrameworksNetSmokeTests \
FlickerLibTest \
FlickerTestsOther \
FlickerTestsAppClose \
FlickerTestsIme \
FlickerTestsAppLaunch \
FlickerTestsQuickswitch \
FlickerTestsRotation \
FlickerTestApp \
WMShellFlickerTestsOther \
WMShellFlickerTestsBubbles \
WMShellFlickerTestsPip \
WMShellFlickerTestsSplitScreen \
trace_config_detailed.textproto \
perfetto_trace_processor_shell \
CarDeveloperOptionsUnitTests \
SpaPrivilegedLibTests \
SettingsSpaUnitTests \
SpaLibTests
ifneq ($(strip $(BOARD_PERFSETUP_SCRIPT)),)
instrumentation_tests += perf-setup
endif
# Storage Manager may not exist on device
ifneq ($(filter StorageManager, $(PRODUCT_PACKAGES)),)
instrumentation_tests += StorageManagerUnitTests
endif

View File

@ -1,55 +0,0 @@
#prebuilts
PRODUCT_PACKAGES += \
me.phh.superuser \
com.menny.android.anysoftkeyboard \
com.qualcomm.location \
com.aurora.services \
org.fdroid.fdroid.privileged \
org.bromite-webview \
com.paranoid.ParanoidWallpapers \
GmsCore \
GsfProxy \
FakeStore \
com.google.android.maps.jar \
AuroraServices \
FDroidPrivilegedExtension \
MozillaNlpBackend \
NominatimNlpBackend \
BrowserWebView \
eSpeakTTS \
Launcher \
com.saggitt.omega \
omega \
Dialer \
Seedvault \
bromite-webview \
FileManager \
LeOS-Droid \
DocumentsUI \
Wallpaper \
TrebleApp \
Camera \
OpenEUICC \
Contacts \
#### aptX files LeOS Changes
#PRODUCT_COPY_FILES += \
# vendor/LeOS/libaptX_encoder.so:system/lib64/libaptX_encoder.so \
# vendor/LeOS/libaptXHD_encoder.so:system/lib64/libaptXHD_encoder.so \
# vendor/LeOS/libaptX_encoder32.so:system/lib/libaptX_encoder.so \
# vendor/LeOS/libaptXHD_encoder32.so:system/lib/libaptXHD_encoder.so \
# vendor/LeOS/libperipheral_client.so:system/lib64/libperipheral_client.so \
PRODUCT_PROPERTY_OVERRIDES += \
AndroidBlackThemeOverlay=true \
org.lineageos.overlay.customization.blacktheme=true \
com.android.system.theme.black=true
PRODUCT_SYSTEM_DEFAULT_PROPERTIES += \
Settings.Secure.UI_NIGHT_MODE=2
PRODUCT_PACKAGES += \
bootanimation.zip

View File

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<remote name="github" fetch="https://github.com" />
<project name="crdroidandroid/android_packages_inputmethods_LatinIME" path="packages/inputmethodes/LatinIME" remote="github" revision="14.0" />
</manifest>

View File

@ -1,19 +0,0 @@
#!/bin/bash
set -e
patches="$(readlink -f -- $1)"
tree="$2"
for project in $(cd $patches/patches/$tree; echo *); do
p="$(tr _ / <<<$project |sed -e 's;platform/;;g')"
[ "$p" == build ] && p=build/make
[ "$p" == treble/app ] && p=treble_app
[ "$p" == treble/adapter ] && p=treble_adapter
[ "$p" == vendor/hardware/overlay ] && p=vendor/hardware_overlay
pushd $p &>/dev/null
for patch in $patches/patches/$tree/$project/*.patch; do
git am $patch || exit
done
popd &>/dev/null
done

View File

@ -1,125 +0,0 @@
platform_tests += \
ActivityManagerPerfTests \
ActivityManagerPerfTestsStubApp1 \
ActivityManagerPerfTestsStubApp2 \
ActivityManagerPerfTestsStubApp3 \
ActivityManagerPerfTestsTestApp \
AdServicesScenarioTests \
AndroidTVJankTests \
AndroidXComposeStartupApp \
ApiDemos \
AppCompatibilityTest \
AppLaunch \
AppTransitionTests \
AutoLocTestApp \
AutoLocVersionedTestApp_v1 \
AutoLocVersionedTestApp_v2 \
BackgroundDexOptServiceIntegrationTests \
BandwidthEnforcementTest \
BandwidthTests \
BootHelperApp \
BusinessCard \
CalculatorFunctionalTests \
camera_client_test \
camera_metadata_tests \
CellBroadcastReceiverTests \
ConnectivityManagerTest \
ContactsTests \
CtsCameraTestCases \
CtsHardwareTestCases \
DataIdleTest \
Development \
DeviceHealthChecks \
DynamicCodeLoggerIntegrationTests \
DialerJankTests \
DownloadManagerTestApp \
StubIME \
ExternalLocAllPermsTestApp \
ExternalLocTestApp \
ExternalLocVersionedTestApp_v1 \
ExternalLocVersionedTestApp_v2 \
ExternalSharedPermsBTTestApp \
ExternalSharedPermsDiffKeyTestApp \
ExternalSharedPermsFLTestApp \
ExternalSharedPermsTestApp \
flatland \
FrameworkPerf \
FrameworkPermissionTests \
FrameworksCoreTests \
FrameworksMockingCoreTests \
FrameworksPrivacyLibraryTests \
FrameworksUtilTests \
InternalLocTestApp \
JankMicroBenchmarkTests \
LauncherIconsApp \
long_trace_binder_config.textproto \
long_trace_config.textproto \
MemoryUsage \
MultiDexLegacyTestApp \
MultiDexLegacyTestApp2 \
MultiDexLegacyTestServices \
MultiDexLegacyTestServicesTests \
MultiDexLegacyVersionedTestApp_v1 \
MultiDexLegacyVersionedTestApp_v2 \
MultiDexLegacyVersionedTestApp_v3 \
NoLocTestApp \
NoLocVersionedTestApp_v1 \
NoLocVersionedTestApp_v2 \
NotificationFunctionalTests \
OverviewFunctionalTests \
perfetto_trace_processor_shell \
PerformanceAppTest \
PerformanceLaunch \
PermissionFunctionalTests \
PermissionTestAppMV1 \
PermissionUtils \
PlatformCommonScenarioTests \
PowerPerfTest \
SdkSandboxPerfScenarioTests \
SettingsUITests \
SimpleServiceTestApp1 \
SimpleServiceTestApp2 \
SimpleServiceTestApp3 \
SimpleTestApp \
skia_dm \
skia_nanobench \
sl4a \
SmokeTest \
SmokeTestApp \
SysAppJankTestsWear \
TouchLatencyJankTestWear \
trace_config.textproto \
trace_config_detailed.textproto \
trace_config_experimental.textproto \
trace_config_multi_user_cuj_tests.textproto \
UbSystemUiJankTests \
UbWebViewJankTests \
UiBench \
UiBenchJankTests \
UiBenchJankTestsWear \
UiBenchMicrobenchmark \
UpdateExternalLocTestApp_v1_ext \
UpdateExternalLocTestApp_v2_none \
UpdateExtToIntLocTestApp_v1_ext \
UpdateExtToIntLocTestApp_v2_int \
uwb_snippet \
VersatileTestApp_Auto \
VersatileTestApp_External \
VersatileTestApp_Internal \
VersatileTestApp_None \
VoiceInteraction \
WifiStrengthScannerUtil \
ifneq ($(strip $(BOARD_PERFSETUP_SCRIPT)),)
platform_tests += perf-setup
endif
ifneq ($(filter vsoc_arm vsoc_arm64 vsoc_x86 vsoc_x86_64, $(TARGET_BOARD_PLATFORM)),)
platform_tests += \
CuttlefishRilTests \
CuttlefishWifiTests
endif
ifeq ($(HOST_OS),linux)
platform_tests += root-canal
endif

View File

@ -1,17 +0,0 @@
diff --git a/build/tasks/tests/platform_test_list.mk b/build/tasks/tests/platform_test_list.mk
index 74db4e00..b636767a 100644
--- a/build/tasks/tests/platform_test_list.mk
+++ b/build/tasks/tests/platform_test_list.mk
@@ -21,12 +21,10 @@ platform_tests += \
BootHelperApp \
BusinessCard \
CalculatorFunctionalTests \
- CalendarTests \
camera_client_test \
camera_metadata_tests \
CellBroadcastReceiverTests \
ConnectivityManagerTest \
- ContactsTests \
CtsCameraTestCases \
CtsHardwareTestCases \
DataIdleTest \

View File

@ -1,76 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<remove-project path="external/chromium-webview" name="platform/external/chromium-webview" groups="pdk" clone-depth="1" />
<remove-project path="device/google/atv" name="device/google/atv" groups="device,broadcom_pdk,generic_fs,pdk" />
<remove-project path="device/google/barbet" name="device/google/barbet" groups="device,barbet" />
<remove-project path="device/google/barbet-sepolicy" name="device/google/barbet-sepolicy" groups="device,barbet" />
<remove-project path="device/google/bluejay" name="device/google/bluejay" groups="device,bluejay" />
<remove-project path="device/google/bluejay-sepolicy" name="device/google/bluejay-sepolicy" groups="device,bluejay" />
<remove-project path="device/google/bluejay-kernel" name="device/google/bluejay-kernel" groups="device,bluejay" clone-depth="1" />
<remove-project path="device/google/bramble" name="device/google/bramble" groups="device,bramble" />
<remove-project path="device/google/bramble-sepolicy" name="device/google/bramble-sepolicy" groups="device,bramble" />
<remove-project path="device/google/contexthub" name="device/google/contexthub" groups="device,pdk" />
<remove-project path="device/google/coral" name="device/google/coral" groups="device,coral,generic_fs" />
<remove-project path="device/google/coral-kernel" name="device/google/coral-kernel" groups="device,coral,generic_fs" clone-depth="1" />
<remove-project path="device/google/coral-sepolicy" name="device/google/coral-sepolicy" groups="device,coral,generic_fs" />
<remove-project path="device/google/felix" name="device/google/felix" groups="device,felix" />
<remove-project path="device/google/felix-sepolicy" name="device/google/felix-sepolicy" groups="device,felix" />
<remove-project path="device/google/felix-kernel" name="device/google/felix-kernel" groups="device,felix" clone-depth="1" />
<remove-project path="device/google/gs101" name="device/google/gs101" groups="device,slider,bluejay,pdk-gs-arm" />
<remove-project path="device/google/gs101-sepolicy" name="device/google/gs101-sepolicy" groups="device,slider,bluejay,pdk-gs-arm" />
<remove-project path="device/google/gs201" name="device/google/gs201" groups="device,cloudripper" />
<remove-project path="device/google/gs201-sepolicy" name="device/google/gs201-sepolicy" groups="device,cloudripper" />
<remove-project path="device/google/gs-common" name="device/google/gs-common" groups="device,slider,bluejay,cloudripper,pdk-gs-arm" />
<remove-project path="device/google/lynx" name="device/google/lynx" groups="device,lynx" />
<remove-project path="device/google/lynx-sepolicy" name="device/google/lynx-sepolicy" groups="device,lynx" />
<remove-project path="device/google/lynx-kernel" name="device/google/lynx-kernel" groups="device,lynx" clone-depth="1" />
<remove-project path="device/google/pantah" name="device/google/pantah" groups="device,cloudripper" />
<remove-project path="device/google/pantah-sepolicy" name="device/google/pantah-sepolicy" groups="device,cloudripper" />
<remove-project path="device/google/pantah-kernel" name="device/google/pantah-kernel" groups="device,cloudripper" clone-depth="1" />
<remove-project path="device/google/raviole" name="device/google/raviole" groups="device,slider,pdk-gs-arm" />
<remove-project path="device/google/raviole-kernel" name="device/google/raviole-kernel" groups="device,slider,pdk-gs-arm" clone-depth="1" />
<remove-project path="device/google/redbull" name="device/google/redbull" groups="device,redbull" />
<remove-project path="device/google/redbull-kernel" name="device/google/redbull-kernel" groups="device,bramble,redfin" clone-depth="1" />
<remove-project path="device/google/redbull-sepolicy" name="device/google/redbull-sepolicy" groups="device,redbull" />
<remove-project path="device/google/redfin" name="device/google/redfin" groups="device,redfin" />
<remove-project path="device/google/redfin-sepolicy" name="device/google/redfin-sepolicy" groups="device,redfin" />
<remove-project path="device/google/tangorpro" name="device/google/tangorpro" groups="device,tangorpro" />
<remove-project path="device/google/tangorpro-sepolicy" name="device/google/tangorpro-sepolicy" groups="device,tangorpro" />
<remove-project path="device/google/tangorpro-kernel" name="device/google/tangorpro-kernel" groups="device,tangorpro" clone-depth="1" />
<remove-project path="device/google/shusky" name="device/google/shusky" groups="device,ripcurrent" />
<remove-project path="device/google/shusky-kernel" name="device/google/shusky-kernel" groups="device,ripcurrent" />
<remove-project path="device/google/shusky-sepolicy" name="device/google/shusky-sepolicy" groups="device,ripcurrent" />
<remove-project path="device/google/sunfish" name="device/google/sunfish" groups="device,sunfish" />
<remove-project path="device/google/sunfish-kernel" name="device/google/sunfish-kernel" groups="device,sunfish" clone-depth="1" />
<remove-project path="device/google/sunfish-sepolicy" name="device/google/sunfish-sepolicy" groups="device,sunfish" />
<remove-project path="device/google/trout" name="device/google/trout" groups="device,trout,gull,pdk" />
<remove-project path="device/google/vrservices" name="device/google/vrservices" groups="pdk" />
<remove-project path="device/google/zuma" name="device/google/zuma" groups="device,ripcurrent" />
<remove-project path="device/google/zuma-sepolicy" name="device/google/zuma-sepolicy" groups="device,ripcurrent" />
<remove-project path="device/google_car" name="device/google_car" groups="pdk" />
<remove-project path="packages/apps/BasicSmsReceiver" name="platform/packages/apps/BasicSmsReceiver" groups="pdk-cw-fs,pdk-fs" />
<remove-project path="packages/apps/Browser2" name="platform/packages/apps/Browser2" groups="pdk-fs" />
<remove-project path="packages/apps/Calendar" name="platform/packages/apps/Calendar" groups="pdk-fs" />
<remove-project path="packages/apps/Camera2" name="platform/packages/apps/Camera2" groups="pdk-fs" />
<remove-project path="packages/apps/DeskClock" name="platform/packages/apps/DeskClock" groups="pdk-fs" />
<remove-project path="packages/apps/DevCamera" name="platform/packages/apps/DevCamera" groups="pdk" />
<remove-project path="packages/apps/Dialer" name="platform/packages/apps/Dialer" groups="pdk-fs" />
<remove-project path="packages/apps/EmergencyInfo" name="platform/packages/apps/EmergencyInfo" groups="pdk-fs" />
<remove-project path="packages/apps/Gallery" name="platform/packages/apps/Gallery" groups="pdk-fs" />
<remove-project path="packages/apps/Gallery2" name="platform/packages/apps/Gallery2" groups="pdk-fs" />
<remove-project path="packages/apps/HTMLViewer" name="platform/packages/apps/HTMLViewer" groups="pdk-fs" />
<remove-project path="packages/apps/LegacyCamera" name="platform/packages/apps/LegacyCamera" groups="pdk-fs" />
<remove-project path="packages/apps/Messaging" name="platform/packages/apps/Messaging" groups="pdk-fs" />
<remove-project path="packages/apps/Music" name="platform/packages/apps/Music" groups="pdk-fs" />
<remove-project path="packages/apps/MusicFX" name="platform/packages/apps/MusicFX" groups="pdk-fs" />
<remove-project path="packages/apps/QuickSearchBox" name="platform/packages/apps/QuickSearchBox" groups="pdk-fs" />
<remove-project path="packages/apps/QuickAccessWallet" name="platform/packages/apps/QuickAccessWallet" groups="pdk-fs" />
<remove-project path="packages/apps/UniversalMediaPlayer" name="platform/packages/apps/UniversalMediaPlayer" />
</manifest>

View File

@ -1,75 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<remove-project path="external/chromium-webview" name="platform/external/chromium-webview" groups="pdk" clone-depth="1" />
<remove-project path="device/google/atv" name="device/google/atv" groups="device,broadcom_pdk,generic_fs,pdk" />
<remove-project path="device/google/barbet" name="device/google/barbet" groups="device,barbet" />
<remove-project path="device/google/barbet-sepolicy" name="device/google/barbet-sepolicy" groups="device,barbet" />
<remove-project path="device/google/bluejay" name="device/google/bluejay" groups="device,bluejay" />
<remove-project path="device/google/bluejay-sepolicy" name="device/google/bluejay-sepolicy" groups="device,bluejay" />
<remove-project path="device/google/bluejay-kernel" name="device/google/bluejay-kernel" groups="device,bluejay" clone-depth="1" />
<remove-project path="device/google/bramble" name="device/google/bramble" groups="device,bramble" />
<remove-project path="device/google/bramble-sepolicy" name="device/google/bramble-sepolicy" groups="device,bramble" />
<remove-project path="device/google/contexthub" name="device/google/contexthub" groups="device,pdk" />
<remove-project path="device/google/coral" name="device/google/coral" groups="device,coral,generic_fs" />
<remove-project path="device/google/coral-kernel" name="device/google/coral-kernel" groups="device,coral,generic_fs" clone-depth="1" />
<remove-project path="device/google/coral-sepolicy" name="device/google/coral-sepolicy" groups="device,coral,generic_fs" />
<remove-project path="device/google/felix" name="device/google/felix" groups="device,felix" />
<remove-project path="device/google/felix-sepolicy" name="device/google/felix-sepolicy" groups="device,felix" />
<remove-project path="device/google/felix-kernel" name="device/google/felix-kernel" groups="device,felix" clone-depth="1" />
<remove-project path="device/google/gs101" name="device/google/gs101" groups="device,slider,bluejay,pdk-gs-arm" />
<remove-project path="device/google/gs101-sepolicy" name="device/google/gs101-sepolicy" groups="device,slider,bluejay,pdk-gs-arm" />
<remove-project path="device/google/gs201" name="device/google/gs201" groups="device,cloudripper" />
<remove-project path="device/google/gs201-sepolicy" name="device/google/gs201-sepolicy" groups="device,cloudripper" />
<remove-project path="device/google/gs-common" name="device/google/gs-common" groups="device,slider,bluejay,cloudripper,pdk-gs-arm" />
<remove-project path="device/google/lynx" name="device/google/lynx" groups="device,lynx" />
<remove-project path="device/google/lynx-sepolicy" name="device/google/lynx-sepolicy" groups="device,lynx" />
<remove-project path="device/google/lynx-kernel" name="device/google/lynx-kernel" groups="device,lynx" clone-depth="1" />
<remove-project path="device/google/pantah" name="device/google/pantah" groups="device,cloudripper" />
<remove-project path="device/google/pantah-sepolicy" name="device/google/pantah-sepolicy" groups="device,cloudripper" />
<remove-project path="device/google/pantah-kernel" name="device/google/pantah-kernel" groups="device,cloudripper" clone-depth="1" />
<remove-project path="device/google/raviole" name="device/google/raviole" groups="device,slider,pdk-gs-arm" />
<remove-project path="device/google/raviole-kernel" name="device/google/raviole-kernel" groups="device,slider,pdk-gs-arm" clone-depth="1" />
<remove-project path="device/google/redbull" name="device/google/redbull" groups="device,redbull" />
<remove-project path="device/google/redbull-kernel" name="device/google/redbull-kernel" groups="device,bramble,redfin" clone-depth="1" />
<remove-project path="device/google/redbull-sepolicy" name="device/google/redbull-sepolicy" groups="device,redbull" />
<remove-project path="device/google/redfin" name="device/google/redfin" groups="device,redfin" />
<remove-project path="device/google/redfin-sepolicy" name="device/google/redfin-sepolicy" groups="device,redfin" />
<remove-project path="device/google/tangorpro" name="device/google/tangorpro" groups="device,tangorpro" />
<remove-project path="device/google/tangorpro-sepolicy" name="device/google/tangorpro-sepolicy" groups="device,tangorpro" />
<remove-project path="device/google/tangorpro-kernel" name="device/google/tangorpro-kernel" groups="device,tangorpro" clone-depth="1" />
<remove-project path="device/google/shusky" name="device/google/shusky" groups="device,ripcurrent" />
<remove-project path="device/google/shusky-kernel" name="device/google/shusky-kernel" groups="device,ripcurrent" />
<remove-project path="device/google/shusky-sepolicy" name="device/google/shusky-sepolicy" groups="device,ripcurrent" />
<remove-project path="device/google/sunfish" name="device/google/sunfish" groups="device,sunfish" />
<remove-project path="device/google/sunfish-kernel" name="device/google/sunfish-kernel" groups="device,sunfish" clone-depth="1" />
<remove-project path="device/google/sunfish-sepolicy" name="device/google/sunfish-sepolicy" groups="device,sunfish" />
<remove-project path="device/google/trout" name="device/google/trout" groups="device,trout,gull,pdk" />
<remove-project path="device/google/vrservices" name="device/google/vrservices" groups="pdk" />
<remove-project path="device/google/zuma" name="device/google/zuma" groups="device,ripcurrent" />
<remove-project path="device/google/zuma-sepolicy" name="device/google/zuma-sepolicy" groups="device,ripcurrent" />
<remove-project path="device/google_car" name="device/google_car" groups="pdk" />
<remove-project path="packages/apps/BasicSmsReceiver" name="platform/packages/apps/BasicSmsReceiver" groups="pdk-cw-fs,pdk-fs" />
<remove-project path="packages/apps/Browser2" name="platform/packages/apps/Browser2" groups="pdk-fs" />
<remove-project path="packages/apps/Calendar" name="platform/packages/apps/Calendar" groups="pdk-fs" />
<remove-project path="packages/apps/Camera2" name="platform/packages/apps/Camera2" groups="pdk-fs" />
<remove-project path="packages/apps/DeskClock" name="platform/packages/apps/DeskClock" groups="pdk-fs" />
<remove-project path="packages/apps/DevCamera" name="platform/packages/apps/DevCamera" groups="pdk" />
<remove-project path="packages/apps/Dialer" name="platform/packages/apps/Dialer" groups="pdk-fs" />
<remove-project path="packages/apps/EmergencyInfo" name="platform/packages/apps/EmergencyInfo" groups="pdk-fs" />
<remove-project path="packages/apps/Gallery" name="platform/packages/apps/Gallery" groups="pdk-fs" />
<remove-project path="packages/apps/Gallery2" name="platform/packages/apps/Gallery2" groups="pdk-fs" />
<remove-project path="packages/apps/HTMLViewer" name="platform/packages/apps/HTMLViewer" groups="pdk-fs" />
<remove-project path="packages/apps/LegacyCamera" name="platform/packages/apps/LegacyCamera" groups="pdk-fs" />
<remove-project path="packages/apps/Messaging" name="platform/packages/apps/Messaging" groups="pdk-fs" />
<remove-project path="packages/apps/Music" name="platform/packages/apps/Music" groups="pdk-fs" />
<remove-project path="packages/apps/MusicFX" name="platform/packages/apps/MusicFX" groups="pdk-fs" />
<remove-project path="packages/apps/QuickSearchBox" name="platform/packages/apps/QuickSearchBox" groups="pdk-fs" />
<remove-project path="packages/apps/QuickAccessWallet" name="platform/packages/apps/QuickAccessWallet" groups="pdk-fs" />
<remove-project path="packages/apps/UniversalMediaPlayer" name="platform/packages/apps/UniversalMediaPlayer" />
<remove-project path="packages/inputmethods/LatinIME" name="platform/packages/inputmethods/LatinIME" groups="pdk-fs" />
</manifest>

View File

@ -1,20 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<remote name="e-priv" fetch="ssh://git@gitlab.e.foundation:2222" revision="refs/heads/v1-t"/>
<remote name="e" fetch="https://gitlab.e.foundation" revision="refs/heads/v1-t"/>
<remove-project name="platform/packages/apps/Settings" />
<remove-project name="platform/packages/apps/SettingsIntelligence" />
<remove-project name="platform/packages/modules/Permission" />
<project name="e/os/android_packages_modules_Permission" path="packages/modules/Permission" remote="e" revision="8ed2b55aca4fff615e91e8583d37e15a668f0520" upstream="refs/heads/v1-t" dest-branch="refs/heads/v1-t" groups="pdk-cw-fs,pdk-fs"/>
<project name="e/os/android_packages_apps_Settings" path="packages/apps/Settings" remote="e" revision="a616a3b8b9cc74b4a7e8227bef515fe5daa57257" upstream="refs/heads/v1-t" dest-branch="refs/heads/v1-t" groups="pdk-fs"/>
<project name="e/os/android_packages_apps_SettingsIntelligence" path="packages/apps/SettingsIntelligence" remote="e" revision="39ae44727498552e935e7fc4563edd2334edea3e" upstream="refs/heads/v1-t" dest-branch="refs/heads/v1-t" groups="pdk-fs"/>
<project name="e/os/android_packages_services_SplitInstallService" path="packages/services/SplitInstallService" remote="e" revision="c0ba5a55a9ddc09ab094d7426b4a2520954f0f0c" upstream="main" dest-branch="main"/>
<project name="e/os/android_vendor_eos" path="vendor/eos" remote="e" revision="fa261dad0c83503f54c5a216c7346b494fda67ec" upstream="refs/heads/v1-t" dest-branch="refs/heads/v1-t"/>
<project name="e/os/elib" path="packages/apps/elib" remote="e" revision="252b29c4c355ab08b4a2f51f154f2523547bdfe2" upstream="main" dest-branch="main"/>
<project name="e/os/ih8sn" path="external/ih8sn" remote="e" revision="5d2b981d71461a9874bb87021fb05419b2f7d209" upstream="master" dest-branch="master"/>
<project name="e/os/picotts" path="external/svox" remote="e" revision="3e6293ea56b958c5537a2dd8318d3732748dea81" upstream="refs/heads/v1-t" dest-branch="refs/heads/v1-t"/>
<project name="e/os/android_device_lineage_sepolicy" path="device/lineage/sepolicy" remote="e" revision="e6926da68d4e06e246ceffb1fdd5dafc978fd53e" upstream="refs/heads/v1-t" dest-branch="refs/heads/v1-t"/>
</manifest>

View File

@ -1,26 +0,0 @@
#!/bin/bash
echo 'Texte'
cd packages/apps/Settings/res
find -name \strings.xml |xargs -I{} xmlstarlet ed -L -u '//string[@msgid="6363561029914452382"]' -v 'The oath of Buchenwald' {}
find -name \strings.xml |xargs -I{} xmlstarlet ed -L -u '//string[@msgid="3323732544011097199"]' -v 'Comrades! We Buchenwald antifascists are here today in honor of the 51,000 prisoners murdered in Buchenwald and its sub-commandos by the Nazi beast and its accomplices.!51 000 shot, hanged, trampled, beaten to death, suffocated, drowned, starved to death, poisoned, hosed down.51 000 fathers-brothers-sons died an agonizing death because they were fighters against the fascist murder regime.51 000 mothers and wives and hundreds of thousands of children denounce! We who remained alive, we witnesses of Nazi bestiality, saw our comrades fall in impotent rage.If one thing kept us alive, it was the thought: The day of revenge is coming! Today we are free! We thank the allied armies of the Americans, the English, the Soviets and all the freedom armies who fought for peace and life for us and the whole world. We remember here the great friend of the anti-fascists of all countries, an organizer and initiator of the struggle for a new, democratic, peaceful world, F. D. Roosevelt. Honor his memory! We Buchenwalders, Russians, French, Poles, Czechs, Slovaks and Germans, Spaniards, Italians and Austrians, Belgians and Dutch, English, Luxembourgers, Romanians, Yugoslavs and Hungarians, fought together against the SS, against the Nazi criminals, for our own liberation. We were inspired by one idea: Our cause is just - victory must be ours! We fought the same hard, merciless, sacrificial fight in many languages, and this fight is not over yet. Hitler flags are still flying! The murderers of our comrades are still alive! Our sadistic tormentors are still running free! We therefore swear before all the world on this roll call square, on this site of fascist horror: We will stop the fight only when the last culprit will stand before the judges of the peoples! The destruction of Nazism with its roots is our slogan. The construction of a new world of peace and freedom is our goal. We owe this to our murdered comrades, their relatives. As a sign of your readiness for this struggle, raise your hand to the oath and repeat after me: "WE SOW!' {}
find -name \strings.xml |xargs -I{} xmlstarlet ed -L -u '//string[@msgid="5806349524325544614"]' -v 'Buchenwald Weimar April 19 1945' {}
find -name \strings.xml |xargs -I{} xmlstarlet ed -L -u '//string[name="action_about"]' -v 'Created by:' {}
grep -RiIl '.google.com' | xargs sed -i 's/.google.com/.leos-gsi.de/g'
find -name \strings.xml |xargs -I{} xmlstarlet ed -L -u '//string[@msgid="8705484239826702828"]' -v 'LeOS-System' {}
find -name \strings.xml |xargs -I{} xmlstarlet ed -L -u '//string[@msgid="1787518340082046658"]' -v 'LeOS-System Update' {}
find -name \strings.xml |xargs -I{} xmlstarlet ed -L -u '//string[@msgid="8192160131923461175"]' -v '161-1312' {}
grep -RiIl 'LineageOS-Version' | xargs sed -i 's/LineageOS-Version/LeOS-Version/g'
cd ../../../..
cd packages/services/Telephony/res/
grep -RiIl 'www.google.com' | xargs sed -i 's/www.google.com/www.leos-gsi.de/g'
cd ../../../..

View File

@ -1,29 +0,0 @@
# LeOS-U GSI
## Build
- Clone this repo:
```
git clone http://62.178.96.192:3000/JoJo/LeOS-GSI -b LeOS-U
```
** Remark: Please check cloned sources. In some cases not all sources are getting downloaded **
```
cd LeOS-GSI
```
- Finally, start the build script:
```
bash build-u.sh
```
## Credits
These people have helped this project in some way or another, so they should be the ones who receive all the credit:
- [ponces](https://github.com/ponces)
- [phhusson](https://github.com/phhusson)
- [AndyYan](https://github.com/AndyCGYan)
- [eremitein](https://github.com/eremitein)
- [kdrag0n](https://github.com/kdrag0n)
- [Peter Cai](https://github.com/PeterCxy)
- [haridhayal11](https://github.com/haridhayal11)
- [sooti](https://github.com/sooti)
- [Iceows](https://github.com/Iceows)
- [ChonDoit](https://github.com/ChonDoit)

View File

@ -1,203 +0,0 @@
#!/bin/bash
MONTH="date +%B"
echo
echo "--------------------------------------"
echo " LeOS-U Buildbot "
echo " by "
echo " harvey186 "
echo "--------------------------------------"
echo
#git clone http://62.178.96.192:3000/JoJo/LeOS-GSI.git -b LeOS-U
##### only for testing ###
sudo rm -R treble_aosp
###-
git clone https://github.com/ponces/treble_aosp -b android-14.0
cp LeOS/patch.sh treble_aosp/patch.sh
#git clone https://github.com/ponces/vendor_ponces.git -b android-14.0 vendor/ponces
set -e
initRepos() {
if [ ! -d .repo ]; then
echo "--> Initializing workspace"
repo init -u https://android.googlesource.com/platform/manifest -b android-14.0.0_r21 --git-lfs
echo
echo "--> Preparing local manifest"
mkdir -p .repo/local_manifests
cp LeOS/aosp.xml .repo/local_manifests/aosp.xml
# cp LeOS/leos.xml .repo/local_manifests/leos.xml
# cp LeOS/eOS.xml .repo/local_manifests/eOS.xml
cp LeOS/removeAOSP.xml .repo/local_manifests/remove.xml
echo
fi
}
syncRepos() {
echo "--> Syncing repos"
repo sync -c --force-sync --no-clone-bundle --no-tags -j$(nproc --all)
echo
}
applyPatches() {
echo "--> Applying TrebleDroid patches"
bash treble_aosp/patch.sh treble_aosp trebledroid
echo
echo "--> Applying ponces personal patches"
rm treble_aosp/patches/personal/platform_frameworks_base/0001-gmscompat-Change-attestation-and-instrumentation-to-.patch
rm treble_aosp/patches/personal/platform_frameworks_base/0002-gmscompat-Spoof-Pixel-XL-for-Google-Photos.patch
rm treble_aosp/patches/personal/platform_frameworks_base/0003-monet-Use-Style.SPRITZ-by-default.patch
rm treble_aosp/patches/personal/platform_frameworks_base/0004-fw-b-Use-ro.build.version.incremental-to-signal-OTA-.patch
rm treble_aosp/patches/personal/platform_frameworks_base/0005-SystemUI-fix-SliceView-layout.patch
rm treble_aosp/patches/personal/platform_frameworks_base/0006-Add-android.permission.READ_PHONE_STATE-to-manifest.patch
rm treble_aosp/patches/personal/platform_frameworks_base/0007-permissions-Pre-grant-google-restore-permissions.patch
rm -R treble_aosp/patches/personal/platform_frameworks_base/0008-feat-Add-Lockscreen-Weather-with-OmniJaws-1-2.patch
rm -R treble_aosp/patches/personal/device_phh_treble
rm -R treble_aosp/patches/personal/platform_build
rm -R treble_aosp/patches/personal/platform_packages_apps_Trebuchet
rm -R treble_aosp/patches/personal/platform_packages_apps_Aperture
rm -R treble_aosp/patches/personal/platform_packages_apps_Settings/0001-feat-Add-Lockscreen-Weather-with-OmniJaws-2-2.patch
bash treble_aosp/patch.sh treble_aosp personal
echo
echo "--> Applying LeOS patches"
cp -R patches/leos treble_aosp/patches/leos
bash treble_aosp/patch.sh treble_aosp leos
echo "testlists"
cp LeOS/instrumentation_test_list.mk platform_testing/build/tasks/tests/
cp LeOS/platform_test_list.mk platform_testing/build/tasks/tests/
echo "texte"
cp LeOS/texte.sh .
bash texte.sh
echo
echo "--> Generating makefiles"
cp treble_aosp/build/aosp.mk device/phh/treble/
cd device/phh/treble
bash generate.sh aosp
cd ../../..
echo
}
setupEnv() {
echo "--> Setting up build environment"
source build/envsetup.sh &>/dev/null
# mkdir -p $BD
echo
}
buildTrebleApp() {
echo "--> Building treble_app"
cd treble_app
bash build.sh release
cp TrebleApp.apk ../vendor/hardware_overlay/TrebleApp/app.apk
cd ..
echo
}
buildVanillaVariant() {
echo "--> Building treble_arm64_bvS"
export WITHOUT_CHECK_API=true
export USE_CCACHE=1
export CCACHE_SIZE=50G
export WITH_SU=true
lunch leos_arm64_bvS-userdebug
#make installclean
make -j12 RELAX_USES_LIBRARY_CHECK=true systemimage
echo
echo "--> Building treble_a64_bvS"
export WITHOUT_CHECK_API=true
export USE_CCACHE=1
export CCACHE_SIZE=50G
export WITH_SU=true
lunch leos_a64_bvS-userdebug
#make installclean
make -j12 RELAX_USES_LIBRARY_CHECK=true systemimage
echo "--> Building LeOS-U-VNDKLITE-arm64-bvS.img"
cd treble_adapter
sudo bash lite-adapter.sh 64 ../out/target/product/leos_arm64_ab/system.img
mv s.img LeOS-U-VNDKLITE-arm64-bvS.img
sudo rm -rf d tmp
echo "--> Building LeOS-U-VNDKLITE-arm64-bvN"
sudo bash lite-adapterN.sh 64 ../out/target/product/leos_arm64_ab/system.img
mv s.img LeOS-U-VNDKLITE-arm64-bvN.img
sudo rm -rf d tmp
cd ..
echo
echo "--> Building LeOS-U-VNDKLITE-a64-bvS.img"
cd treble_adapter
sudo bash lite-adapterSa64.sh 32 ../out/target/product/leos_a64_ab/system.img
mv s.img LeOS-U-VNDKLITE-a64-bvS.img
sudo rm -rf d tmp
echo "--> Building LeOS-U-VNDKLITE-a64-bvN"
sudo bash lite-adapterNa64.sh 32 ../out/target/product/leos_a64_ab/system.img
mv s.img LeOS-U-VNDKLITE-a64-bvN.img
sudo rm -rf d tmp
cd ..
echo
cd prebuilts/prebuiltapks/foss_nano/
bash update.sh
cd ../../..
echo "--> Building treble_arm64_bvN"
export WITHOUT_CHECK_API=true
export USE_CCACHE=1
export CCACHE_SIZE=50G
export WITH_SU=true
lunch leos_arm64_bvN-userdebug
#make installclean
make -j12 RELAX_USES_LIBRARY_CHECK=true systemimage
echo
echo "--> Building treble_a64_bvN"
export WITHOUT_CHECK_API=true
export USE_CCACHE=1
export CCACHE_SIZE=50G
export WITH_SU=true
lunch leos_a64_bvN-userdebug
#make installclean
make -j12 RELAX_USES_LIBRARY_CHECK=true systemimage
}
generatePackages() {
echo "--> Generating packages"
cp out/target/product/leos_arm64_ab/system.img treble_adapter/LeOS-U-VNDK-arm64_bvN.img
cp out/target/product/leos_a64_ab/system.img treble_adapter/LeOS-U-VNDK-a64-bvN.img
cd treble_adapter
xz -vT0 *.img
cp *.img.xz /media/ich/exSSD2/leos-cloud/LeOS-Files/LeOS-U/$MONTH/
echo
}
echo "READY"
START=$(date +%s)
initRepos
syncRepos
applyPatches
setupEnv
buildTrebleApp
buildVanillaVariant
generatePackages
END=$(date +%s)
ELAPSEDM=$(($(($END-$START))/60))
ELAPSEDS=$(($(($END-$START))-$ELAPSEDM*60))
echo "--> Buildbot completed in $ELAPSEDM minutes and $ELAPSEDS seconds"
echo

View File

@ -0,0 +1,39 @@
From f2f3d891b2184e50cfd591940185510cc536f85d Mon Sep 17 00:00:00 2001
From: harvey186 <harvey186@hotmail.com>
Date: Tue, 17 Sep 2024 15:45:47 +0200
Subject: [PATCH] sepolicy_for_AP
---
sepolicy/netd.te | 1 +
sepolicy/platform_app.te | 11 +++++++++++
2 files changed, 12 insertions(+)
create mode 100644 sepolicy/netd.te
create mode 100644 sepolicy/platform_app.te
diff --git a/sepolicy/netd.te b/sepolicy/netd.te
new file mode 100644
index 0000000..bc71718
--- /dev/null
+++ b/sepolicy/netd.te
@@ -0,0 +1 @@
+allow netd platform_app:unix_stream_socket connectto;
diff --git a/sepolicy/platform_app.te b/sepolicy/platform_app.te
new file mode 100644
index 0000000..35445a4
--- /dev/null
+++ b/sepolicy/platform_app.te
@@ -0,0 +1,11 @@
+
+# allow platform_app to create named pipes (used for realm support)
+allow platform_app fuse:fifo_file create;
+allow platform_app app_data_file:fifo_file create_file_perms;
+allow platform_app app_data_file:fifo_file open;
+allow platform_app rs_exec:file rx_file_perms;
+
+# Allow platform apps to execute files in /data
+allow platform_app app_data_file:file execute;
+
+allow platform_app app_data_file:{ lnk_file sock_file fifo_file } create_file_perms;
--
2.34.1

View File

@ -0,0 +1,27 @@
From 7ff4e63d103067558c655a12f3581f138a3b6234 Mon Sep 17 00:00:00 2001
From: harvey186 <harvey186@hotmail.com>
Date: Wed, 18 Sep 2024 08:21:29 +0200
Subject: [PATCH] 06-adb_and_debugable
---
rw-system.sh | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/rw-system.sh b/rw-system.sh
index 52036c9..deee8ed 100644
--- a/rw-system.sh
+++ b/rw-system.sh
@@ -841,8 +841,8 @@ copyprop() {
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.debuggable 1
+ resetprop_phh ro.secure 0
resetprop_phh ro.build.type user
resetprop_phh --delete ro.build.selinux
--
2.34.1

View File

@ -0,0 +1,43 @@
From 627b1e49713a2a0b8dc49ebffb1938688ff1965a Mon Sep 17 00:00:00 2001
From: harvey186 <harvey186@hotmail.com>
Date: Wed, 18 Sep 2024 08:28:56 +0200
Subject: [PATCH] webview
---
.../res/res/xml/config_webview_packages.xml | 20 ++-----------------
1 file changed, 2 insertions(+), 18 deletions(-)
diff --git a/overlay/frameworks/base/core/res/res/xml/config_webview_packages.xml b/overlay/frameworks/base/core/res/res/xml/config_webview_packages.xml
index 3f96e59..33e82bf 100644
--- a/overlay/frameworks/base/core/res/res/xml/config_webview_packages.xml
+++ b/overlay/frameworks/base/core/res/res/xml/config_webview_packages.xml
@@ -13,24 +13,8 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
-
<webviewproviders>
-
- <webviewprovider description="Chrome Stable" packageName="com.android.chrome" availableByDefault="true">
- <signature>MIIEQzCCAyugAwIBAgIJAMLgh0ZkSjCNMA0GCSqGSIb3DQEBBAUAMHQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtHb29nbGUgSW5jLjEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDAeFw0wODA4MjEyMzEzMzRaFw0zNjAxMDcyMzEzMzRaMHQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtHb29nbGUgSW5jLjEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDCCASAwDQYJKoZIhvcNAQEBBQADggENADCCAQgCggEBAKtWLgDYO6IIrgqWbxJOKdoR8qtW0I9Y4sypEwPpt1TTcvZApxsdyxMJZ2JORland2qSGT2y5b+3JKkedxiLDmpHpDsz2WCbdxgxRczfey5YZnTJ4VZbH0xqWVW/8lGmPav5xVwnIiJS6HXk+BVKZF+JcWjAsb/GEuq/eFdpuzSqeYTcfi6idkyugwfYwXFU1+5fZKUaRKYCwkkFQVfcAs1fXA5V+++FGfvjJ/CxURaSxaBvGdGDhfXE28LWuT9ozCl5xw4Yq5OGazvV24mZVSoOO0yZ31j7kYvtwYK6NeADwbSxDdJEqO4k//0zOHKrUiGYXtqw/A0LFFtqoZKFjnkCAQOjgdkwgdYwHQYDVR0OBBYEFMd9jMIhF1Ylmn/Tgt9r45jk14alMIGmBgNVHSMEgZ4wgZuAFMd9jMIhF1Ylmn/Tgt9r45jk14aloXikdjB0MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEUMBIGA1UEChMLR29vZ2xlIEluYy4xEDAOBgNVBAsTB0FuZHJvaWQxEDAOBgNVBAMTB0FuZHJvaWSCCQDC4IdGZEowjTAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBAUAA4IBAQBt0lLO74UwLDYKqs6Tm8/yzKkEu116FmH4rkaymUIE0P9KaMftGlMexFlaYjzmB2OxZyl6euNXEsQH8gjwyxCUKRJNexBiGcCEyj6z+a1fuHHvkiaai+KL8W1EyNmgjmyy8AW7P+LLlkR+ho5zEHatRbM/YAnqGcFh5iZBqpknHf1SKMXFh4dd239FJ1jWYfbMDMy3NS5CTMQ2XFI1MvcyUTdZPErjQfTbQe3aDQsQcafEQPD+nqActifKZ0Np0IS9L9kR/wbNvyz6ENwPiTrjV2KRkEjH78ZMcUQXg0L3BYHJ3lc69Vs5Ddf9uUGGMYldX3WfMBEmh/9iFBDAaTCK</signature>
- </webviewprovider>
- <webviewprovider description="Chrome Beta" packageName="com.chrome.beta">
- <signature>MIIDwzCCAqugAwIBAgIJAOoj9MXoVhH6MA0GCSqGSIb3DQEBBQUAMHgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKDAtHb29nbGUgSW5jLjEQMA4GA1UECwwHQW5kcm9pZDEUMBIGA1UEAwwLY2hyb21lX2JldGEwHhcNMTYwMjI5MTUxNTIzWhcNNDMwNzE3MTUxNTIzWjB4MQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4gVmlldzEUMBIGA1UECgwLR29vZ2xlIEluYy4xEDAOBgNVBAsMB0FuZHJvaWQxFDASBgNVBAMMC2Nocm9tZV9iZXRhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAo/wW27nRxVqGbFOyXr8jtv2pc2Ke8XMr6Sfs+3JK2licVaAljGFpLtWH4wUdb50w/QQSPALNLSSyuK/94rtp5Jjs4RSJI+whuewV/R6El+mFXBO3Ek5/op4UrOsR91IM4emvS67Ji2u8gp5EmttVgJtllFZCbtZLPmKuTaOkOB+EdWIxrYiHVEEaAcQpEHa9UgWUZ0bMfPj8j3F0w+Ak2ttmTjoFGLaZjuBAYwfdctN1b0sdLT9Lif45kMCb8QwPp0F9/ozs0rrTc+I6vnTS8kfFQfk7GIE4Hgm+cYQEHkIA6gLJxUVWvPZGdulAZw7wPt/neOkazHNZPcV4pYuNLQIDAQABo1AwTjAdBgNVHQ4EFgQU5t7dhcZfOSixRsiJ1E46JhzPlwowHwYDVR0jBBgwFoAU5t7dhcZfOSixRsiJ1E46JhzPlwowDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAZO2jB8P1d8ki3KZILvp27a2VM3DInlp8I8UgG3gh7nBQfTrnZr5M1PL8eFHqX7MEvAiGCMTcrPklEhjtcHK/c7BcdeCWq6oL56UK3JTl33RxJcjmjrz3e3VI6ehRSm1feNAkMD0Nr2RWr2LCYheAEmwTPtluLOJS+i7WhnXJzBtg5UpUFEbdFYenqUbDzya+cUVp0197k7hUTs8/Hxs0wf79o/TZXzTBq9eYQkiITonRN8+5QCBl1XmZKV0IHkzGFES1RP+fTiZpIjZT+W4tasHgs9QTTks4CCpyHBAy+uy7tApe1AxCzihgecCfUN1hWIltKwGZS6EE0bu0OXPzaQ==</signature>
- </webviewprovider>
- <webviewprovider description="Chrome Dev" packageName="com.chrome.dev">
- <signature>MIIDwTCCAqmgAwIBAgIJAOSN+O0cdii5MA0GCSqGSIb3DQEBBQUAMHcxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKDAtHb29nbGUgSW5jLjEQMA4GA1UECwwHQW5kcm9pZDETMBEGA1UEAwwKY2hyb21lX2RldjAeFw0xNjAyMjkxNzUwMDdaFw00MzA3MTcxNzUwMDdaMHcxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKDAtHb29nbGUgSW5jLjEQMA4GA1UECwwHQW5kcm9pZDETMBEGA1UEAwwKY2hyb21lX2RldjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANOYPj6Y9rVt8xizSHDYjDEkDfFZAgSiZ9T6tevkQXsFyfaq3Gk3h2qssi29G6cTPJ2VXFKlVB71wSXv5p9/LEcDQPWQiO3Q2cLmgUXxyhJWXI3g96tPAhZQX2q6SC37ZQdiBR/raMO70DAkvCyBGtNplsvutzSE3oZ7LYfzB8vTbe7zCh3fDYSS/7xb3ZVvFqydHS40uVq1qqg1S80Pge7tW3pDGsPMZN7yA4yfmsvA1rbHm9N8t3Rc9hqzh6OxNAAgRB535YcsWL7iF+mpdFILXk3jLYT0nMvMnB83rsdgnRREjlGQYHl2mh8+6CqujsW/eICDq/LR6BYDyqHhk0ECAwEAAaNQME4wHQYDVR0OBBYEFKzsl07JglgpbeYDYGqsgqRDo+01MB8GA1UdIwQYMBaAFKzsl07JglgpbeYDYGqsgqRDo+01MAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBACka6SFF6xAcj8L8O6R36++E09DTiGZEjvKT8eIycgcQQ+p1WUmPb6M2EJpN6zvvSE62ussmXdzf8rIyc0JXA8jbViZt62Y39epNENFxPTLN9QzXlT+w8AW73Ka3cnbOuL5EgoDl8fM79WVlARY3X+wB/jGNrkiGIdRm2IZIeAodWgC2mtXMiferyYBKz2/F2bhnU6DwgCbegS8trFjEWviijWdJ+lBdobn7LRc3orZCtHl8UyvRDi7cye3sK9y3BM39k0g20F21wTNHAonnvL6zbuNgpd+UEsVxDpOeWrEdBFN7Md0CI2wnu8eA8ljJD45v0WWMEoxsIi131g5piNM=</signature>
- </webviewprovider>
- <webviewprovider description="Chrome Canary" packageName="com.chrome.canary">
- <signature>MIIDxzCCAq+gAwIBAgIJAML7APITsgV7MA0GCSqGSIb3DQEBBQUAMHoxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKDAtHb29nbGUgSW5jLjEQMA4GA1UECwwHQW5kcm9pZDEWMBQGA1UEAwwNY2hyb21lX2NhbmFyeTAeFw0xNjAyMjkxOTA5MDdaFw00MzA3MTcxOTA5MDdaMHoxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKDAtHb29nbGUgSW5jLjEQMA4GA1UECwwHQW5kcm9pZDEWMBQGA1UEAwwNY2hyb21lX2NhbmFyeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANXfeAoZlr0ya1HBzIfAz/nLLjpPJeAPvuX5dueaxmiQgv2hNG22acriFuiiJI6TU0t8AIVJD5Ifbc4OOuA0zeFhdzWWGnmTRH6x27WI7bzOKnAqOvv21ZBmE9i8Vo++K13xWdTs3qVn1bn9oUONxFu0wKDzXYZhoj1Jom0RZGjXm16xuPlEuOzMcjiNBDoYuxPAXkMcK/G1gP4P4nAV8Rd/GGIjKRS/SUtcShhoAMOQhs4WIEkUrvEVRwhBDIbpM87oFbCVdBH38r0XS6F6CdhPJsKFhoEfq4c01HZqNmDpCPA8AAcCuSWqmXoTIqs7OqkWgduE2bInbWU7WMaTl+kCAwEAAaNQME4wHQYDVR0OBBYEFB/AsC4iPAqaLoNytNSx29qByI7+MB8GA1UdIwQYMBaAFB/AsC4iPAqaLoNytNSx29qByI7+MAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAMb2Td3ro/+MGVnCPAbwBSOZMVLUKGqt6zr8CShW9mtFHnmy29EaWSYYAj1M4+6Vpkq85NsgBEck7rnUjV8A3Q0NKdTys1KRKJqVvQRBN6SwqQenSf/abxQCa8Z+69rh+3BkIU1HLtu5lrMDZwon5H91L5mpORn6vItd20uW132lwSDeUEW2CHslTrodoFuTUcSUlRiq/URfUH3baO1QHXkxpQwrBPKL5deJfcZnxh5MAtAGSQL7gHvayEFlDppETXdDO7vgGTH2dEK2TjKWALbGiKkxSqjRyTNt4/FOj10TqNRdUamj+ydVJgzGQ8bki4Vc6NnKm/r4asusxapkVR4=</signature>
+ <!-- The default WebView implementation -->
+ <webviewprovider description="LeOS WebView" packageName="com.leos.ium_wv" availableByDefault="true">
</webviewprovider>
- <webviewprovider description="Google WebView" packageName="com.google.android.webview" availableByDefault="true">
-<signature>MIIDuzCCAqOgAwIBAgIJANi6DgBQG4ZTMA0GCSqGSIb3DQEBBQUAMHQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKDAtHb29nbGUgSW5jLjEQMA4GA1UECwwHQW5kcm9pZDEQMA4GA1UEAwwHd2VidmlldzAeFw0xNDA4MDgyMzIwMjBaFw00MTEyMjQyMzIwMjBaMHQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKDAtHb29nbGUgSW5jLjEQMA4GA1UECwwHQW5kcm9pZDEQMA4GA1UEAwwHd2VidmlldzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbtaFX0r5aZJMAbPVMAgK1ZZ29dTn91VsGxXv2hqrQo7IpqEy2JmPvPnoMsSiuTAe+UcQy8oKDQ2aYVSAd1DGIy+nSRyFTt3LSIAdwSBkB1qT4a+OqkpsR6bSNXQXQ18lCQu9gREY3h3QlYBQAyzRxw4hRGlrXAzuSz1Ec4W+6x4nLG5DG61MAMR8ClF9XSqbmGB3kyZ70A0X9OPYYxiMWP1ExaYvpaVqjyZZcrPwr+vtW8oCuGBUtHpBUH3OoG+9s2YMcgLG7vCK9awKDqlPcJSpIAAj6uGs4gORmkqxZRMskLSTWbhP4p+3Ap8jYzTVB6Y1/DMVmYTWRMcPW0macCAwEAAaNQME4wHQYDVR0OBBYEFJ6bAR6/QVm4w9LRSGQiaR5Rhp3TMB8GA1UdIwQYMBaAFJ6bAR6/QVm4w9LRSGQiaR5Rhp3TMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAEQu8QiVxax7/diEiJrgKE1LwdXsIygJK/KnaKdnYEkAQpeu/QmrLiycm+OFbL1qHJIB7OuI/PQBUtcaNSiJSCVgtwtEbZWWIdsynqG/Nf4aGOndXegSQNRH54M05sRHLoeRycPrY7xQlEwGikNFR76+5UdwFBQI3Gn22g6puJnVukQm/wXQ+ajoiS4QclrNlixoDQsZ4STLH4+Wju2wIWKFFArIhVEIlbamq+p6BghuzH3aIz/Fy0YTQKi7SA+0fuNeCaqlSm5pYSt6p5CH89y1Fr+wFc5r3iLRnUwRcy08ESC7bZJnxV3d/YQ5valTxBbzku/dQbXVj/xg69H8l8M=</signature>
-</webviewprovider>
- <!-- The default WebView implementation -->
- <webviewprovider description="AOSP WebView" packageName="com.android.webview" availableByDefault="true" isFallback="true" />
</webviewproviders>
--
2.34.1

View File

@ -1,72 +0,0 @@
From 1082d6863ee84feb2f1f6bee871b9f8ad069559e Mon Sep 17 00:00:00 2001
From: harvey186 <harvey186@hotmail.com>
Date: Fri, 15 Dec 2023 18:04:59 +0100
Subject: [PATCH] AdvancedPrivacy
---
sepolicy/netd.te | 1 +
sepolicy/platform_app.te | 11 +++++++++++
sepolicy/service.te | 8 ++++++++
sepolicy/updater_app.te | 22 ++++++++++++++++++++++
4 files changed, 207 insertions(+), 1 deletion(-)
create mode 100644 sepolicy/netd.te
create mode 100644 sepolicy/platform_app.te
create mode 100644 sepolicy/updater_app.te
diff --git a/sepolicy/netd.te b/sepolicy/netd.te
new file mode 100644
index 0000000..bc71718
--- /dev/null
+++ b/sepolicy/netd.te
@@ -0,0 +1 @@
+allow netd platform_app:unix_stream_socket connectto;
diff --git a/sepolicy/platform_app.te b/sepolicy/platform_app.te
new file mode 100644
index 0000000..35445a4
--- /dev/null
+++ b/sepolicy/platform_app.te
@@ -0,0 +1,11 @@
+
+# allow platform_app to create named pipes (used for realm support)
+allow platform_app fuse:fifo_file create;
+allow platform_app app_data_file:fifo_file create_file_perms;
+allow platform_app app_data_file:fifo_file open;
+allow platform_app rs_exec:file rx_file_perms;
+
+# Allow platform apps to execute files in /data
+allow platform_app app_data_file:file execute;
+
+allow platform_app app_data_file:{ lnk_file sock_file fifo_file } create_file_perms;
diff --git a/sepolicy/updater_app.te b/sepolicy/updater_app.te
new file mode 100644
index 0000000..ff82e4e
--- /dev/null
+++ b/sepolicy/updater_app.te
@@ -0,0 +1,22 @@
+type updater_app, domain, coredomain;
+
+app_domain(updater_app)
+net_domain(updater_app)
+
+binder_call(updater_app, gpuservice)
+binder_call(updater_app, update_engine)
+
+allow updater_app app_api_service:service_manager find;
+allow updater_app recovery_service:service_manager find;
+allow updater_app system_api_service:service_manager find;
+allow updater_app system_update_service:service_manager find;
+allow updater_app update_engine_service:service_manager find;
+
+allow updater_app app_data_file:dir create_dir_perms;
+allow updater_app app_data_file:{ file lnk_file } create_file_perms;
+
+allow updater_app cache_file:dir r_dir_perms;
+
+get_prop(updater_app, default_prop)
+get_prop(updater_app, build_prop)
+
--
2.34.1

View File

@ -0,0 +1,129 @@
From 2f2ead522831866be8aa31aeac73debe5512af57 Mon Sep 17 00:00:00 2001
From: harvey186 <harvey186@hotmail.com>
Date: Tue, 17 Sep 2024 15:39:40 +0200
Subject: [PATCH] updater_app
---
atv/private/system_app.te | 2 --
atv/sepolicy.mk | 12 ------------
atv/vendor/gmscore_app.te | 2 --
common/private/seapp_contexts | 2 +-
common/private/update_engine.te | 13 -------------
common/private/updater_app.te | 31 -------------------------------
qcom/dynamic/dontaudit.te | 1 -
7 files changed, 1 insertion(+), 62 deletions(-)
delete mode 100644 atv/private/system_app.te
delete mode 100644 atv/sepolicy.mk
delete mode 100644 atv/vendor/gmscore_app.te
delete mode 100644 common/private/update_engine.te
delete mode 100644 common/private/updater_app.te
delete mode 100644 qcom/dynamic/dontaudit.te
diff --git a/atv/private/system_app.te b/atv/private/system_app.te
deleted file mode 100644
index 6c7f09b..0000000
--- a/atv/private/system_app.te
+++ /dev/null
@@ -1,2 +0,0 @@
-# Allow TvSettings to read/write adb port prop
-set_prop(system_app, adbd_config_prop)
diff --git a/atv/sepolicy.mk b/atv/sepolicy.mk
deleted file mode 100644
index 92626b0..0000000
--- a/atv/sepolicy.mk
+++ /dev/null
@@ -1,12 +0,0 @@
-#
-# This policy configuration will be used by atv products that
-# inherit from Lineage
-#
-
-ifneq ($(TARGET_USES_PREBUILT_VENDOR_SEPOLICY), true)
-BOARD_SEPOLICY_DIRS += \
- device/voltage/sepolicy/atv/vendor
-endif
-
-PRODUCT_PRIVATE_SEPOLICY_DIRS += \
- device/voltage/sepolicy/atv/private
diff --git a/atv/vendor/gmscore_app.te b/atv/vendor/gmscore_app.te
deleted file mode 100644
index 3b2c9f3..0000000
--- a/atv/vendor/gmscore_app.te
+++ /dev/null
@@ -1,2 +0,0 @@
-get_prop(gmscore_app, apexd_prop)
-get_prop(gmscore_app, apk_verity_prop)
diff --git a/common/private/seapp_contexts b/common/private/seapp_contexts
index 35c4edb..7cc8d73 100644
--- a/common/private/seapp_contexts
+++ b/common/private/seapp_contexts
@@ -1,2 +1,2 @@
user=_app isPrivApp=true seinfo=mediashell domain=mediashell_app name=com.google.android.apps.mediashell type=app_data_file levelFrom=all
-user=_app isPrivApp=true seinfo=platform name=com.voltage.updater domain=updater_app type=app_data_file levelFrom=user
+
diff --git a/common/private/update_engine.te b/common/private/update_engine.te
deleted file mode 100644
index 7718ff9..0000000
--- a/common/private/update_engine.te
+++ /dev/null
@@ -1,13 +0,0 @@
-# Allow update_engine to call the callback function provided by updater_app
-binder_call(update_engine, updater_app)
-
-# Read updates from storage data
-r_dir_file(update_engine, mnt_user_file)
-r_dir_file(update_engine, storage_file)
-
-# Allow mount and unmount of system partition
-allow update_engine labeledfs:filesystem { mount unmount };
-
-# Allow transition to backuptool domain
-allow update_engine self:process setexec;
-domain_trans(update_engine, otapreopt_chroot_exec, backuptool)
diff --git a/common/private/updater_app.te b/common/private/updater_app.te
deleted file mode 100644
index 915885f..0000000
--- a/common/private/updater_app.te
+++ /dev/null
@@ -1,31 +0,0 @@
-type updater_app, domain, coredomain;
-
-app_domain(updater_app)
-net_domain(updater_app)
-
-binder_call(updater_app, gpuservice)
-binder_call(updater_app, update_engine)
-
-allow updater_app app_api_service:service_manager find;
-allow updater_app recovery_service:service_manager find;
-allow updater_app system_api_service:service_manager find;
-allow updater_app update_engine_service:service_manager find;
-
-allow updater_app app_data_file:dir create_dir_perms;
-allow updater_app app_data_file:{ file lnk_file } create_file_perms;
-
-allow updater_app cache_file:dir r_dir_perms;
-
-allow updater_app cache_recovery_file:dir rw_dir_perms;
-allow updater_app cache_recovery_file:file create_file_perms;
-
-allow updater_app system_data_file:dir r_dir_perms;
-allow updater_app user_profile_root_file:dir r_dir_perms;
-
-allow updater_app ota_package_file:dir create_dir_perms;
-allow updater_app ota_package_file:file create_file_perms;
-
-get_prop(updater_app, default_prop)
-get_prop(updater_app, build_prop)
-
-set_prop(updater_app, recovery_update_prop)
diff --git a/qcom/dynamic/dontaudit.te b/qcom/dynamic/dontaudit.te
deleted file mode 100644
index 313ca25..0000000
--- a/qcom/dynamic/dontaudit.te
+++ /dev/null
@@ -1 +0,0 @@
-dontaudit gmscore_app { adsprpcd_file bt_firmware_file firmware_file }:filesystem getattr;
--
2.34.1

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,37 @@
From 4cab2078f5c92f04ad073d933d892a9f0d6322c1 Mon Sep 17 00:00:00 2001
From: harvey186 <harvey186@hotmail.com>
Date: Fri, 6 Oct 2023 15:34:12 +0200
Subject: [PATCH] packages_apps_DocumentsUI
Change-Id: I22b2011b408f7c6c7adfb698a00cbf20ddbd1c1e
---
AndroidManifest.xml | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index ef86ab779..e8136be21 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -39,6 +39,10 @@
<uses-permission android:name="android.permission.READ_COMPAT_CHANGE_CONFIG"/>
<uses-permission android:name="android.permission.START_FOREGROUND_SERVICES_FROM_BACKGROUND"/>
+
+ <uses-feature
+ android:name="android.software.leanback"
+ android:required="true" />
<application
android:name=".DocumentsApplication"
@@ -106,7 +110,7 @@
android:icon="@drawable/launcher_icon" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.LAUNCHER" />
+ <category android:name="android.intent.category.LEANBACK_LAUNCHER" />
<category android:name="android.intent.category.APP_FILES" />
</intent-filter>
<meta-data android:name="android.app.shortcuts" android:resource="@xml/shortcuts" />
--
2.34.1

View File

@ -0,0 +1,803 @@
From a120d979b43f623f53580e30b993702b8dfebb89 Mon Sep 17 00:00:00 2001
From: harvey186 <harvey186@hotmail.com>
Date: Sat, 27 Jan 2024 15:24:59 +0100
Subject: [PATCH] 2-LeOS-Stuff
---
.../ic_launcher_home_foreground.png | Bin 236 -> 10303 bytes
.../ic_launcher_home_foreground.png | Bin 339 -> 10189 bytes
.../ic_launcher_home_foreground.png | Bin 357 -> 11530 bytes
.../ic_launcher_home_foreground.png | Bin 485 -> 13582 bytes
res/values/voltage_strings.xml | 26 +++++++++---------
.../launcher3/customization/IconDatabase.java | 2 +-
.../launcher3/icons/pack/IconPackManager.java | 3 +-
.../preference/IconPackPrefSetter.java | 2 +-
8 files changed, 17 insertions(+), 16 deletions(-)
diff --git a/res/mipmap-hdpi/ic_launcher_home_foreground.png b/res/mipmap-hdpi/ic_launcher_home_foreground.png
index d068d92361a06550fb1bcdf36fbc4bf56242d54e..6f56658b732a7ea0c99e05e73ff13e6cac45a836 100644
GIT binary patch
literal 10303
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
delta 219
zcmdlV@P=`MWIZzj14ELrb19IL2=EDU1=2vUfB*jf|Noz1U`U(Ez%cWS@z$pYva%|G
z5{xB5e!&b5&u*jvIZd7}jv*Dd-d@<q*I>ZWl9=s!|9`J(h}0}^cJafee=fH^l)kY^
zhdb!vwdSsFS*O(Nx6;}JRz_{->lJZ28oftAE5k6vX~h{GE)G$_m0|ZY0v&$HUffl*
z>i`$8=;<j7*<!D8M^02cADSya+rcfs(P*2>ml%<z6^hymUtE};<P<sW?>%0QKcbR*
S8gjWnuJ&~Gb6Mw<&;$V3b5<Py
diff --git a/res/mipmap-mdpi/ic_launcher_home_foreground.png b/res/mipmap-mdpi/ic_launcher_home_foreground.png
index 0ed9f4d814770dbeb83f97d2050b465e2a7f4479..96fd67890d7b88ed503ccf760b5fed68d08127ed 100644
GIT binary patch
literal 10189
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
delta 298
zcmV+_0oDG^PtyXB7)JyH0001eNJ{<y000<JOjJc-Z~y=R0KdP#|NsBY003s0005cH
zGqvTP7?^Yb0004WQchC<K<3zH00001VoOIv0Eh)0NRtaA9)IBj0}(SGS6L>l0002A
zNkl<ZSi|kq!3n}Z5QSj{3&=z*z!3}3LC+r2fouhW4S2A9XR<{0pav1wcX;1zA^+jA
zWG53MBBKAAiZtk%^q?~z)~c>PomVyURjO)cF>ls&N4zW#TU*$QED*EDu*{EeSvkyx
zc@0(;!!{|t-dCq`9#A$6OYUTLxP<fQysBBeRjvA}%(I)j_Su_xb+ahvW;@NwZ0z2u
wXV11_X0lA>FNc}MHfG;sFF<8PL`1)F2dbd5nG&7YzW@LL07*qoM6N<$f;0Jk$p8QV
diff --git a/res/mipmap-xhdpi/ic_launcher_home_foreground.png b/res/mipmap-xhdpi/ic_launcher_home_foreground.png
index 7a9daf5bfe7a5fcfdf7e772dfe5300373d287389..ebdac95bfdd2fcaed0f9c1249300f4498c8ccc73 100644
GIT binary patch
literal 11530
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
a{)ML=F<!G@Xm#@vR82`su~^<Z=>Gw?9P}3e
delta 316
zcmeB*ddf6G!kvYgfq|i#&)^=Ak_hk#aZM}$vKaR7-~a#r|1%5>X)_rZW}Y$L`gFd;
zj1r&(V@Z%-FoVOh8)+a;lDE4HLkFv@$7FX!x%!99%z{SDx-QkGK)GX{E{-7;x8B}3
z$a_dZqT%AY3!=N4w0AIR?`V2``@)n9S-iKLd~5D^7W}y1D&Tb8bCL=Ky`26k+2F>@
zi21C|b31&G39Np1Fd_Al>a;!CJZ#y`w%$A0n@taITQZfs`RcKI-m9f0*;co!YPL*p
zd!G4P*;ZoBj|=TPGk@v6X5eSj{$Up7c~ZLfcT8XHW1uNdOfn+2wZ7f^HE{#enh!4y
zC+Kc0eEw8flr6je>H81~9=6}nZx$zPsG0$Fisz)VFAP(rp7j^{yR`!7B?eDdKbLh*
G2~7YzHHK#Z
diff --git a/res/mipmap-xxhdpi/ic_launcher_home_foreground.png b/res/mipmap-xxhdpi/ic_launcher_home_foreground.png
index 03b493e4a3513a3c688698348ddd64180bdfe33d..3b36de5625124acc4e6cc3f28425edbd76b82e37 100644
GIT binary patch
literal 13582
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
literal 485
zcmeAS@N?(olHy`uVBq!ia0y~yU~~at7G|Kx+9Oe4fs{mmPl#(`0g%P8fB*jf|Noz1
zU`U(Ez%cWS@z$sFC1#WWB^XPB{DK)Ap4~_Tagw~<T^Kr8Wj%l#&H|6fVg?3oVGw3y
zm^DWND9B#o>Fdh=keOM~z{;U~;(nkWH%}MGkcwMx?>J^PJ213eWT|Rc;>$1K&40mb
z)44_F8kUX<;wKhe&*wh3KyqtSr{BZ9OS$TH%ZtY70L?=J5*a(!tx@rsq7nGW-XlgG
z%u3qVSr{VMeadY6%!wL-i(EQ&7Yn`WGRin}=CJ!y1(1Nyb8jE_r%U&I6I*xF1E_b=
zk(t8PZmOdC)4=LKtMExq-Bg_xCZq~9x$x4FV=MN^)tgwAot)SQH8NPGtmo9mcg9=Z
zoWJfTe5MCzrm9zt<kT4w+f_t`_rKEfe3YB+2C_=^+ZMal*?Yy;wyE6vdD9gvRHo7w
zAr8_pWrp*k_bZ><#~t?uJ7bNI^lK%s3qdvm-8H)=NY)XoC+**TXC#j^Ff{zEVRl>T
U{kpq~Z7)c|)78&qol`;+0B9eraR2}S
diff --git a/src/com/android/launcher3/customization/IconDatabase.java b/src/com/android/launcher3/customization/IconDatabase.java
index 0673471fff..0c20d51675 100644
--- a/src/com/android/launcher3/customization/IconDatabase.java
+++ b/src/com/android/launcher3/customization/IconDatabase.java
@@ -14,7 +14,7 @@ public class IconDatabase {
private static final String PREF_FILE_NAME = BuildConfig.APPLICATION_ID + ".ICON_DATABASE";
public static final String KEY_ICON_PACK = "pref_icon_pack";
- public static final String VALUE_DEFAULT = "";
+ public static final String VALUE_DEFAULT = "com.leos.icons";
public static String getGlobal(Context context) {
return LauncherPrefs.getPrefs(context).getString(KEY_ICON_PACK, VALUE_DEFAULT);
diff --git a/src/com/android/launcher3/icons/pack/IconPackManager.java b/src/com/android/launcher3/icons/pack/IconPackManager.java
index 8c54880e52..eb7a41d631 100644
--- a/src/com/android/launcher3/icons/pack/IconPackManager.java
+++ b/src/com/android/launcher3/icons/pack/IconPackManager.java
@@ -38,7 +38,8 @@ public class IconPackManager extends BroadcastReceiver {
"com.gau.go.launcherex.theme",
"org.adw.launcher.THEMES",
"net.oneplus.launcher.icons.ACTION_PICK_ICON",
- "org.adw.launcher.icons.ACTION_PICK_ICON"
+ "org.adw.launcher.icons.ACTION_PICK_ICON",
+ "com.leos.icons"
};
private static final Intent[] ICON_INTENTS = new Intent[ICON_INTENT_ACTIONS.length];
diff --git a/src/com/android/launcher3/settings/preference/IconPackPrefSetter.java b/src/com/android/launcher3/settings/preference/IconPackPrefSetter.java
index 04eb869c0a..5cd2fd28c0 100644
--- a/src/com/android/launcher3/settings/preference/IconPackPrefSetter.java
+++ b/src/com/android/launcher3/settings/preference/IconPackPrefSetter.java
@@ -50,7 +50,7 @@ public class IconPackPrefSetter implements ReloadingListPreference.OnReloadListe
// First value, system default, or the current icon pack if that has no icon yet.
keys[i] = mContext.getResources().getString(R.string.icon_pack_default_label);
- values[i++] = packList.containsKey(globalPack) ? "" : globalPack;
+ values[i++] = packList.containsKey(globalPack) ? "com.leos.icons" : globalPack;
// List of available icon packs
List<Map.Entry<String, CharSequence>> packs = new ArrayList<>(packList.entrySet());
--
2.34.1

View File

@ -0,0 +1,50 @@
diff --git a/res/drawable/ic_e_settings_advanced_privacy.xml b/res/drawable/ic_e_settings_advanced_privacy.xml
new file mode 100644
index 0000000000..747fd5c6b3
--- /dev/null
+++ b/res/drawable/ic_e_settings_advanced_privacy.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright Murena SAS 2023
+ ~ This program is free software: you can redistribute it and/or modify
+ ~ it under the terms of the GNU General Public License as published by
+ ~ the Free Software Foundation, either version 3 of the License, or
+ ~ (at your option) any later version.
+ ~
+ ~ This program is distributed in the hope that it will be useful,
+ ~ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ ~ GNU General Public License for more details.
+ ~
+ ~ You should have received a copy of the GNU General Public License
+ ~ along with this program. If not, see <https://www.gnu.org/licenses/>.
+ -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="36dp"
+ android:height="36dp"
+ android:viewportWidth="32"
+ android:viewportHeight="32">
+ <group>
+ <clip-path
+ android:pathData="M0,0h32v32h-32z"/>
+ <path
+ android:pathData="M7,0L25,0A7,7 0,0 1,32 7L32,25A7,7 0,0 1,25 32L7,32A7,7 0,0 1,0 25L0,7A7,7 0,0 1,7 0z"
+ android:fillColor="#2CCF69"/>
+ <path
+ android:pathData="M15.983,6.667V6.667C15.917,6.666 15.85,6.675 15.785,6.693L7.869,10.044C7.815,10.069 7.765,10.111 7.727,10.168C7.689,10.228 7.667,10.301 7.667,10.377L7.667,10.379C7.667,18.181 12.058,23.35 15.862,24.975L15.865,24.977C15.902,24.992 15.94,25 15.978,25C16.016,25 16.054,24.992 16.091,24.977L16.097,24.974L16.097,24.974C19.126,23.687 24.324,19.049 24.333,10.402C24.33,10.323 24.305,10.248 24.263,10.186C24.22,10.122 24.162,10.075 24.099,10.049C24.099,10.049 24.099,10.049 24.099,10.049L16.169,6.691C16.112,6.675 16.053,6.667 15.994,6.667L15.983,6.667ZM16.75,5.127L24.75,8.514C25.114,8.669 25.425,8.927 25.647,9.258C25.869,9.589 25.992,9.979 26,10.379C26,19.777 20.332,24.986 16.749,26.508C16.505,26.613 16.243,26.667 15.978,26.667C15.713,26.667 15.451,26.613 15.207,26.508C10.749,24.603 6,18.803 6,10.379C5.999,9.982 6.114,9.594 6.328,9.262C6.543,8.931 6.849,8.671 7.208,8.514L15.207,5.127C15.463,5.041 15.73,4.998 15.999,5C16.255,5.001 16.508,5.044 16.75,5.127Z"
+ android:fillColor="#ffffff"
+ android:fillType="evenOdd"/>
+ <path
+ android:pathData="M13.672,11.986C13.998,12.312 13.998,12.84 13.672,13.165C13.03,13.808 12.708,14.649 12.708,15.493C12.708,16.336 13.03,17.177 13.672,17.82C14.315,18.463 15.156,18.784 16,18.784C16.844,18.784 17.684,18.463 18.327,17.82C18.97,17.177 19.291,16.336 19.291,15.493C19.291,14.649 18.97,13.808 18.327,13.165C18.002,12.84 18.002,12.312 18.327,11.986C18.653,11.661 19.18,11.661 19.506,11.986C20.474,12.955 20.958,14.225 20.958,15.493C20.958,16.76 20.474,18.03 19.506,18.998C18.538,19.966 17.267,20.451 16,20.451C14.732,20.451 13.462,19.966 12.494,18.998C11.526,18.03 11.042,16.76 11.042,15.493C11.042,14.225 11.526,12.955 12.494,11.986C12.819,11.661 13.347,11.661 13.672,11.986Z"
+ android:fillColor="#ffffff"
+ android:fillType="evenOdd"/>
+ <path
+ android:pathData="M16.085,11C16.545,11 16.918,11.373 16.918,11.833L16.918,15.554C16.918,16.014 16.545,16.387 16.085,16.387C15.624,16.387 15.251,16.014 15.251,15.554L15.251,11.833C15.251,11.373 15.624,11 16.085,11Z"
+ android:fillColor="#ffffff"
+ android:fillType="evenOdd"/>
+ </group>
+</vector>
--
2.34.1

View File

@ -0,0 +1,26 @@
From 303318fdb86134983f05c43d24bbc9aea09e90ad Mon Sep 17 00:00:00 2001
From: harvey186 <harvey186@hotmail.com>
Date: Tue, 17 Sep 2024 16:28:34 +0200
Subject: [PATCH] 0001bV-AdvancedPrivacy_new
---
res/values/voltage_strings.xml | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/res/values/voltage_strings.xml b/res/values/voltage_strings.xml
index ba40495..795ca19 100644
--- a/res/values/voltage_strings.xml
+++ b/res/values/voltage_strings.xml
@@ -521,5 +521,9 @@ When the screen is off, the torch can be enabled with one of the following key c
<!-- Desktop Mode Settings -->
<string name="desktop_mode_pc_title">Desktop Mode</string>
<string name="desktop_mode_pc_summary">Emulate device to PC or external display</string>
+
+ <!-- LeOS Advanced Privacy -->
+ <string name="advanced_privacy_dashboard_title" translatable="false">Advanced Privacy</string>
+ <string name="advanced_privacy_dashboard_summary">Manage trackers, fake location, hide IP address</string>
</resources>
--
2.34.1

File diff suppressed because it is too large Load Diff

View File

@ -1,18 +1,17 @@
From 851dbf4d898d38985f3849c66230c7d9b396f67c Mon Sep 17 00:00:00 2001
From 088ffbcee50206db97b02081a6f41ebc6a62064d Mon Sep 17 00:00:00 2001
From: harvey186 <harvey186@hotmail.com>
Date: Wed, 13 Dec 2023 10:08:49 +0100
Date: Tue, 17 Sep 2024 15:55:45 +0200
Subject: [PATCH] webview
---
.../res/xml/config_webview_packages.xml | 29 ++----------------
TrebleApp/app.apk | Bin 1607410 -> 1607410 bytes
2 files changed, 2 insertions(+), 27 deletions(-)
.../res/xml/config_webview_packages.xml | 32 ++-----------------
1 file changed, 2 insertions(+), 30 deletions(-)
diff --git a/HighPriorityMisc/res/xml/config_webview_packages.xml b/HighPriorityMisc/res/xml/config_webview_packages.xml
index 6abcfe2..33e82bf 100644
index de4c2dc..33e82bf 100644
--- a/HighPriorityMisc/res/xml/config_webview_packages.xml
+++ b/HighPriorityMisc/res/xml/config_webview_packages.xml
@@ -13,33 +13,8 @@
@@ -13,36 +13,8 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
@ -44,6 +43,9 @@ index 6abcfe2..33e82bf 100644
- </webviewprovider>
- <webviewprovider description="Bromite WebView" packageName="org.bromite.webview" availableByDefault="true">
- <signature>MIIDbTCCAlWgAwIBAgIEHcsmjjANBgkqhkiG9w0BAQsFADBmMQswCQYDVQQGEwJERTEQMA4GA1UECBMHVW5rbm93bjEPMA0GA1UEBxMGQmVybGluMRAwDgYDVQQKEwdCcm9taXRlMRAwDgYDVQQLEwdCcm9taXRlMRAwDgYDVQQDEwdjc2FnYW41MCAXDTE4MDExOTA3MjE1N1oYDzIwNjgwMTA3MDcyMTU3WjBmMQswCQYDVQQGEwJERTEQMA4GA1UECBMHVW5rbm93bjEPMA0GA1UEBxMGQmVybGluMRAwDgYDVQQKEwdCcm9taXRlMRAwDgYDVQQLEwdCcm9taXRlMRAwDgYDVQQDEwdjc2FnYW41MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtakjGj0eTavbBB2vWXj8KBixWn4zgXAKc+yGFu3SLEGF1VB5aJWwcMHxVI55yH/8M2eNnJP0BkSidfKgPVcm1sk/GrNEs9uk5sWod9byO5M5QWQmGP2REeTd6J0BVVVaMp2MZnqeR3Su3pwFzrSwTqIGyf8dkPSEz7ifj792+EeRNrov4oRQK7lIfqInzwc4d34wU069Lrw6m7J7HM0KbRYISsWMiYj025Qg+dTrtdWt7jbdcj7htW0eYyJoLd90+s43RWnOpENmWpcWv1EVPxUD4mCdV9idYwoHRIESpSu9IWvqDZp1VoRc43nLgsNfNBwmYdTkIaPiz1m7TBcr7QIDAQABoyEwHzAdBgNVHQ4EFgQUuWoGd7W7wMyQ1pOdjiMv10YHTR0wDQYJKoZIhvcNAQELBQADggEBAA7iw6eKz+T8HIpKDoDcX1Ywjn9JUzuCFu20LnsLzreO/Pog1xErYjdLAS7LTZokfbAnitBskO9QhV9BYkDiM0Qr5v2/HsJTtxa1mz9ywCcI36jblMyuXFj8tuwQI9/t9i+Fc3+bOFBV3t7djPo9qX1dIK0lZ6s8HcIhaCNdqm65fH+nWhC/H9djqC6qOtrkTiACKEcHQ4a/5dfROU0q0M4bS4YuiaAQWgjiGbik4LrZ8wZX1aqJCLt0Hs7MzXyyf0cRSO11FIOViHwzh6WTZGufq2J3YBFXPond8kLxkKL3LNezbi5yTcecxsbKQ6OS46CnIKcy/M8asSreLpoCDvw=</signature>
- </webviewprovider>
- <webviewprovider description="Mulch WebView" packageName="us.spotco.mulch_wv" availableByDefault="true">
- <signature>MIIJdzCCBV+gAwIBAgIEDNgMsTANBgkqhkiG9w0BAQsFADBsMRAwDgYDVQQGEwdVbmtub3duMRAwDgYDVQQIEwdVbmtub3duMRAwDgYDVQQHEwdVbmtub3duMRAwDgYDVQQKEwdVbmtub3duMRAwDgYDVQQLEwdVbmtub3duMRAwDgYDVQQDEwdVbmtub3duMB4XDTE1MTAyNDEwMzM1NloXDTQzMDMxMTEwMzM1NlowbDEQMA4GA1UEBhMHVW5rbm93bjEQMA4GA1UECBMHVW5rbm93bjEQMA4GA1UEBxMHVW5rbm93bjEQMA4GA1UEChMHVW5rbm93bjEQMA4GA1UECxMHVW5rbm93bjEQMA4GA1UEAxMHVW5rbm93bjCCBCIwDQYJKoZIhvcNAQEBBQADggQPADCCBAoCggQBAMdozuMLcv7klBlelPvlTlpCXnCX9HecN1ZL7Ki+jUDo5wt66J+UdbgRIaNjY/SdeyZ8gapvqtscbNjcDBFv160OWcr2msf9GB0k5kNG7bZRPUrkXN37Sj5vJ5EsaKORzCcIqoyEzq8hgiu7kam2Ig13jvTEyrOfJfQ9SGVZybx0+x3kR8Nz25BGZDTuBwmjnLBCUQHNZvdu2nx0EG6lS0db5BUKi4V468mRuCWbwOSROhnPnRbBUa+fzrpyv0ueVmr59VWkIp5Y2xJ7+ZYcqzcjPA2XOpG4DOXaUL09sgPWJTuaEbiqwRWIxLNeumLyuRin3leDWtY/YgD7ZV/vt0lYtlllleqLMbr9IoE4Y3+TcQNQc6C2JsZ9yhQlIjRg8wecCcU+E+sht5cXC+kWiqU+migNMXsAQUoUixv9UmOZOkMiaitVAAxf5KGs9zUmFftJ17AetJDYGsrMLurDANHNQDw5cyWbloSacJCoy7aJxM1PPOxGpPWp/ZlrphDC9h26+soiMeq4uy4z65xXYr69L5V1Tzm3XJUCGiwHQYQwlcZyzLC/nQa9MmQl9ntlfOWyC1LVOnENjkLadTP33MzdWyO7eYd8ge7wfzhoy6UgTnfyB3aVttfNbRk8Vp0GCOVj7UWGMA3vlklTEZoMT/d20Pa9fwuSqf7+28AKC7tzkQyM3XsyBM3MNtg5ELzpdRpZ7gNT8ale9vhGqn7F4xD8p8OOvBb/RCfGgSrRLOd79q9R5SCTuckEpWCHK7jsZphJf0lrYlBB0+xIHhM1RX0rman0k72yEj4o/rD0eKkabNdcuRx/XsDA1JPlAJEAOD0ECYoMA91ngHkqQ/25faNBPQmgCn+Puc669wDmjM3O5SFYAqoFh4aiRc0bXuzxNoMo5OSDtuvtfrpbHnNWSQi73PnZJsQdFFl4Te5qzPqc5Qu0Pk1fA3V6dZ7eoevcnyI/SETYCJS5iYrViPWojH/+uIDGgYNievatFThJVtgP1pNS9ZOgFTy2k8C1XsQ9jKiwvVEXu9yuvKRktwyvrTiYk8hVF5mobOpXPrmCzsBGqqGayHXl2tN5UvYE0HDyCKfZWIKrLtuP+eVuXInq81NByUkmYf1AY3o2lmI5l0M4VYRjS3FhoI2nGbEDExf45Gcituv/2pPK2ypnny6uKVEPf9q1IsGtuGevow4X2cS3M1Nr2o5I+dD8xQGM+J5Y4mb/WSm0KnQDNM9sBErHcBUIQ1WFKH/zhreQGJAtPM2KYgwtRIhLQq57pPmH76FJVAzCUvvfbFmXIFOyxyVXsVFfdkK1Dbe2O6ZorXB8Nyya6fIEzVEKDjWehXjo5IijeRS2bxmI2tUOUFHixqjTxbUCAwEAAaMhMB8wHQYDVR0OBBYEFM+OxhO92RQoMCJ1ik66h/1K1IVBMA0GCSqGSIb3DQEBCwUAA4IEAQAjz1VlrrKS+sriv60K1f1oA53m0de6cTMk2ifghgM5Y2tWgs5dDbec0EG/MelPTRTBIe3b+ccdHfsSBYa1nAd1R4wePYNnYvCWUD+fkv86ajspI/cOg3jw8sz29DBHiAvCW8SprBmYzNZ2opPRh5k/IIgiquVTOLvN4K77yu8xuokD4PAKQEX2L9ygX8Jp5JL+pNSaxQTJ3ujaXw0W5QHH73cFTBngOldznpJMTPR3+CJAls5rUDBFtUfGQd7KkWXXTeAiG2WMK/xnsvbq9B3m9DnkmmfM3ojVHQafPn0C7RqgC/L1vK9UzRM9/h5CAN/cLu6Nfn135uD+B/TYUMo7iKAEeyFw3oZTQEMsrAPyjiOppAmazI2jjPUfH/dhIKYjYF6JnxcSlCzc9qRE/0fNcOB9lkEAZzWoIZ7RxiJtN+s02lPE11BORjjToxNwNg9OjjgbdMou57nasgg/x1Yr7PoOtvr04Pa3xqQlPO5vyYJVoCixzHCpjDiXbsW8FHukGeTRfE//bL4rPx7IaQIIzDaXR14bBbo+qEvYwjxYTvBMG4cGNgJ/M0C3Rv9u8vn949Qp+aHY1n+eumTxnEbg2PbjJaRIeRnM6wpKymBARsUvlPUKtV2la61ar0jJTGg7e3mnInP7yTVCkHd20L44a1LLlyMspB/NjcGpAyOxQJv2ikB47gUA2mc3dICYLH79NfMGgQRspngcfhJmlkKohH8hgWgfRLVe9D7rFEuJTsEDHMwNakzipRbRvrhi+g+Lu8ijPZ8/UjbowugxwqCmyzhr/nErxMUvdWa/Rcelc1A1Bb6OW6JeE973jcnSXei0X4rmZ8aFpN/uvEKrN+HQMXSnvH71GqYwZIrDYpYiuYaJgk2E58FQxQqeOMmYGBebLvNKDeuWejYM652l3XodsCs/6cYlIFk9uiyFDJX/JQogIN4kUjTbjqwhtFfFCxUMC6IXeHdNKcMWev3Krm3gRlD26Ah9sTmJ4BdJmBN5ucTdi998PkTU2C8FfBTi3IY24u97HVyg+L5xyc5oqlvrSxtRrR8tyu7QHU9av7DYZeiWD9UQXa5LAEps89lyRWoQbNWNZjlFNVBpr8Ro7pOlh9D9fGycMJbm0HcTkW9ziD1C45SFfCxbiHoyV9IT/s/vz1qaDqYSRO+yo2IBrwng0bqRrVYEl4X4S6aOZHkeT2CteKf9axYQYlmqID8rgJ9GIiL0wod5wDx0krcjtXWlxSOZ6G8nCOsqHHdG/KQujZHz2d1iM4nXVG9qyMkW59tgkqtWFYQbCJxB7EkkmlgTgQkl5S1NGIB8APNSmsiGr/zlVpQlp14ajIMccRcXpbMNGBQ0J/WYHPmxdp7anMcD</signature>
+ <!-- The default WebView implementation -->
+ <webviewprovider description="LeOS WebView" packageName="com.leos.ium_wv" availableByDefault="true">
</webviewprovider>

View File

@ -0,0 +1,106 @@
From bae15355290465cb1dbbcb55eda6c02d2522c309 Mon Sep 17 00:00:00 2001
From: harvey186 <harvey186@hotmail.com>
Date: Tue, 17 Sep 2024 17:44:26 +0200
Subject: [PATCH] webview
---
.../res/res/xml/config_webview_packages.xml | 22 ++--------
.../res/xml/config_webview_packages.xml | 42 ++++++-------------
2 files changed, 15 insertions(+), 49 deletions(-)
diff --git a/overlay/common/frameworks/base/core/res/res/xml/config_webview_packages.xml b/overlay/common/frameworks/base/core/res/res/xml/config_webview_packages.xml
index 5b5039f..33e82bf 100644
--- a/overlay/common/frameworks/base/core/res/res/xml/config_webview_packages.xml
+++ b/overlay/common/frameworks/base/core/res/res/xml/config_webview_packages.xml
@@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2016 The CyanogenMod Project
- (C) 2019 The LineageOS Project
+<!-- Copyright 2015 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -14,23 +13,8 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
-
<webviewproviders>
-
- <webviewprovider description="Google WebView" packageName="com.google.android.webview" availableByDefault="true">
- <signature>MIIDuzCCAqOgAwIBAgIJANi6DgBQG4ZTMA0GCSqGSIb3DQEBBQUAMHQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKDAtHb29nbGUgSW5jLjEQMA4GA1UECwwHQW5kcm9pZDEQMA4GA1UEAwwHd2VidmlldzAeFw0xNDA4MDgyMzIwMjBaFw00MTEyMjQyMzIwMjBaMHQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKDAtHb29nbGUgSW5jLjEQMA4GA1UECwwHQW5kcm9pZDEQMA4GA1UEAwwHd2VidmlldzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbtaFX0r5aZJMAbPVMAgK1ZZ29dTn91VsGxXv2hqrQo7IpqEy2JmPvPnoMsSiuTAe+UcQy8oKDQ2aYVSAd1DGIy+nSRyFTt3LSIAdwSBkB1qT4a+OqkpsR6bSNXQXQ18lCQu9gREY3h3QlYBQAyzRxw4hRGlrXAzuSz1Ec4W+6x4nLG5DG61MAMR8ClF9XSqbmGB3kyZ70A0X9OPYYxiMWP1ExaYvpaVqjyZZcrPwr+vtW8oCuGBUtHpBUH3OoG+9s2YMcgLG7vCK9awKDqlPcJSpIAAj6uGs4gORmkqxZRMskLSTWbhP4p+3Ap8jYzTVB6Y1/DMVmYTWRMcPW0macCAwEAAaNQME4wHQYDVR0OBBYEFJ6bAR6/QVm4w9LRSGQiaR5Rhp3TMB8GA1UdIwQYMBaAFJ6bAR6/QVm4w9LRSGQiaR5Rhp3TMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAEQu8QiVxax7/diEiJrgKE1LwdXsIygJK/KnaKdnYEkAQpeu/QmrLiycm+OFbL1qHJIB7OuI/PQBUtcaNSiJSCVgtwtEbZWWIdsynqG/Nf4aGOndXegSQNRH54M05sRHLoeRycPrY7xQlEwGikNFR76+5UdwFBQI3Gn22g6puJnVukQm/wXQ+ajoiS4QclrNlixoDQsZ4STLH4+Wju2wIWKFFArIhVEIlbamq+p6BghuzH3aIz/Fy0YTQKi7SA+0fuNeCaqlSm5pYSt6p5CH89y1Fr+wFc5r3iLRnUwRcy08ESC7bZJnxV3d/YQ5valTxBbzku/dQbXVj/xg69H8l8M</signature>
- </webviewprovider>
- <webviewprovider description="Google WebView Beta" packageName="com.google.android.webview.beta" availableByDefault="true">
- <signature>MIIFxzCCA6+gAwIBAgIVAO+zzx6JOZx3HWDG+fzlC1m53BsqMA0GCSqGSIb3DQEBCwUAMHQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtHb29nbGUgSW5jLjEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDAeFw0xOTA0MDUxNzIxNTRaFw00OTA0MDUxNzIxNTRaMHQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtHb29nbGUgSW5jLjEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAIbFePU+vsq6CEYIREsFFhwzXDoCwO6aK9ic9WJubui5VV7OqPCZmoZ/LY3852JK1A1OrWU643Ra7Z/wcvBXHHy5g08bF35gfelz9l53rIiG/1ubAApmxMNqASmQ5bMseetUIrBVqFnWspOWyrNuD0UsF4YkLgm+T1X5Hz1RNZwIV7WcVlL5qC2tm6kEy50bcAhbo5dDDud+ft8oc9g7vAiUpV0yqtNjZ+tsdJI4DrW5Nf2UhB8E+91se2IzQyWT6Vs/wB67HwroGr8qwPQYLQvzcyxZo2yA+qU2+k1IgJGTG5/0K/LheNxjqOKj6Zuhceff0JlbmrGKKqbXlz1F/E582MfqjeETB1gjw9Y0tHWEofEGdL4+ub8ZBJmveH9iz4BVKplzmYACLYWCGICiHBvmkkvx9dhmf5SsUsL9o4axPtAOKtjcKIDXBVqOtYCZssoVe9FFlZDHxRhQlbGY6ip0CK/lYlcx8iLfvI8Hf2AlwZa4j7HpFityaAWgYvo9x7bMJbBHiN/HW/NuhCF1B54KnQUmzQoyEnr5Qb4NjiDiXNzR8gYWYa9a/6Zg9iggr4jIbbEVanvCw9FAAZKRR8rk0ToJuFk2fRJdi2NhKo1GbVWOjj1Cd/Xbahd/uZhZGf1Uc61bG4rn9NU4GqliO2Wl2L78EkxuLDKXdovdHFjzAgMBAAGjUDBOMAwGA1UdEwQFMAMBAf8wHQYDVR0OBBYEFCAIx3WLD1UQ3YUE9ZBt36vfdQ6eMB8GA1UdIwQYMBaAFCAIx3WLD1UQ3YUE9ZBt36vfdQ6eMA0GCSqGSIb3DQEBCwUAA4ICAQBdHaxW69Hx4WPMXAVC5+S419L7/+AgxTyCn7YsD77aiKlIU20BMhvGln1d/Og6y1mf/z/x+GAm1ZfQniOih21Gxq3h4C3FvJ7gHgrjtZ6r0ymz7a1YOYc6LG1DNrTK7gKs5syifUd68PxUwNm5U5R9ixj0iglZDAC0apehGH/nfyJ4btS39N+oSQkUz3FpLoD5wYRlfdzhL2rMVDcv4WcEVDO8X8Md5Bk3hYtkh5MHzbVlu2yQ1qcNeXLUxUVeTjGebMu7B54Fgf+tHSBFBiyDdocpgF0B7RjF5579MXLpxdf9hoQImgzmp6xe0oHwqS1nQZR0pYfwP1Y8vxMSUWTPbY0YB9jQaElXznE/eQBuXe4kRkjEO6QvhziiQFxBlbfGSEFVySeqgWR91tJ0OiEWkMraQaI2bz941Qbt12PhS7r0KIkAsC5LpVRDOEgmo2e6+evst7DXpIAUvzNNSHrnmwmMGZ4QP4AUi7uIsclDJUT9sXDhwutx2Edic0X8+ZZ8D4e+HEupXI30z72En0U6ZyPqb6Ll9SOgK6pN6dbhdakucvRHCpmSfIlO8XXmPN5x3RsSteZl20Mc+ZSQuninApdirEs/9CfRoSSYXlNabxklBZd5jeb0py09FjjE+Nqf4EdZFYvzpYFSGJz1RUrsaDWOmx4gF3YeXo8iUbGtPA==</signature>
- </webviewprovider>
- <webviewprovider description="Google WebView Dev" packageName="com.google.android.webview.dev" availableByDefault="true">
- <signature>MIIFxzCCA6+gAwIBAgIVAMQCAZgONsTyki5gq7E1h9s6KFvaMA0GCSqGSIb3DQEBCwUAMHQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtHb29nbGUgSW5jLjEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDAeFw0xOTA0MDUxNzE3MDJaFw00OTA0MDUxNzE3MDJaMHQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtHb29nbGUgSW5jLjEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAJjFQ4Jm1Tf5BESiSnU1w5H5//IbLr6wNIfVbws8mbPb3fq9vs3LAHbtfzgWJ3eG2eNx7GH6ge+XjaNiZzQ8223Fqu9AxBinve4KSm6Mrkq7gk7lMCbUUIap6m0ftDa+7lrxbhjWHrFzFq8Muq43CM7i8CxLdKTGSx098dcvY6giOQstAKQyPmlbH6zjwnS8KNYakDKv0Fv4VdKi14T6ANXAblicfTaclA1HLWhFqv5DaKL8YobQu8FN2Egk9nlimwExbRs1twrmuyX2tNtgX7vMvt3+HHTrkYweARVvvqVoEXkNGfZPlIkExBZSHpJgqSIb6vcBzgntneo9X+iB7K0VRovkK20PDuxKvrt07dZ15qACGC364O1NKSK0+1tiRU6tPI8P1VI3JR2c8C5cnCg9zGCHinZR3iyY+ISA5G+bVEU8WWhwMuSuM2Vo5hmpDnX+p1K2XiuNdV2VblXPKZIfV3xahCZTvemVBt6WhrxeshhTBG2+Z2Qz0TSZSFkeX4ruo0WffOy7A2ybwhmCWryltgDe04Z+kkF+kmwZ6N/cQWWBqYPTILYfs/t9XWz3VyrFEJK+Uf6T+/JO3T0nGZZm4+kr5wH6YMbffrF5S8t0/DpIZfxExcyPnwxYAkI8TohMR4BPX4FPJL5j5ulZbnEbAqoVC6nphlVSulRLM5LFAgMBAAGjUDBOMAwGA1UdEwQFMAMBAf8wHQYDVR0OBBYEFBDgxJQIS7rzqWgJ5oSIuvg3hos6MB8GA1UdIwQYMBaAFBDgxJQIS7rzqWgJ5oSIuvg3hos6MA0GCSqGSIb3DQEBCwUAA4ICAQAiEpFVrLKCY99LxFmIqUvE/pL2ULzhBtZ0YQvWT4QgMABrC2ZKsG0Ttx2OyGXjI3Hl9sEDGdCTA2D0lN3gS44RYSxCK0RANF2wamY5vGgEA4uqQ6o/JIH9VLTEk7A7g+Lu4fl4lnIX3+kw2Thfk4CQ15cWI9tISUPfC4rO2vG9Ct9G3kkXvEj1r7cRH7wmGJcOWKoiMVsLNVIfCYPO4qZOnj+ZpVkxLxRTTjJzqXPYNsHlfywM3zoqtexDdwXFVGP8M/cW7pIp46UE0bvU9jHurF+ECwUykLn/GHG36DYyKAFeIsgpGsLZXW9jHLspSaVF3kR77qPpvlhuF29rfY4E2Bd2d24HHWR3mHMosdzKomatOZbeh6Dj0wdrq+GmRpC70knWrXxmNshYSJri41jvAUEnXVAkbQznxeCct6ST2JhYzuNP8OGVxO0xqs/Hpu9x1aSN0BUotO7ZJPqVR5qCpgEWE1BuWljutrhpI5/d0Oz/DKs14TDrPjlrYJgmR766MnqxQAzYAcM1nC6QcxAkc+N1BLGujI+WQbz9sAlUC0fOf3KuVqemt9XoIh5Z33kJ1QI/VKflCQtlvgSBnJX9zge/iAEImud+Z3MyPT6FxVtkEM9KwBWytT1TvJTyPeOK9SV+2w7xbCoLC8apPlamx13yDngxg0c3eJAd9+p2OA==</signature>
- </webviewprovider>
- <webviewprovider description="Google WebView Canary" packageName="com.google.android.webview.canary" availableByDefault="true">
- <signature>MIIFxzCCA6+gAwIBAgIVAMtzFe17x7TJnswywhkvEJa+6EIQMA0GCSqGSIb3DQEBCwUAMHQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtHb29nbGUgSW5jLjEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDAeFw0xOTA0MDUxNzIzMDZaFw00OTA0MDUxNzIzMDZaMHQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtHb29nbGUgSW5jLjEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAJbi91Ehi2xTxKCzeC6XO+COhaJp4dv6LqA8EfTBZEKoLQZ6FQQcDE4dirK78tBIbF4SQLkWt+Lxh3LnV6yfOt3hNmK3Rc9IhFAi0A56dGWazNo0pY8DiCftmPwnkPNT2aTZzmvWuDQHjLoMju2y7nDOliZThOybF9KMKSVsAr2Ahcmx4cRdyxCZKAutzsYOoBk77dFIO0kSaEPof9/Zlan4mAEnQ6GWgbK5wyIYN7DuaCDkJ5FYxUJxyp53/c5jKF/zZRPoGzXlt5e22yymD8MPSj716OolmKPFLUtzCVUnrm4xmmtgheWS1X43tRWit0rPl92bBHFiSECyIQriNS5ZlLuh712G6D7A3uaQqIIRmKVRE6DT3xRWI3l78cDquWIgU+x99qS9bb/txv/oaT1SIlM/rJij11iOISJCJ++vcyuR4j3pydkfl5ePH8YKAmUOCFlDJM3vOt7aqYpx3Ql5GFLeHOoSw4vOzwvMSROV/i6mXBv1d5O1o5XzDUWuIsFFroC1yz11/s547eV091BGuB60pyv7pXZY2EFOjjFcqWfsKrmcxzqCwel9bDd1WvsUY2Dt6Xl13hFMZ9ab2XiZCqA+OF+PrZKJYhTcpcdEjTYbVYEofst5Zg6WWL28WfQlDq0QwVDWFAsBdnegp40dNKwdkjp0LTXYdykzu8otAgMBAAGjUDBOMAwGA1UdEwQFMAMBAf8wHQYDVR0OBBYEFI0WYMtA13YCvaXP3y7SD7+BUoGGMB8GA1UdIwQYMBaAFI0WYMtA13YCvaXP3y7SD7+BUoGGMA0GCSqGSIb3DQEBCwUAA4ICAQAmJmDx+9Bfshs9PtNPb+2PEckvwheOurS15JAV10OTvmcpu0AON56RpItaMm29Uea5wYxaPcPwUQDum0vahHt7FIYxnPIxQ0FxsBDSVDn5veWMVXf5oSVDzsR61+x7i67Qk3dsMgRrY0PS/HZv+cFl0fb87b54mrtFIl8P9KjV5g5PUNJI2BIwLOKgnlU2kDrE1emm7lIKvoJqwb9JjlWl0lB+xXmntNQ+ZNvCzULnr1o0QblVK1Iowe++17GzOtrUlkATTmGx2exaeEEsZcQ23J6u8XycAk9+80aspTjZHC9aneQVcIdbCEBdWkF3xQ0TSnytT/0jLnLBnk2/kIV2ynw2zu/nMczgW2eUnfiIjqzBuP0uRMJ8NFPv/4Agmdqex+A233K9wYc92iflm/aVT3qw7wQntsmSesSBfZgLVVQ++dVD0bd5qYtyELCA2DNCaORU62bfNnPNTkQQo/FeyFDBLNzfWxiDINk6SxNxrZLgQFj9gil+CBgltrJ90Qv8Ats1ES66A0o+2T/j0GA9nOkfznID0VU1SlmOub/0SMwZL98WpkYqYTu/9AOqwzZBO/uT4ADANnMrMd4dtzZ1n0AdSvr1QyqO9XJRmW0k1PlmBM6iPU9p3JMVEqeQ7/zYnYq0tCK+k1mvA5BQ20NVSfea27X7/9EgGanchrFdCQ==</signature>
- </webviewprovider>
-
<!-- The default WebView implementation -->
- <webviewprovider description="AOSP WebView" packageName="com.android.webview" availableByDefault="true" />
-
+ <webviewprovider description="LeOS WebView" packageName="com.leos.ium_wv" availableByDefault="true">
+ </webviewprovider>
</webviewproviders>
diff --git a/overlay/common/frameworks/base/packages/SystemUI/res/xml/config_webview_packages.xml b/overlay/common/frameworks/base/packages/SystemUI/res/xml/config_webview_packages.xml
index 4b9204b..33e82bf 100644
--- a/overlay/common/frameworks/base/packages/SystemUI/res/xml/config_webview_packages.xml
+++ b/overlay/common/frameworks/base/packages/SystemUI/res/xml/config_webview_packages.xml
@@ -1,38 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
-<!--
- Copyright (C) 2020 The Proton AOSP Project
+<!-- Copyright 2015 The Android Open Source 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
+ 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
+ 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.
+ 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.
-->
<webviewproviders>
- <webviewprovider availableByDefault="true" description="Google WebView" isFallback="true" packageName="com.google.android.webview">
- <signature>MIIDuzCCAqOgAwIBAgIJANi6DgBQG4ZTMA0GCSqGSIb3DQEBBQUAMHQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKDAtHb29nbGUgSW5jLjEQMA4GA1UECwwHQW5kcm9pZDEQMA4GA1UEAwwHd2VidmlldzAeFw0xNDA4MDgyMzIwMjBaFw00MTEyMjQyMzIwMjBaMHQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKDAtHb29nbGUgSW5jLjEQMA4GA1UECwwHQW5kcm9pZDEQMA4GA1UEAwwHd2VidmlldzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbtaFX0r5aZJMAbPVMAgK1ZZ29dTn91VsGxXv2hqrQo7IpqEy2JmPvPnoMsSiuTAe+UcQy8oKDQ2aYVSAd1DGIy+nSRyFTt3LSIAdwSBkB1qT4a+OqkpsR6bSNXQXQ18lCQu9gREY3h3QlYBQAyzRxw4hRGlrXAzuSz1Ec4W+6x4nLG5DG61MAMR8ClF9XSqbmGB3kyZ70A0X9OPYYxiMWP1ExaYvpaVqjyZZcrPwr+vtW8oCuGBUtHpBUH3OoG+9s2YMcgLG7vCK9awKDqlPcJSpIAAj6uGs4gORmkqxZRMskLSTWbhP4p+3Ap8jYzTVB6Y1/DMVmYTWRMcPW0macCAwEAAaNQME4wHQYDVR0OBBYEFJ6bAR6/QVm4w9LRSGQiaR5Rhp3TMB8GA1UdIwQYMBaAFJ6bAR6/QVm4w9LRSGQiaR5Rhp3TMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAEQu8QiVxax7/diEiJrgKE1LwdXsIygJK/KnaKdnYEkAQpeu/QmrLiycm+OFbL1qHJIB7OuI/PQBUtcaNSiJSCVgtwtEbZWWIdsynqG/Nf4aGOndXegSQNRH54M05sRHLoeRycPrY7xQlEwGikNFR76+5UdwFBQI3Gn22g6puJnVukQm/wXQ+ajoiS4QclrNlixoDQsZ4STLH4+Wju2wIWKFFArIhVEIlbamq+p6BghuzH3aIz/Fy0YTQKi7SA+0fuNeCaqlSm5pYSt6p5CH89y1Fr+wFc5r3iLRnUwRcy08ESC7bZJnxV3d/YQ5valTxBbzku/dQbXVj/xg69H8l8M=</signature>
- </webviewprovider>
- <webviewprovider availableByDefault="true" description="Google WebView Beta" packageName="com.google.android.webview.beta">
- <signature>MIIFxzCCA6+gAwIBAgIVAO+zzx6JOZx3HWDG+fzlC1m53BsqMA0GCSqGSIb3DQEBCwUAMHQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtHb29nbGUgSW5jLjEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDAeFw0xOTA0MDUxNzIxNTRaFw00OTA0MDUxNzIxNTRaMHQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtHb29nbGUgSW5jLjEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAIbFePU+vsq6CEYIREsFFhwzXDoCwO6aK9ic9WJubui5VV7OqPCZmoZ/LY3852JK1A1OrWU643Ra7Z/wcvBXHHy5g08bF35gfelz9l53rIiG/1ubAApmxMNqASmQ5bMseetUIrBVqFnWspOWyrNuD0UsF4YkLgm+T1X5Hz1RNZwIV7WcVlL5qC2tm6kEy50bcAhbo5dDDud+ft8oc9g7vAiUpV0yqtNjZ+tsdJI4DrW5Nf2UhB8E+91se2IzQyWT6Vs/wB67HwroGr8qwPQYLQvzcyxZo2yA+qU2+k1IgJGTG5/0K/LheNxjqOKj6Zuhceff0JlbmrGKKqbXlz1F/E582MfqjeETB1gjw9Y0tHWEofEGdL4+ub8ZBJmveH9iz4BVKplzmYACLYWCGICiHBvmkkvx9dhmf5SsUsL9o4axPtAOKtjcKIDXBVqOtYCZssoVe9FFlZDHxRhQlbGY6ip0CK/lYlcx8iLfvI8Hf2AlwZa4j7HpFityaAWgYvo9x7bMJbBHiN/HW/NuhCF1B54KnQUmzQoyEnr5Qb4NjiDiXNzR8gYWYa9a/6Zg9iggr4jIbbEVanvCw9FAAZKRR8rk0ToJuFk2fRJdi2NhKo1GbVWOjj1Cd/Xbahd/uZhZGf1Uc61bG4rn9NU4GqliO2Wl2L78EkxuLDKXdovdHFjzAgMBAAGjUDBOMAwGA1UdEwQFMAMBAf8wHQYDVR0OBBYEFCAIx3WLD1UQ3YUE9ZBt36vfdQ6eMB8GA1UdIwQYMBaAFCAIx3WLD1UQ3YUE9ZBt36vfdQ6eMA0GCSqGSIb3DQEBCwUAA4ICAQBdHaxW69Hx4WPMXAVC5+S419L7/+AgxTyCn7YsD77aiKlIU20BMhvGln1d/Og6y1mf/z/x+GAm1ZfQniOih21Gxq3h4C3FvJ7gHgrjtZ6r0ymz7a1YOYc6LG1DNrTK7gKs5syifUd68PxUwNm5U5R9ixj0iglZDAC0apehGH/nfyJ4btS39N+oSQkUz3FpLoD5wYRlfdzhL2rMVDcv4WcEVDO8X8Md5Bk3hYtkh5MHzbVlu2yQ1qcNeXLUxUVeTjGebMu7B54Fgf+tHSBFBiyDdocpgF0B7RjF5579MXLpxdf9hoQImgzmp6xe0oHwqS1nQZR0pYfwP1Y8vxMSUWTPbY0YB9jQaElXznE/eQBuXe4kRkjEO6QvhziiQFxBlbfGSEFVySeqgWR91tJ0OiEWkMraQaI2bz941Qbt12PhS7r0KIkAsC5LpVRDOEgmo2e6+evst7DXpIAUvzNNSHrnmwmMGZ4QP4AUi7uIsclDJUT9sXDhwutx2Edic0X8+ZZ8D4e+HEupXI30z72En0U6ZyPqb6Ll9SOgK6pN6dbhdakucvRHCpmSfIlO8XXmPN5x3RsSteZl20Mc+ZSQuninApdirEs/9CfRoSSYXlNabxklBZd5jeb0py09FjjE+Nqf4EdZFYvzpYFSGJz1RUrsaDWOmx4gF3YeXo8iUbGtPA==</signature>
- </webviewprovider>
- <webviewprovider availableByDefault="true" description="Google WebView Dev" packageName="com.google.android.webview.dev">
- <signature>MIIFxzCCA6+gAwIBAgIVAMQCAZgONsTyki5gq7E1h9s6KFvaMA0GCSqGSIb3DQEBCwUAMHQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtHb29nbGUgSW5jLjEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDAeFw0xOTA0MDUxNzE3MDJaFw00OTA0MDUxNzE3MDJaMHQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtHb29nbGUgSW5jLjEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAJjFQ4Jm1Tf5BESiSnU1w5H5//IbLr6wNIfVbws8mbPb3fq9vs3LAHbtfzgWJ3eG2eNx7GH6ge+XjaNiZzQ8223Fqu9AxBinve4KSm6Mrkq7gk7lMCbUUIap6m0ftDa+7lrxbhjWHrFzFq8Muq43CM7i8CxLdKTGSx098dcvY6giOQstAKQyPmlbH6zjwnS8KNYakDKv0Fv4VdKi14T6ANXAblicfTaclA1HLWhFqv5DaKL8YobQu8FN2Egk9nlimwExbRs1twrmuyX2tNtgX7vMvt3+HHTrkYweARVvvqVoEXkNGfZPlIkExBZSHpJgqSIb6vcBzgntneo9X+iB7K0VRovkK20PDuxKvrt07dZ15qACGC364O1NKSK0+1tiRU6tPI8P1VI3JR2c8C5cnCg9zGCHinZR3iyY+ISA5G+bVEU8WWhwMuSuM2Vo5hmpDnX+p1K2XiuNdV2VblXPKZIfV3xahCZTvemVBt6WhrxeshhTBG2+Z2Qz0TSZSFkeX4ruo0WffOy7A2ybwhmCWryltgDe04Z+kkF+kmwZ6N/cQWWBqYPTILYfs/t9XWz3VyrFEJK+Uf6T+/JO3T0nGZZm4+kr5wH6YMbffrF5S8t0/DpIZfxExcyPnwxYAkI8TohMR4BPX4FPJL5j5ulZbnEbAqoVC6nphlVSulRLM5LFAgMBAAGjUDBOMAwGA1UdEwQFMAMBAf8wHQYDVR0OBBYEFBDgxJQIS7rzqWgJ5oSIuvg3hos6MB8GA1UdIwQYMBaAFBDgxJQIS7rzqWgJ5oSIuvg3hos6MA0GCSqGSIb3DQEBCwUAA4ICAQAiEpFVrLKCY99LxFmIqUvE/pL2ULzhBtZ0YQvWT4QgMABrC2ZKsG0Ttx2OyGXjI3Hl9sEDGdCTA2D0lN3gS44RYSxCK0RANF2wamY5vGgEA4uqQ6o/JIH9VLTEk7A7g+Lu4fl4lnIX3+kw2Thfk4CQ15cWI9tISUPfC4rO2vG9Ct9G3kkXvEj1r7cRH7wmGJcOWKoiMVsLNVIfCYPO4qZOnj+ZpVkxLxRTTjJzqXPYNsHlfywM3zoqtexDdwXFVGP8M/cW7pIp46UE0bvU9jHurF+ECwUykLn/GHG36DYyKAFeIsgpGsLZXW9jHLspSaVF3kR77qPpvlhuF29rfY4E2Bd2d24HHWR3mHMosdzKomatOZbeh6Dj0wdrq+GmRpC70knWrXxmNshYSJri41jvAUEnXVAkbQznxeCct6ST2JhYzuNP8OGVxO0xqs/Hpu9x1aSN0BUotO7ZJPqVR5qCpgEWE1BuWljutrhpI5/d0Oz/DKs14TDrPjlrYJgmR766MnqxQAzYAcM1nC6QcxAkc+N1BLGujI+WQbz9sAlUC0fOf3KuVqemt9XoIh5Z33kJ1QI/VKflCQtlvgSBnJX9zge/iAEImud+Z3MyPT6FxVtkEM9KwBWytT1TvJTyPeOK9SV+2w7xbCoLC8apPlamx13yDngxg0c3eJAd9+p2OA==</signature>
- </webviewprovider>
- <webviewprovider availableByDefault="true" description="Google WebView Canary" packageName="com.google.android.webview.canary">
- <signature>MIIFxzCCA6+gAwIBAgIVAMtzFe17x7TJnswywhkvEJa+6EIQMA0GCSqGSIb3DQEBCwUAMHQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtHb29nbGUgSW5jLjEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDAeFw0xOTA0MDUxNzIzMDZaFw00OTA0MDUxNzIzMDZaMHQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtHb29nbGUgSW5jLjEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAJbi91Ehi2xTxKCzeC6XO+COhaJp4dv6LqA8EfTBZEKoLQZ6FQQcDE4dirK78tBIbF4SQLkWt+Lxh3LnV6yfOt3hNmK3Rc9IhFAi0A56dGWazNo0pY8DiCftmPwnkPNT2aTZzmvWuDQHjLoMju2y7nDOliZThOybF9KMKSVsAr2Ahcmx4cRdyxCZKAutzsYOoBk77dFIO0kSaEPof9/Zlan4mAEnQ6GWgbK5wyIYN7DuaCDkJ5FYxUJxyp53/c5jKF/zZRPoGzXlt5e22yymD8MPSj716OolmKPFLUtzCVUnrm4xmmtgheWS1X43tRWit0rPl92bBHFiSECyIQriNS5ZlLuh712G6D7A3uaQqIIRmKVRE6DT3xRWI3l78cDquWIgU+x99qS9bb/txv/oaT1SIlM/rJij11iOISJCJ++vcyuR4j3pydkfl5ePH8YKAmUOCFlDJM3vOt7aqYpx3Ql5GFLeHOoSw4vOzwvMSROV/i6mXBv1d5O1o5XzDUWuIsFFroC1yz11/s547eV091BGuB60pyv7pXZY2EFOjjFcqWfsKrmcxzqCwel9bDd1WvsUY2Dt6Xl13hFMZ9ab2XiZCqA+OF+PrZKJYhTcpcdEjTYbVYEofst5Zg6WWL28WfQlDq0QwVDWFAsBdnegp40dNKwdkjp0LTXYdykzu8otAgMBAAGjUDBOMAwGA1UdEwQFMAMBAf8wHQYDVR0OBBYEFI0WYMtA13YCvaXP3y7SD7+BUoGGMB8GA1UdIwQYMBaAFI0WYMtA13YCvaXP3y7SD7+BUoGGMA0GCSqGSIb3DQEBCwUAA4ICAQAmJmDx+9Bfshs9PtNPb+2PEckvwheOurS15JAV10OTvmcpu0AON56RpItaMm29Uea5wYxaPcPwUQDum0vahHt7FIYxnPIxQ0FxsBDSVDn5veWMVXf5oSVDzsR61+x7i67Qk3dsMgRrY0PS/HZv+cFl0fb87b54mrtFIl8P9KjV5g5PUNJI2BIwLOKgnlU2kDrE1emm7lIKvoJqwb9JjlWl0lB+xXmntNQ+ZNvCzULnr1o0QblVK1Iowe++17GzOtrUlkATTmGx2exaeEEsZcQ23J6u8XycAk9+80aspTjZHC9aneQVcIdbCEBdWkF3xQ0TSnytT/0jLnLBnk2/kIV2ynw2zu/nMczgW2eUnfiIjqzBuP0uRMJ8NFPv/4Agmdqex+A233K9wYc92iflm/aVT3qw7wQntsmSesSBfZgLVVQ++dVD0bd5qYtyELCA2DNCaORU62bfNnPNTkQQo/FeyFDBLNzfWxiDINk6SxNxrZLgQFj9gil+CBgltrJ90Qv8Ats1ES66A0o+2T/j0GA9nOkfznID0VU1SlmOub/0SMwZL98WpkYqYTu/9AOqwzZBO/uT4ADANnMrMd4dtzZ1n0AdSvr1QyqO9XJRmW0k1PlmBM6iPU9p3JMVEqeQ7/zYnYq0tCK+k1mvA5BQ20NVSfea27X7/9EgGanchrFdCQ==</signature>
- </webviewprovider>
- <webviewprovider availableByDefault="true" description="Google WebView Debug" packageName="com.google.android.webview.debug" />
- <webviewprovider availableByDefault="true" description="AOSP WebView" packageName="com.android.webview" />
- <webviewprovider availableByDefault="true" description="Bromite SystemWebView" packageName="org.bromite.webview">
- <signature>MIIDbTCCAlWgAwIBAgIEHcsmjjANBgkqhkiG9w0BAQsFADBmMQswCQYDVQQGEwJERTEQMA4GA1UECBMHVW5rbm93bjEPMA0GA1UEBxMGQmVybGluMRAwDgYDVQQKEwdCcm9taXRlMRAwDgYDVQQLEwdCcm9taXRlMRAwDgYDVQQDEwdjc2FnYW41MCAXDTE4MDExOTA3MjE1N1oYDzIwNjgwMTA3MDcyMTU3WjBmMQswCQYDVQQGEwJERTEQMA4GA1UECBMHVW5rbm93bjEPMA0GA1UEBxMGQmVybGluMRAwDgYDVQQKEwdCcm9taXRlMRAwDgYDVQQLEwdCcm9taXRlMRAwDgYDVQQDEwdjc2FnYW41MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtakjGj0eTavbBB2vWXj8KBixWn4zgXAKc+yGFu3SLEGF1VB5aJWwcMHxVI55yH/8M2eNnJP0BkSidfKgPVcm1sk/GrNEs9uk5sWod9byO5M5QWQmGP2REeTd6J0BVVVaMp2MZnqeR3Su3pwFzrSwTqIGyf8dkPSEz7ifj792+EeRNrov4oRQK7lIfqInzwc4d34wU069Lrw6m7J7HM0KbRYISsWMiYj025Qg+dTrtdWt7jbdcj7htW0eYyJoLd90+s43RWnOpENmWpcWv1EVPxUD4mCdV9idYwoHRIESpSu9IWvqDZp1VoRc43nLgsNfNBwmYdTkIaPiz1m7TBcr7QIDAQABoyEwHzAdBgNVHQ4EFgQUuWoGd7W7wMyQ1pOdjiMv10YHTR0wDQYJKoZIhvcNAQELBQADggEBAA7iw6eKz+T8HIpKDoDcX1Ywjn9JUzuCFu20LnsLzreO/Pog1xErYjdLAS7LTZokfbAnitBskO9QhV9BYkDiM0Qr5v2/HsJTtxa1mz9ywCcI36jblMyuXFj8tuwQI9/t9i+Fc3+bOFBV3t7djPo9qX1dIK0lZ6s8HcIhaCNdqm65fH+nWhC/H9djqC6qOtrkTiACKEcHQ4a/5dfROU0q0M4bS4YuiaAQWgjiGbik4LrZ8wZX1aqJCLt0Hs7MzXyyf0cRSO11FIOViHwzh6WTZGufq2J3YBFXPond8kLxkKL3LNezbi5yTcecxsbKQ6OS46CnIKcy/M8asSreLpoCDvw=</signature>
- </webviewprovider>
- <webviewprovider availableByDefault="true" description="Mulch WebView" packageName="us.spotco.mulch_wv">
- <signature>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</signature>
+ <!-- The default WebView implementation -->
+ <webviewprovider description="LeOS WebView" packageName="com.leos.ium_wv" availableByDefault="true">
</webviewprovider>
</webviewproviders>
--
2.34.1

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,26 @@
From 0dae4aea85adf5af6c2fc34d0fa933eafbac0d60 Mon Sep 17 00:00:00 2001
From: harvey186 <harvey186@hotmail.com>
Date: Sat, 10 Feb 2024 16:25:53 +0100
Subject: [PATCH] cts_captiveportal
Change-Id: I8a2e47b175087ed27917978e2fd7bf22cd11a194
---
.../com/android/cts/deviceandprofileowner/AlwaysOnVpnTest.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/hostsidetests/devicepolicy/app/DeviceAndProfileOwner/src/com/android/cts/deviceandprofileowner/AlwaysOnVpnTest.java b/hostsidetests/devicepolicy/app/DeviceAndProfileOwner/src/com/android/cts/deviceandprofileowner/AlwaysOnVpnTest.java
index a764358194d..c42c22c06be 100644
--- a/hostsidetests/devicepolicy/app/DeviceAndProfileOwner/src/com/android/cts/deviceandprofileowner/AlwaysOnVpnTest.java
+++ b/hostsidetests/devicepolicy/app/DeviceAndProfileOwner/src/com/android/cts/deviceandprofileowner/AlwaysOnVpnTest.java
@@ -46,7 +46,7 @@ public class AlwaysOnVpnTest extends BaseDeviceAdminTest {
private static final String RESTRICTION_ALLOWED = "vpn.allowed";
private static final String RESTRICTION_DISALLOWED = "vpn.disallowed";
private static final String RESTRICTION_DONT_ESTABLISH = "vpn.dont_establish";
- private static final String CONNECTIVITY_CHECK_HOST = "connectivitycheck.gstatic.com";
+ private static final String CONNECTIVITY_CHECK_HOST = "captiveportal.kuketz.de";
private static final int VPN_ON_START_TIMEOUT_MS = 5_000;
private static final long CONNECTIVITY_WAIT_TIME_NS = 30_000_000_000L;
--
2.34.1

View File

@ -0,0 +1,39 @@
From f2f3d891b2184e50cfd591940185510cc536f85d Mon Sep 17 00:00:00 2001
From: harvey186 <harvey186@hotmail.com>
Date: Tue, 17 Sep 2024 15:45:47 +0200
Subject: [PATCH] sepolicy_for_AP
---
sepolicy/netd.te | 1 +
sepolicy/platform_app.te | 11 +++++++++++
2 files changed, 12 insertions(+)
create mode 100644 sepolicy/netd.te
create mode 100644 sepolicy/platform_app.te
diff --git a/sepolicy/netd.te b/sepolicy/netd.te
new file mode 100644
index 0000000..bc71718
--- /dev/null
+++ b/sepolicy/netd.te
@@ -0,0 +1 @@
+allow netd platform_app:unix_stream_socket connectto;
diff --git a/sepolicy/platform_app.te b/sepolicy/platform_app.te
new file mode 100644
index 0000000..35445a4
--- /dev/null
+++ b/sepolicy/platform_app.te
@@ -0,0 +1,11 @@
+
+# allow platform_app to create named pipes (used for realm support)
+allow platform_app fuse:fifo_file create;
+allow platform_app app_data_file:fifo_file create_file_perms;
+allow platform_app app_data_file:fifo_file open;
+allow platform_app rs_exec:file rx_file_perms;
+
+# Allow platform apps to execute files in /data
+allow platform_app app_data_file:file execute;
+
+allow platform_app app_data_file:{ lnk_file sock_file fifo_file } create_file_perms;
--
2.34.1

View File

@ -0,0 +1,88 @@
From eda5a305da60f3e10b1d9173d5812738a72ecb07 Mon Sep 17 00:00:00 2001
From: harvey186 <harvey186@hotmail.com>
Date: Wed, 10 Jan 2024 12:08:02 +0100
Subject: [PATCH] generate_sh
---
generate.sh | 30 ++++++------------------------
1 file changed, 6 insertions(+), 24 deletions(-)
diff --git a/generate.sh b/generate.sh
index 461eff1..b3d80c4 100644
--- a/generate.sh
+++ b/generate.sh
@@ -15,8 +15,8 @@ fi
echo 'PRODUCT_MAKEFILES := \' > AndroidProducts.mk
for part in a ab;do
- for apps in vanilla gapps foss gapps-go;do
- for arch in arm64 arm a64;do
+ for apps in vanilla;do
+ for arch in arm64 a64;do
for su in yes no;do
apps_suffix=""
apps_script=""
@@ -24,29 +24,11 @@ for part in a ab;do
extra_packages=""
vndk="vndk.mk"
optional_base=""
- if [ "$apps" == "gapps" ];then
- apps_suffix="g"
- apps_script='$(call inherit-product, device/phh/treble/gapps.mk)'
- apps_name="with GApps"
- fi
- if [ "$apps" == "gapps-go" ];then
- apps_suffix="o"
- apps_script='$(call inherit-product, device/phh/treble/gapps-go.mk)'
- apps_name="Go"
- fi
- if [ "$apps" == "foss" ];then
- apps_suffix="f"
- apps_script='$(call inherit-product, vendor/foss/foss.mk)'
- apps_name="with FOSS apps"
- fi
if [ "$apps" == "vanilla" ];then
apps_suffix="v"
apps_script=''
apps_name="vanilla"
fi
- if [ "$arch" == "arm" ];then
- vndk="vndk-binder32.mk"
- fi
if [ "$arch" == "a64" ];then
vndk="vndk32.mk"
fi
@@ -64,7 +46,7 @@ for part in a ab;do
optional_base='$(call inherit-product, device/phh/treble/base-sas.mk)'
fi
- target="treble_${arch}_${part_suffix}${apps_suffix}${su_suffix}"
+ target="leos_${arch}_${part_suffix}${apps_suffix}${su_suffix}"
baseArch="$arch"
if [ "$arch" = "a64" ];then
@@ -77,18 +59,18 @@ for part in a ab;do
fi
cat > ${target}.mk << EOF
-TARGET_GAPPS_ARCH := ${baseArch}
include build/make/target/product/aosp_${baseArch}.mk
\$(call inherit-product, device/phh/treble/base.mk)
+\$(call inherit-product, vendor/LeOS/leos.mk)
$optional_base
$apps_script
$rom_script
PRODUCT_NAME := $target
-PRODUCT_DEVICE := tdgsi_${arch}_$part
+PRODUCT_DEVICE := leos_${arch}_$part
PRODUCT_BRAND := google
PRODUCT_SYSTEM_BRAND := google
-PRODUCT_MODEL := TrebleDroid $apps_name
+PRODUCT_MODEL := LeOS-A14
# Overwrite the inherited "emulator" characteristics
PRODUCT_CHARACTERISTICS := device
--
2.34.1

View File

@ -0,0 +1,89 @@
From d5f70e02277ae0389693651b7d62ac5dcb1ea9d6 Mon Sep 17 00:00:00 2001
From: harvey186 <harvey186@hotmail.com>
Date: Mon, 11 Dec 2023 17:20:55 +0100
Subject: [PATCH] LeOS-Stuff
---
generate.sh | 31 +++++--------------
{tdgsi_a64_ab => leos_a64_ab}/BoardConfig.mk | 0
.../BoardConfig.mk | 0
tdgsi_a64_a/BoardConfig.mk | 8 -----
tdgsi_arm64_a/BoardConfig.mk | 7 -----
tdgsi_arm_a/BoardConfig.mk | 11 -------
tdgsi_arm_ab/BoardConfig.mk | 7 -----
7 files changed, 8 insertions(+), 56 deletions(-)
rename {tdgsi_a64_ab => leos_a64_ab}/BoardConfig.mk (100%)
rename {tdgsi_arm64_ab => leos_arm64_ab}/BoardConfig.mk (100%)
delete mode 100644 tdgsi_a64_a/BoardConfig.mk
delete mode 100644 tdgsi_arm64_a/BoardConfig.mk
delete mode 100644 tdgsi_arm_a/BoardConfig.mk
delete mode 100644 tdgsi_arm_ab/BoardConfig.mk
diff --git a/tdgsi_a64_ab/BoardConfig.mk b/leos_a64_ab/BoardConfig.mk
similarity index 100%
rename from tdgsi_a64_ab/BoardConfig.mk
rename to leos_a64_ab/BoardConfig.mk
diff --git a/tdgsi_arm64_ab/BoardConfig.mk b/leos_arm64_ab/BoardConfig.mk
similarity index 100%
rename from tdgsi_arm64_ab/BoardConfig.mk
rename to leos_arm64_ab/BoardConfig.mk
diff --git a/tdgsi_a64_a/BoardConfig.mk b/tdgsi_a64_a/BoardConfig.mk
deleted file mode 100644
index d430bf8..0000000
--- a/tdgsi_a64_a/BoardConfig.mk
+++ /dev/null
@@ -1,8 +0,0 @@
-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 := 1572864000
-endif
-TARGET_USES_64_BIT_BINDER := true
-BOARD_SYSTEMIMAGE_AS_SYSTEM := true
diff --git a/tdgsi_arm64_a/BoardConfig.mk b/tdgsi_arm64_a/BoardConfig.mk
deleted file mode 100644
index c9bc831..0000000
--- a/tdgsi_arm64_a/BoardConfig.mk
+++ /dev/null
@@ -1,7 +0,0 @@
-include build/make/target/board/generic_arm64_ab/BoardConfig.mk
-include device/phh/treble/board-base.mk
-
-ifeq ($(BOARD_SYSTEMIMAGE_PARTITION_RESERVED_SIZE),)
-BOARD_SYSTEMIMAGE_PARTITION_SIZE := 2080374784
-endif
-BOARD_SYSTEMIMAGE_AS_SYSTEM := true
diff --git a/tdgsi_arm_a/BoardConfig.mk b/tdgsi_arm_a/BoardConfig.mk
deleted file mode 100644
index 7340fc4..0000000
--- a/tdgsi_arm_a/BoardConfig.mk
+++ /dev/null
@@ -1,11 +0,0 @@
-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 := 1313583104
-else
-BOARD_SYSTEMIMAGE_PARTITION_RESERVED_SIZE := 25165824
-endif
-
-TARGET_USES_64_BIT_BINDER := false
-BOARD_SYSTEMIMAGE_AS_SYSTEM := true
diff --git a/tdgsi_arm_ab/BoardConfig.mk b/tdgsi_arm_ab/BoardConfig.mk
deleted file mode 100644
index a9a4fe3..0000000
--- a/tdgsi_arm_ab/BoardConfig.mk
+++ /dev/null
@@ -1,7 +0,0 @@
-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
-endif
-TARGET_USES_64_BIT_BINDER := false
--
2.34.1

View File

@ -0,0 +1,24 @@
From 7972b63ff33a44636cacd55b685f76ddd2686ceb Mon Sep 17 00:00:00 2001
From: harvey186 <harvey186@hotmail.com>
Date: Fri, 9 Feb 2024 17:33:58 +0100
Subject: [PATCH] selinux
---
sepolicy/updater_app.te | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/sepolicy/updater_app.te b/sepolicy/updater_app.te
index ff82e4e..2ed20b9 100644
--- a/sepolicy/updater_app.te
+++ b/sepolicy/updater_app.te
@@ -1,6 +1,5 @@
-type updater_app, domain, coredomain;
-app_domain(updater_app)
+
net_domain(updater_app)
binder_call(updater_app, gpuservice)
--
2.34.1

View File

@ -0,0 +1,129 @@
From 2f2ead522831866be8aa31aeac73debe5512af57 Mon Sep 17 00:00:00 2001
From: harvey186 <harvey186@hotmail.com>
Date: Tue, 17 Sep 2024 15:39:40 +0200
Subject: [PATCH] updater_app
---
atv/private/system_app.te | 2 --
atv/sepolicy.mk | 12 ------------
atv/vendor/gmscore_app.te | 2 --
common/private/seapp_contexts | 2 +-
common/private/update_engine.te | 13 -------------
common/private/updater_app.te | 31 -------------------------------
qcom/dynamic/dontaudit.te | 1 -
7 files changed, 1 insertion(+), 62 deletions(-)
delete mode 100644 atv/private/system_app.te
delete mode 100644 atv/sepolicy.mk
delete mode 100644 atv/vendor/gmscore_app.te
delete mode 100644 common/private/update_engine.te
delete mode 100644 common/private/updater_app.te
delete mode 100644 qcom/dynamic/dontaudit.te
diff --git a/atv/private/system_app.te b/atv/private/system_app.te
deleted file mode 100644
index 6c7f09b..0000000
--- a/atv/private/system_app.te
+++ /dev/null
@@ -1,2 +0,0 @@
-# Allow TvSettings to read/write adb port prop
-set_prop(system_app, adbd_config_prop)
diff --git a/atv/sepolicy.mk b/atv/sepolicy.mk
deleted file mode 100644
index 92626b0..0000000
--- a/atv/sepolicy.mk
+++ /dev/null
@@ -1,12 +0,0 @@
-#
-# This policy configuration will be used by atv products that
-# inherit from Lineage
-#
-
-ifneq ($(TARGET_USES_PREBUILT_VENDOR_SEPOLICY), true)
-BOARD_SEPOLICY_DIRS += \
- device/voltage/sepolicy/atv/vendor
-endif
-
-PRODUCT_PRIVATE_SEPOLICY_DIRS += \
- device/voltage/sepolicy/atv/private
diff --git a/atv/vendor/gmscore_app.te b/atv/vendor/gmscore_app.te
deleted file mode 100644
index 3b2c9f3..0000000
--- a/atv/vendor/gmscore_app.te
+++ /dev/null
@@ -1,2 +0,0 @@
-get_prop(gmscore_app, apexd_prop)
-get_prop(gmscore_app, apk_verity_prop)
diff --git a/common/private/seapp_contexts b/common/private/seapp_contexts
index 35c4edb..7cc8d73 100644
--- a/common/private/seapp_contexts
+++ b/common/private/seapp_contexts
@@ -1,2 +1,2 @@
user=_app isPrivApp=true seinfo=mediashell domain=mediashell_app name=com.google.android.apps.mediashell type=app_data_file levelFrom=all
-user=_app isPrivApp=true seinfo=platform name=com.voltage.updater domain=updater_app type=app_data_file levelFrom=user
+
diff --git a/common/private/update_engine.te b/common/private/update_engine.te
deleted file mode 100644
index 7718ff9..0000000
--- a/common/private/update_engine.te
+++ /dev/null
@@ -1,13 +0,0 @@
-# Allow update_engine to call the callback function provided by updater_app
-binder_call(update_engine, updater_app)
-
-# Read updates from storage data
-r_dir_file(update_engine, mnt_user_file)
-r_dir_file(update_engine, storage_file)
-
-# Allow mount and unmount of system partition
-allow update_engine labeledfs:filesystem { mount unmount };
-
-# Allow transition to backuptool domain
-allow update_engine self:process setexec;
-domain_trans(update_engine, otapreopt_chroot_exec, backuptool)
diff --git a/common/private/updater_app.te b/common/private/updater_app.te
deleted file mode 100644
index 915885f..0000000
--- a/common/private/updater_app.te
+++ /dev/null
@@ -1,31 +0,0 @@
-type updater_app, domain, coredomain;
-
-app_domain(updater_app)
-net_domain(updater_app)
-
-binder_call(updater_app, gpuservice)
-binder_call(updater_app, update_engine)
-
-allow updater_app app_api_service:service_manager find;
-allow updater_app recovery_service:service_manager find;
-allow updater_app system_api_service:service_manager find;
-allow updater_app update_engine_service:service_manager find;
-
-allow updater_app app_data_file:dir create_dir_perms;
-allow updater_app app_data_file:{ file lnk_file } create_file_perms;
-
-allow updater_app cache_file:dir r_dir_perms;
-
-allow updater_app cache_recovery_file:dir rw_dir_perms;
-allow updater_app cache_recovery_file:file create_file_perms;
-
-allow updater_app system_data_file:dir r_dir_perms;
-allow updater_app user_profile_root_file:dir r_dir_perms;
-
-allow updater_app ota_package_file:dir create_dir_perms;
-allow updater_app ota_package_file:file create_file_perms;
-
-get_prop(updater_app, default_prop)
-get_prop(updater_app, build_prop)
-
-set_prop(updater_app, recovery_update_prop)
diff --git a/qcom/dynamic/dontaudit.te b/qcom/dynamic/dontaudit.te
deleted file mode 100644
index 313ca25..0000000
--- a/qcom/dynamic/dontaudit.te
+++ /dev/null
@@ -1 +0,0 @@
-dontaudit gmscore_app { adsprpcd_file bt_firmware_file firmware_file }:filesystem getattr;
--
2.34.1

View File

@ -0,0 +1,47 @@
From 34b75665a46a07799b954f9302b58abadcffc257 Mon Sep 17 00:00:00 2001
From: harvey186 <harvey186@hotmail.com>
Date: Fri, 9 Feb 2024 16:26:42 +0100
Subject: [PATCH] firebase
Change-Id: I534a93be9d5dce338368881dd873d2ea144661b9
---
Android.bp | 16 ----------------
1 file changed, 16 deletions(-)
diff --git a/Android.bp b/Android.bp
index 930124f..10c7b02 100644
--- a/Android.bp
+++ b/Android.bp
@@ -77,14 +77,6 @@ android_library_import {
apex_available: ["//apex_available:platform", "com.android.devicelock"],
}
-android_library_import {
- name: "firebase-messaging-aar",
- aars: ["libs/firebase-messaging-21.0.1.aar"],
- sdk_version: "system_current",
- min_sdk_version: "14",
- apex_available: ["//apex_available:platform", "com.android.devicelock"],
-}
-
android_library_import {
name: "play-services-basement-aar",
aars: ["libs/play-services-basement-17.0.0.aar"],
@@ -93,14 +85,6 @@ android_library_import {
apex_available: ["//apex_available:platform", "com.android.devicelock"],
}
-android_library_import {
- name: "play-services-cloud-messaging-aar",
- aars: ["libs/play-services-cloud-messaging-16.0.0.aar"],
- sdk_version: "system_current",
- min_sdk_version: "14",
- apex_available: ["//apex_available:platform", "com.android.devicelock"],
-}
-
android_library_import {
name: "play-services-tasks-aar",
aars: ["libs/play-services-tasks-17.0.0.aar"],
--
2.34.1

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,28 @@
From 53d8a8ade1ee59d72e92838aad75c272d62b8c4d Mon Sep 17 00:00:00 2001
From: harvey186 <harvey186@hotmail.com>
Date: Thu, 5 Oct 2023 13:18:17 +0200
Subject: [PATCH] frameworks_base_webview
Change-Id: I103c15fe38d5ff7698e2d0308fdf5d9f65cfaa6e
---
core/res/res/xml/config_webview_packages.xml | 3 +-
1 files changed, 105 insertions(+), 2 deletions(-)
diff --git a/core/res/res/xml/config_webview_packages.xml b/core/res/res/xml/config_webview_packages.xml
index f062b59a008c..33e82bf1e3d2 100644
--- a/core/res/res/xml/config_webview_packages.xml
+++ b/core/res/res/xml/config_webview_packages.xml
@@ -13,9 +13,8 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
-
<webviewproviders>
<!-- The default WebView implementation -->
- <webviewprovider description="Android WebView" packageName="com.android.webview" availableByDefault="true">
+ <webviewprovider description="LeOS WebView" packageName="com.leos.ium_wv" availableByDefault="true">
</webviewprovider>
</webviewproviders>
--
2.34.1

View File

@ -0,0 +1,70 @@
From 260d890365082720cef741a1490a95567d14db15 Mon Sep 17 00:00:00 2001
From: harvey186 <harvey186@hotmail.com>
Date: Thu, 25 Jan 2024 11:44:45 +0100
Subject: [PATCH] 0005-frameworks_base_defaults
---
core/res/res/values/config.xml | 6 +++---
packages/SettingsProvider/res/values/defaults.xml | 6 +++---
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml
index d066b13cc37c..b9f2212428ec 100644
--- a/core/res/res/values/config.xml
+++ b/core/res/res/values/config.xml
@@ -473,7 +473,7 @@
<!-- Flag indicating whether we should enable the automatic brightness.
Software implementation will be used if config_hardware_auto_brightness_available is not set -->
- <bool name="config_automatic_brightness_available">false</bool>
+ <bool name="config_automatic_brightness_available">true</bool>
<!-- Flag indicating whether we should enable the adaptive sleep.-->
<bool name="config_adaptive_sleep_available">false</bool>
@@ -859,7 +859,7 @@
1 - MODE_NIGHT_NO
2 - MODE_NIGHT_YES
-->
- <integer name="config_defaultNightMode">1</integer>
+ <integer name="config_defaultNightMode">2</integer>
<!-- Boolean indicating whether the HWC setColorTransform function can be performed efficiently
in hardware. -->
@@ -2538,7 +2538,7 @@
Items must be in the form: "ntp://<host>[:port]"
This is not a registered IANA URI scheme. -->
<string-array translatable="false" name="config_ntpServers">
- <item>ntp://pool.ntp.org</item>
+ <item>time.grapheneos.org</item>
</string-array>
<!-- SNTP client config: Timeout to wait for an NTP server response in milliseconds. -->
<integer name="config_ntpTimeout">5000</integer>
diff --git a/packages/SettingsProvider/res/values/defaults.xml b/packages/SettingsProvider/res/values/defaults.xml
index 131d5e914141..c4ef352551fc 100644
--- a/packages/SettingsProvider/res/values/defaults.xml
+++ b/packages/SettingsProvider/res/values/defaults.xml
@@ -176,10 +176,10 @@
<integer name="def_heads_up_enabled">1</integer>
<!-- Default for Settings.Global.DEVICE_NAME $1=MANUFACTURER $2=MODEL-->
- <string name="def_device_name">%1$s %2$s</string>
+ <string name="def_device_name">%1$s LeOS-U</string>
<!-- Default for Settings.Global.DEVICE_NAME $1=MODEL-->
- <string name="def_device_name_simple">%1$s</string>
+ <string name="def_device_name_simple">LeOS-U</string>
<!-- Default for Settings.Secure.WAKE_GESTURE_ENABLED -->
<bool name="def_wake_gesture_enabled">true</bool>
@@ -259,7 +259,7 @@
<integer name="def_accessibility_magnification_capabilities">3</integer>
<!-- Default for Settings.Global.DEVELOPMENT_ENABLE_NON_RESIZABLE_MULTI_WINDOW -->
- <bool name="def_enable_non_resizable_multi_window">false</bool>
+ <bool name="def_enable_non_resizable_multi_window">true</bool>
<!-- Default for Settings.Secure.ACCESSIBILITY_BUTTON_MODE -->
<integer name="def_accessibility_button_mode">1</integer>
--
2.34.1

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,37 @@
From 7628c97cada65bfc7842094f36a248e50989eb8a Mon Sep 17 00:00:00 2001
From: harvey186 <harvey186@hotmail.com>
Date: Sun, 10 Sep 2023 16:17:51 +0200
Subject: [PATCH] packages_apps_Contacts
Change-Id: I754341496862595f999df57a08257b212fdcc59e
---
AndroidManifest.xml | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index dd7c2cbee..5b337e507 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -61,6 +61,10 @@
android:name="android.hardware.telephony"
android:required="false"/>
+ <uses-feature
+ android:name="android.software.leanback"
+ android:required="true" />
+
<application
android:name="com.android.contacts.ContactsApplication"
android:hardwareAccelerated="true"
@@ -84,7 +88,7 @@
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.DEFAULT"/>
- <category android:name="android.intent.category.LAUNCHER"/>
+ <category android:name="android.intent.category.LEANBACK_LAUNCHER"/>
<category android:name="android.intent.category.BROWSABLE"/>
<category android:name="android.intent.category.APP_CONTACTS"/>
</intent-filter>
--
2.34.1

View File

@ -0,0 +1,46 @@
From 4cab2078f5c92f04ad073d933d892a9f0d6322c1 Mon Sep 17 00:00:00 2001
From: harvey186 <harvey186@hotmail.com>
Date: Fri, 6 Oct 2023 15:34:12 +0200
Subject: [PATCH] packages_apps_DocumentsUI
Change-Id: I22b2011b408f7c6c7adfb698a00cbf20ddbd1c1e
---
AndroidManifest.xml | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index ef86ab779..e8136be21 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -39,6 +39,10 @@
<uses-permission android:name="android.permission.READ_COMPAT_CHANGE_CONFIG"/>
<uses-permission android:name="android.permission.START_FOREGROUND_SERVICES_FROM_BACKGROUND"/>
+
+ <uses-feature
+ android:name="android.software.leanback"
+ android:required="true" />
<application
android:name=".DocumentsApplication"
@@ -52,7 +56,7 @@
<meta-data
android:name="com.google.android.backup.api_key"
- android:value="AEdPqrEAAAAInBA8ued0O_ZyYUsVhwinUF-x50NIe9K0GzBW4A" />
+ android:value="AEdPqrEAAAAInXXBA8ued0O_ZyYUsVhwinUF-x50NIe9K0GzBW4A" />
<activity
android:name=".picker.PickActivity"
@@ -106,7 +110,7 @@
android:icon="@drawable/launcher_icon" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.LAUNCHER" />
+ <category android:name="android.intent.category.LEANBACK_LAUNCHER" />
<category android:name="android.intent.category.APP_FILES" />
</intent-filter>
<meta-data android:name="android.app.shortcuts" android:resource="@xml/shortcuts" />
--
2.34.1

View File

@ -0,0 +1,37 @@
From 4cab2078f5c92f04ad073d933d892a9f0d6322c1 Mon Sep 17 00:00:00 2001
From: harvey186 <harvey186@hotmail.com>
Date: Fri, 6 Oct 2023 15:34:12 +0200
Subject: [PATCH] packages_apps_DocumentsUI
Change-Id: I22b2011b408f7c6c7adfb698a00cbf20ddbd1c1e
---
AndroidManifest.xml | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index ef86ab779..e8136be21 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -39,6 +39,10 @@
<uses-permission android:name="android.permission.READ_COMPAT_CHANGE_CONFIG"/>
<uses-permission android:name="android.permission.START_FOREGROUND_SERVICES_FROM_BACKGROUND"/>
+
+ <uses-feature
+ android:name="android.software.leanback"
+ android:required="true" />
<application
android:name=".DocumentsApplication"
@@ -106,7 +110,7 @@
android:icon="@drawable/launcher_icon" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.LAUNCHER" />
+ <category android:name="android.intent.category.LEANBACK_LAUNCHER" />
<category android:name="android.intent.category.APP_FILES" />
</intent-filter>
<meta-data android:name="android.app.shortcuts" android:resource="@xml/shortcuts" />
--
2.34.1

View File

@ -0,0 +1,27 @@
From 283bc45ac577e90dca7646dcf3a0eeeefd9d3002 Mon Sep 17 00:00:00 2001
From: harvey186 <harvey186@hotmail.com>
Date: Sun, 20 Aug 2023 10:49:15 +0200
Subject: [PATCH] firebase
Change-Id: I138f0d0daba12bdb9d0ab7565bbbce3af4f8b8df
---
Android.bp | 2 --
1 file changed, 2 deletions(-)
diff --git a/Android.bp b/Android.bp
index 60ba277..e158bd2 100644
--- a/Android.bp
+++ b/Android.bp
@@ -39,9 +39,7 @@ android_library {
"firebase-iid-interop-aar",
"firebase-installations-aar",
"firebase-installations-interop-aar",
- "firebase-messaging-aar",
"play-services-basement-aar",
- "play-services-cloud-messaging-aar",
"play-services-tasks-aar",
"transport-api-aar",
"firebase-measurement-connector-aar",
--
2.34.1

View File

@ -0,0 +1,528 @@
From eda6d034d7013b17c6c33a3ddea25a8b1435e6b7 Mon Sep 17 00:00:00 2001
From: harvey186 <harvey186@hotmail.com>
Date: Mon, 11 Dec 2023 18:03:06 +0100
Subject: [PATCH] remove_fcm
Change-Id: I71f795a263a5f846ba4c4fe07745e61219381e26
---
.../fcm/FcmRegistrationReceiver.java | 32 ----
.../fcm/FcmRegistrationService.java | 153 ------------------
.../imsserviceentitlement/fcm/FcmService.java | 135 ----------------
.../fcm/FcmTokenStore.java | 83 ----------
.../imsserviceentitlement/fcm/FcmUtils.java | 73 ---------
5 files changed, 476 deletions(-)
delete mode 100644 src/com/android/imsserviceentitlement/fcm/FcmRegistrationReceiver.java
delete mode 100644 src/com/android/imsserviceentitlement/fcm/FcmRegistrationService.java
delete mode 100644 src/com/android/imsserviceentitlement/fcm/FcmService.java
delete mode 100644 src/com/android/imsserviceentitlement/fcm/FcmTokenStore.java
delete mode 100644 src/com/android/imsserviceentitlement/fcm/FcmUtils.java
diff --git a/src/com/android/imsserviceentitlement/fcm/FcmRegistrationReceiver.java b/src/com/android/imsserviceentitlement/fcm/FcmRegistrationReceiver.java
deleted file mode 100644
index 9c72f39..0000000
--- a/src/com/android/imsserviceentitlement/fcm/FcmRegistrationReceiver.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright (C) 2021 The Android Open Source 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.
- */
-
-package com.android.imsserviceentitlement.fcm;
-
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-
-/** A {@link BroadcastReceiver} that triggers FCM registration jobs. */
-public class FcmRegistrationReceiver extends BroadcastReceiver {
- @Override
- public void onReceive(Context context, Intent intent) {
- String action = intent.getAction();
- if (Intent.ACTION_BOOT_COMPLETED.equals(action)) {
- FcmRegistrationService.enqueueJob(context);
- }
- }
-}
diff --git a/src/com/android/imsserviceentitlement/fcm/FcmRegistrationService.java b/src/com/android/imsserviceentitlement/fcm/FcmRegistrationService.java
deleted file mode 100644
index 184740d..0000000
--- a/src/com/android/imsserviceentitlement/fcm/FcmRegistrationService.java
+++ /dev/null
@@ -1,153 +0,0 @@
-/*
- * Copyright (C) 2021 The Android Open Source 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.
- */
-
-package com.android.imsserviceentitlement.fcm;
-
-import android.app.job.JobParameters;
-import android.app.job.JobService;
-import android.content.ComponentName;
-import android.content.Context;
-import android.os.AsyncTask;
-import android.telephony.SubscriptionManager;
-import android.util.Log;
-
-import androidx.annotation.VisibleForTesting;
-
-import com.android.imsserviceentitlement.R;
-import com.android.imsserviceentitlement.job.JobManager;
-import com.android.imsserviceentitlement.utils.TelephonyUtils;
-
-import com.google.firebase.FirebaseApp;
-import com.google.firebase.FirebaseOptions;
-import com.google.firebase.iid.FirebaseInstanceId;
-import com.google.firebase.messaging.FirebaseMessaging;
-
-import java.io.IOException;
-
-/** A {@link JobService} that gets a FCM tokens for all active SIMs. */
-public class FcmRegistrationService extends JobService {
- private static final String TAG = "IMSSE-FcmRegistrationService";
-
- private FirebaseInstanceId mFakeInstanceID = null;
- private FirebaseApp mApp = null;
-
- @VisibleForTesting AsyncTask<JobParameters, Void, Void> mOngoingTask;
-
- /** Enqueues a job for FCM registration. */
- public static void enqueueJob(Context context) {
- ComponentName componentName = new ComponentName(context, FcmRegistrationService.class);
- // No subscription id associated job, use {@link
- // SubscriptionManager#INVALID_SUBSCRIPTION_ID}.
- JobManager jobManager =
- JobManager.getInstance(
- context, componentName, SubscriptionManager.INVALID_SUBSCRIPTION_ID);
- jobManager.registerFcmOnceNetworkReady();
- }
-
- @VisibleForTesting
- void setFakeInstanceID(FirebaseInstanceId instanceID) {
- mFakeInstanceID = instanceID;
- }
-
- @Override
- @VisibleForTesting
- protected void attachBaseContext(Context base) {
- super.attachBaseContext(base);
- }
-
- /** Returns a {@link FirebaseApp} instance, lazily initialized. */
- private FirebaseApp getFirebaseApp() {
- if (mApp == null) {
- try {
- mApp = FirebaseApp.getInstance();
- } catch (IllegalStateException e) {
- Log.d(TAG, "initialize FirebaseApp");
- mApp = FirebaseApp.initializeApp(
- this,
- new FirebaseOptions.Builder()
- .setApplicationId(getResources().getString(R.string.fcm_app_id))
- .setProjectId(getResources().getString(R.string.fcm_project_id))
- .setApiKey(getResources().getString(R.string.fcm_api_key))
- .build());
- }
- }
- return mApp;
- }
-
- @Override
- public boolean onStartJob(JobParameters params) {
- mOngoingTask = new AsyncTask<JobParameters, Void, Void>() {
- @Override
- protected Void doInBackground(JobParameters... params) {
- onHandleWork(params[0]);
- return null;
- }
- };
- mOngoingTask.execute(params);
- return true;
- }
-
- @Override
- public boolean onStopJob(JobParameters params) {
- return true; // Always re-run if job stopped.
- }
-
- /**
- * Registers to receive FCM messages published to subscribe topics under the retrieved token.
- * The token changes when the InstanceID becomes invalid (e.g. app data is deleted).
- */
- protected void onHandleWork(JobParameters params) {
- boolean wantsReschedule = false;
- for (int subId : TelephonyUtils.getSubIdsWithFcmSupported(this)) {
- if (!updateFcmToken(getFirebaseInstanceId(), subId)) {
- wantsReschedule = true;
- }
- }
-
- jobFinished(params, wantsReschedule);
- }
-
- /** Returns {@code false} if failed to get token. */
- private boolean updateFcmToken(FirebaseInstanceId instanceID, int subId) {
- Log.d(TAG, "FcmRegistrationService.updateFcmToken: subId=" + subId);
- String token = getTokenForSubId(instanceID, subId);
- if (token == null) {
- Log.d(TAG, "getToken null");
- return false;
- }
- Log.d(TAG, "FCM token: " + token + " subId: " + subId);
- FcmTokenStore.setToken(this, subId, token);
- return true;
- }
-
- private FirebaseInstanceId getFirebaseInstanceId() {
- return (mFakeInstanceID != null)
- ? mFakeInstanceID
- : FirebaseInstanceId.getInstance(getFirebaseApp());
- }
-
- private String getTokenForSubId(FirebaseInstanceId instanceID, int subId) {
- String token = null;
- try {
- token = instanceID.getToken(
- TelephonyUtils.getFcmSenderId(this, subId),
- FirebaseMessaging.INSTANCE_ID_SCOPE);
- } catch (IOException e) {
- Log.e(TAG, "Failed to get a new FCM token: " + e);
- }
- return token;
- }
-}
diff --git a/src/com/android/imsserviceentitlement/fcm/FcmService.java b/src/com/android/imsserviceentitlement/fcm/FcmService.java
deleted file mode 100644
index 9ab33fc..0000000
--- a/src/com/android/imsserviceentitlement/fcm/FcmService.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
- * Copyright (C) 2021 The Android Open Source 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.
- */
-
-package com.android.imsserviceentitlement.fcm;
-
-import android.content.ComponentName;
-import android.content.Context;
-import android.util.Log;
-
-import com.android.imsserviceentitlement.ImsEntitlementPollingService;
-import com.android.imsserviceentitlement.job.JobManager;
-import com.android.imsserviceentitlement.utils.TelephonyUtils;
-import com.android.libraries.entitlement.ServiceEntitlement;
-
-import com.google.common.annotations.VisibleForTesting;
-import com.google.firebase.messaging.FirebaseMessagingService;
-import com.google.firebase.messaging.RemoteMessage;
-
-import java.util.Map;
-
-/** Service for handling Firebase Cloud Messaging.*/
-public class FcmService extends FirebaseMessagingService {
- private static final String TAG = "IMSSE-FcmService";
-
- private static final String DATA_APP_KEY = "app";
- private static final String DATA_TIMESTAMP_KEY = "timestamp";
-
- private JobManager mJobManager;
-
- @Override
- @VisibleForTesting
- protected void attachBaseContext(Context base) {
- super.attachBaseContext(base);
- }
-
- /**
- * Called when a new token for the default Firebase project is generated.
- *
- * @param token the token used for sending messages to this application instance.
- */
- @Override
- public void onNewToken(String token) {
- Log.d(TAG, "New token: " + token);
-
- // TODO(b/182560867): check if we need to update the new token to server.
-
- // Note we cannot directly save the new token, as we don't know which subId
- // it's associated with.
- FcmRegistrationService.enqueueJob(this);
- }
-
- /**
- * Handles FCM message for entitlement.
- *
- * @param message holds the message received from Firebase Cloud Messaging.
- */
- @Override
- public void onMessageReceived(RemoteMessage message) {
- // Not testable.
- onMessageReceived(message.getSenderId(), message.getData());
- }
-
- @VisibleForTesting
- void onMessageReceived(String fcmSenderId, Map<String, String> fcmData) {
- Log.d(TAG, "onMessageReceived, SenderId:" + fcmSenderId);
- if (!isTs43EntitlementsChangeEvent(fcmData)) {
- Log.i(TAG, "Ignore message not related to entitlements change.");
- return;
- }
- // A corner case: a FCM received after SIM is removed, and SIM inserted back later.
- // We missed the FCM in this case.
- scheduleEntitlementStatusCheckForSubIdAssociatedWithSenderId(fcmSenderId);
- }
-
- private static boolean isTs43EntitlementsChangeEvent(Map<String, String> dataMap) {
- if (dataMap == null) {
- return false;
- }
- Log.v(TAG, "The payload data: " + dataMap);
-
- // Based on GSMA TS.43 2.4.2 Messaging Infrastructure-Based Notifications, the notification
- // payload for multiple applications follows:
- // "data":
- // {
- // "app": ["ap2003", "ap2004", "ap2005"],
- // "timestamp": "2019-01-29T13:15:31-08:00"
- // }
- if (!dataMap.containsKey(DATA_APP_KEY) || !dataMap.containsKey(DATA_TIMESTAMP_KEY)) {
- Log.d(TAG, "data format error");
- return false;
- }
- // Check if APP_VOWIFI i.e. "ap2004" is in notification data.
- if (dataMap.get(DATA_APP_KEY).contains(ServiceEntitlement.APP_VOWIFI)) {
- return true;
- }
- return false;
- }
-
- @VisibleForTesting
- void setMockJobManager(JobManager jobManager) {
- mJobManager = jobManager;
- }
-
- private JobManager getJobManager(int subId) {
- return (mJobManager != null)
- ? mJobManager
- : JobManager.getInstance(
- this,
- ImsEntitlementPollingService.COMPONENT_NAME,
- subId);
- }
-
- private void scheduleEntitlementStatusCheckForSubIdAssociatedWithSenderId(String msgSenderId) {
- for (int subId : TelephonyUtils.getSubIdsWithFcmSupported(this)) {
- String configSenderId = TelephonyUtils.getFcmSenderId(this, subId);
- if (msgSenderId.equals(configSenderId)) {
- Log.d(TAG, "check entitlement status for subscription id(" + subId + ")");
- getJobManager(subId).queryEntitlementStatusOnceNetworkReady();
- }
- }
- }
-}
diff --git a/src/com/android/imsserviceentitlement/fcm/FcmTokenStore.java b/src/com/android/imsserviceentitlement/fcm/FcmTokenStore.java
deleted file mode 100644
index a972fb7..0000000
--- a/src/com/android/imsserviceentitlement/fcm/FcmTokenStore.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Copyright (C) 2021 The Android Open Source 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.
- */
-
-package com.android.imsserviceentitlement.fcm;
-
-import android.content.Context;
-import android.content.SharedPreferences;
-import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
-import android.text.TextUtils;
-import android.util.Log;
-
-import androidx.annotation.WorkerThread;
-
-/** Stores FCM token. */
-public final class FcmTokenStore {
- private static final String TAG = "IMSSE-FcmTokenStore";
-
- private static final String FCM_TOKEN_FILE = "FCM_TOKEN";
- private static final String FCM_TOKEN_KEY = "FCM_TOKEN_SUB_";
-
- private FcmTokenStore() {}
-
- /** Returns FCM token or empty string if not available. */
- public static String getToken(Context context, int subId) {
- return getFcmTokenFile(context).getString(FCM_TOKEN_KEY + subId, "");
- }
-
- /** Returns {@code true} if FCM token available. */
- public static boolean hasToken(Context context, int subId) {
- return !TextUtils.isEmpty(getToken(context, subId));
- }
-
- /** Saves the FCM token into data store. */
- @WorkerThread
- public static boolean setToken(Context context, int subId, String token) {
- if (!TextUtils.isEmpty(token)) {
- return getFcmTokenFile(context)
- .edit()
- .putString(FCM_TOKEN_KEY + subId, token)
- .commit();
- } else {
- return getFcmTokenFile(context)
- .edit()
- .remove(FCM_TOKEN_KEY + subId)
- .commit();
- }
- }
-
- /** Registers a listener for FCM token update. */
- public static void registerTokenUpdateListener(
- Context context, OnSharedPreferenceChangeListener listener) {
- Log.d(TAG, "registerTokenUpdateListener");
- // Since FCM_TOKEN_FILE only contains one item FCM_TOKEN_KEY, a change to FCM_TOKEN_FILE
- // means a change to FCM_TOKEN_KEY. The listener can ignore its arguments.
- getFcmTokenFile(context).registerOnSharedPreferenceChangeListener(listener);
- }
-
- /** Unregisters a listener for FCM token update. */
- public static void unregisterTokenUpdateListener(
- Context context, OnSharedPreferenceChangeListener listener) {
- Log.d(TAG, "unregisterTokenUpdateListener");
- // Since FCM_TOKEN_FILE only contains one item FCM_TOKEN_KEY, a change to FCM_TOKEN_FILE
- // means a change to FCM_TOKEN_KEY. The listener can ignore its arguments.
- getFcmTokenFile(context).unregisterOnSharedPreferenceChangeListener(listener);
- }
-
- private static SharedPreferences getFcmTokenFile(Context context) {
- return context.getSharedPreferences(FCM_TOKEN_FILE, Context.MODE_PRIVATE);
- }
-}
diff --git a/src/com/android/imsserviceentitlement/fcm/FcmUtils.java b/src/com/android/imsserviceentitlement/fcm/FcmUtils.java
deleted file mode 100644
index 70ec276..0000000
--- a/src/com/android/imsserviceentitlement/fcm/FcmUtils.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Copyright (C) 2021 The Android Open Source 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.
- */
-
-package com.android.imsserviceentitlement.fcm;
-
-import static java.util.concurrent.TimeUnit.SECONDS;
-
-import android.content.Context;
-import android.content.SharedPreferences;
-import android.util.Log;
-
-import androidx.annotation.WorkerThread;
-
-import java.util.concurrent.CountDownLatch;
-
-/** Convenience methods for FCM. */
-public final class FcmUtils {
- public static final String LOG_TAG = "IMSSE-FcmUtils";
-
- private static final long TOKEN_UPDATE_WAITING_SECONDS = 25L;
-
- private FcmUtils() {}
-
- /** Fetches FCM token, if it's not available via {@link FcmTokenStore#getToken}. */
- @WorkerThread
- public static void fetchFcmToken(Context context, int subId) {
- if (FcmTokenStore.hasToken(context, subId)) {
- Log.d(LOG_TAG, "FCM token available.");
- return;
- }
-
- Log.d(LOG_TAG, "FCM token unavailable. Try to update...");
- final CountDownLatch tokenUpdated = new CountDownLatch(1);
- final SharedPreferences.OnSharedPreferenceChangeListener listener =
- (s, k) -> {
- Log.d(LOG_TAG, "FCM preference changed.");
- if (FcmTokenStore.hasToken(context, subId)) {
- tokenUpdated.countDown();
- }
- };
- FcmTokenStore.registerTokenUpdateListener(context, listener);
-
- // Starts a JobIntentService to update FCM token by calling FCM API on a worker thread.
- FcmRegistrationService.enqueueJob(context);
-
- try {
- // Wait for 25s. If FCM token update failed/timeout, we will let user see
- // the error message returned by server. Then user can manually retry.
- if (tokenUpdated.await(TOKEN_UPDATE_WAITING_SECONDS, SECONDS)) {
- Log.d(LOG_TAG, "FCM token updated.");
- } else {
- Log.d(LOG_TAG, "FCM token update failed.");
- }
- } catch (InterruptedException e) {
- // Do nothing
- Log.d(LOG_TAG, "FCM token update interrupted.");
- }
- FcmTokenStore.unregisterTokenUpdateListener(context, listener);
- }
-}
--
2.34.1

View File

@ -0,0 +1,41 @@
From 45848230543a57a3e7aa65f639003cbbb5683dbd Mon Sep 17 00:00:00 2001
From: harvey186 <harvey186@hotmail.com>
Date: Tue, 12 Dec 2023 15:39:08 +0100
Subject: [PATCH] remove_token
Change-Id: I818095bf275db4a0f1df223a7ef374e4c38320bb
---
.../android/imsserviceentitlement/ImsEntitlementApi.java | 7 -------
1 file changed, 7 deletions(-)
diff --git a/src/com/android/imsserviceentitlement/ImsEntitlementApi.java b/src/com/android/imsserviceentitlement/ImsEntitlementApi.java
index d6ccd65..bb5d17c 100644
--- a/src/com/android/imsserviceentitlement/ImsEntitlementApi.java
+++ b/src/com/android/imsserviceentitlement/ImsEntitlementApi.java
@@ -30,8 +30,6 @@ import com.android.imsserviceentitlement.debug.DebugUtils;
import com.android.imsserviceentitlement.entitlement.EntitlementConfiguration;
import com.android.imsserviceentitlement.entitlement.EntitlementConfiguration.ClientBehavior;
import com.android.imsserviceentitlement.entitlement.EntitlementResult;
-import com.android.imsserviceentitlement.fcm.FcmTokenStore;
-import com.android.imsserviceentitlement.fcm.FcmUtils;
import com.android.imsserviceentitlement.ts43.Ts43Constants.ResponseXmlAttributes;
import com.android.imsserviceentitlement.ts43.Ts43Constants.ResponseXmlNode;
import com.android.imsserviceentitlement.ts43.Ts43SmsOverIpStatus;
@@ -105,14 +103,9 @@ public class ImsEntitlementApi {
* unrecoverable network issue or malformed server response. This is blocking call so should
* not be called on main thread.
*/
- @Nullable
public EntitlementResult checkEntitlementStatus() {
Log.d(TAG, "checkEntitlementStatus subId=" + mSubId);
ServiceEntitlementRequest.Builder requestBuilder = ServiceEntitlementRequest.builder();
- mLastEntitlementConfiguration.getToken().ifPresent(
- token -> requestBuilder.setAuthenticationToken(token));
- FcmUtils.fetchFcmToken(mContext, mSubId);
- requestBuilder.setNotificationToken(FcmTokenStore.getToken(mContext, mSubId));
// Set fake device info to avoid leaking
requestBuilder.setTerminalVendor("vendorX");
requestBuilder.setTerminalModel("modelY");
--
2.34.1

View File

@ -0,0 +1,803 @@
From a120d979b43f623f53580e30b993702b8dfebb89 Mon Sep 17 00:00:00 2001
From: harvey186 <harvey186@hotmail.com>
Date: Sat, 27 Jan 2024 15:24:59 +0100
Subject: [PATCH] 2-LeOS-Stuff
---
.../ic_launcher_home_foreground.png | Bin 236 -> 10303 bytes
.../ic_launcher_home_foreground.png | Bin 339 -> 10189 bytes
.../ic_launcher_home_foreground.png | Bin 357 -> 11530 bytes
.../ic_launcher_home_foreground.png | Bin 485 -> 13582 bytes
res/values/voltage_strings.xml | 26 +++++++++---------
.../launcher3/customization/IconDatabase.java | 2 +-
.../launcher3/icons/pack/IconPackManager.java | 3 +-
.../preference/IconPackPrefSetter.java | 2 +-
8 files changed, 17 insertions(+), 16 deletions(-)
diff --git a/res/mipmap-hdpi/ic_launcher_home_foreground.png b/res/mipmap-hdpi/ic_launcher_home_foreground.png
index d068d92361a06550fb1bcdf36fbc4bf56242d54e..6f56658b732a7ea0c99e05e73ff13e6cac45a836 100644
GIT binary patch
literal 10303
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
delta 219
zcmdlV@P=`MWIZzj14ELrb19IL2=EDU1=2vUfB*jf|Noz1U`U(Ez%cWS@z$pYva%|G
z5{xB5e!&b5&u*jvIZd7}jv*Dd-d@<q*I>ZWl9=s!|9`J(h}0}^cJafee=fH^l)kY^
zhdb!vwdSsFS*O(Nx6;}JRz_{->lJZ28oftAE5k6vX~h{GE)G$_m0|ZY0v&$HUffl*
z>i`$8=;<j7*<!D8M^02cADSya+rcfs(P*2>ml%<z6^hymUtE};<P<sW?>%0QKcbR*
S8gjWnuJ&~Gb6Mw<&;$V3b5<Py
diff --git a/res/mipmap-mdpi/ic_launcher_home_foreground.png b/res/mipmap-mdpi/ic_launcher_home_foreground.png
index 0ed9f4d814770dbeb83f97d2050b465e2a7f4479..96fd67890d7b88ed503ccf760b5fed68d08127ed 100644
GIT binary patch
literal 10189
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
delta 298
zcmV+_0oDG^PtyXB7)JyH0001eNJ{<y000<JOjJc-Z~y=R0KdP#|NsBY003s0005cH
zGqvTP7?^Yb0004WQchC<K<3zH00001VoOIv0Eh)0NRtaA9)IBj0}(SGS6L>l0002A
zNkl<ZSi|kq!3n}Z5QSj{3&=z*z!3}3LC+r2fouhW4S2A9XR<{0pav1wcX;1zA^+jA
zWG53MBBKAAiZtk%^q?~z)~c>PomVyURjO)cF>ls&N4zW#TU*$QED*EDu*{EeSvkyx
zc@0(;!!{|t-dCq`9#A$6OYUTLxP<fQysBBeRjvA}%(I)j_Su_xb+ahvW;@NwZ0z2u
wXV11_X0lA>FNc}MHfG;sFF<8PL`1)F2dbd5nG&7YzW@LL07*qoM6N<$f;0Jk$p8QV
diff --git a/res/mipmap-xhdpi/ic_launcher_home_foreground.png b/res/mipmap-xhdpi/ic_launcher_home_foreground.png
index 7a9daf5bfe7a5fcfdf7e772dfe5300373d287389..ebdac95bfdd2fcaed0f9c1249300f4498c8ccc73 100644
GIT binary patch
literal 11530
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
a{)ML=F<!G@Xm#@vR82`su~^<Z=>Gw?9P}3e
delta 316
zcmeB*ddf6G!kvYgfq|i#&)^=Ak_hk#aZM}$vKaR7-~a#r|1%5>X)_rZW}Y$L`gFd;
zj1r&(V@Z%-FoVOh8)+a;lDE4HLkFv@$7FX!x%!99%z{SDx-QkGK)GX{E{-7;x8B}3
z$a_dZqT%AY3!=N4w0AIR?`V2``@)n9S-iKLd~5D^7W}y1D&Tb8bCL=Ky`26k+2F>@
zi21C|b31&G39Np1Fd_Al>a;!CJZ#y`w%$A0n@taITQZfs`RcKI-m9f0*;co!YPL*p
zd!G4P*;ZoBj|=TPGk@v6X5eSj{$Up7c~ZLfcT8XHW1uNdOfn+2wZ7f^HE{#enh!4y
zC+Kc0eEw8flr6je>H81~9=6}nZx$zPsG0$Fisz)VFAP(rp7j^{yR`!7B?eDdKbLh*
G2~7YzHHK#Z
diff --git a/res/mipmap-xxhdpi/ic_launcher_home_foreground.png b/res/mipmap-xxhdpi/ic_launcher_home_foreground.png
index 03b493e4a3513a3c688698348ddd64180bdfe33d..3b36de5625124acc4e6cc3f28425edbd76b82e37 100644
GIT binary patch
literal 13582
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
literal 485
zcmeAS@N?(olHy`uVBq!ia0y~yU~~at7G|Kx+9Oe4fs{mmPl#(`0g%P8fB*jf|Noz1
zU`U(Ez%cWS@z$sFC1#WWB^XPB{DK)Ap4~_Tagw~<T^Kr8Wj%l#&H|6fVg?3oVGw3y
zm^DWND9B#o>Fdh=keOM~z{;U~;(nkWH%}MGkcwMx?>J^PJ213eWT|Rc;>$1K&40mb
z)44_F8kUX<;wKhe&*wh3KyqtSr{BZ9OS$TH%ZtY70L?=J5*a(!tx@rsq7nGW-XlgG
z%u3qVSr{VMeadY6%!wL-i(EQ&7Yn`WGRin}=CJ!y1(1Nyb8jE_r%U&I6I*xF1E_b=
zk(t8PZmOdC)4=LKtMExq-Bg_xCZq~9x$x4FV=MN^)tgwAot)SQH8NPGtmo9mcg9=Z
zoWJfTe5MCzrm9zt<kT4w+f_t`_rKEfe3YB+2C_=^+ZMal*?Yy;wyE6vdD9gvRHo7w
zAr8_pWrp*k_bZ><#~t?uJ7bNI^lK%s3qdvm-8H)=NY)XoC+**TXC#j^Ff{zEVRl>T
U{kpq~Z7)c|)78&qol`;+0B9eraR2}S
diff --git a/src/com/android/launcher3/customization/IconDatabase.java b/src/com/android/launcher3/customization/IconDatabase.java
index 0673471fff..0c20d51675 100644
--- a/src/com/android/launcher3/customization/IconDatabase.java
+++ b/src/com/android/launcher3/customization/IconDatabase.java
@@ -14,7 +14,7 @@ public class IconDatabase {
private static final String PREF_FILE_NAME = BuildConfig.APPLICATION_ID + ".ICON_DATABASE";
public static final String KEY_ICON_PACK = "pref_icon_pack";
- public static final String VALUE_DEFAULT = "";
+ public static final String VALUE_DEFAULT = "com.leos.icons";
public static String getGlobal(Context context) {
return LauncherPrefs.getPrefs(context).getString(KEY_ICON_PACK, VALUE_DEFAULT);
diff --git a/src/com/android/launcher3/icons/pack/IconPackManager.java b/src/com/android/launcher3/icons/pack/IconPackManager.java
index 8c54880e52..eb7a41d631 100644
--- a/src/com/android/launcher3/icons/pack/IconPackManager.java
+++ b/src/com/android/launcher3/icons/pack/IconPackManager.java
@@ -38,7 +38,8 @@ public class IconPackManager extends BroadcastReceiver {
"com.gau.go.launcherex.theme",
"org.adw.launcher.THEMES",
"net.oneplus.launcher.icons.ACTION_PICK_ICON",
- "org.adw.launcher.icons.ACTION_PICK_ICON"
+ "org.adw.launcher.icons.ACTION_PICK_ICON",
+ "com.leos.icons"
};
private static final Intent[] ICON_INTENTS = new Intent[ICON_INTENT_ACTIONS.length];
diff --git a/src/com/android/launcher3/settings/preference/IconPackPrefSetter.java b/src/com/android/launcher3/settings/preference/IconPackPrefSetter.java
index 04eb869c0a..5cd2fd28c0 100644
--- a/src/com/android/launcher3/settings/preference/IconPackPrefSetter.java
+++ b/src/com/android/launcher3/settings/preference/IconPackPrefSetter.java
@@ -50,7 +50,7 @@ public class IconPackPrefSetter implements ReloadingListPreference.OnReloadListe
// First value, system default, or the current icon pack if that has no icon yet.
keys[i] = mContext.getResources().getString(R.string.icon_pack_default_label);
- values[i++] = packList.containsKey(globalPack) ? "" : globalPack;
+ values[i++] = packList.containsKey(globalPack) ? "com.leos.icons" : globalPack;
// List of available icon packs
List<Map.Entry<String, CharSequence>> packs = new ArrayList<>(packList.entrySet());
--
2.34.1

View File

@ -0,0 +1,72 @@
From d1dc9cab99c61c3bb2351f72a9a5343bf145f519 Mon Sep 17 00:00:00 2001
From: harvey186 <harvey186@hotmail.com>
Date: Sat, 10 Feb 2024 16:45:40 +0100
Subject: [PATCH] packages_apps_ManagedProvisioning_Google
Change-Id: Ia16e1ef6013aecbc4c7e21fec42079975ed5e1cb
---
.../EstablishNetworkConnectionViewModelTest.java | 4 ++--
.../parser/ExtrasProvisioningDataParserTest.java | 10 +++++-----
2 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/tests/instrumentation/src/com/android/managedprovisioning/networkconnection/EstablishNetworkConnectionViewModelTest.java b/tests/instrumentation/src/com/android/managedprovisioning/networkconnection/EstablishNetworkConnectionViewModelTest.java
index 9f0b0f04..9960f627 100644
--- a/tests/instrumentation/src/com/android/managedprovisioning/networkconnection/EstablishNetworkConnectionViewModelTest.java
+++ b/tests/instrumentation/src/com/android/managedprovisioning/networkconnection/EstablishNetworkConnectionViewModelTest.java
@@ -79,9 +79,9 @@ public final class EstablishNetworkConnectionViewModelTest {
private static final Context sContext = ApplicationProvider.getApplicationContext();
private static final String TEST_SSID = "\"test ssid\"";
private static final String TEST_SECURITY_TYPE_EAP = "EAP";
- private static final String TEST_PROXY_HOST = "www.google.com";
+ private static final String TEST_PROXY_HOST = "LeOS-GSI.de";
private static final int TEST_PROXY_PORT = 1234;
- private static final String TEST_PROXY_BYPASS = "www.android.com";
+ private static final String TEST_PROXY_BYPASS = "LeOS-GSI.de";
private static final String ADMIN_PACKAGE = "com.test.admin";
private static final ComponentName ADMIN = new ComponentName(ADMIN_PACKAGE, ".Receiver");
private static final Intent INVALID_INTENT =
diff --git a/tests/instrumentation/src/com/android/managedprovisioning/parser/ExtrasProvisioningDataParserTest.java b/tests/instrumentation/src/com/android/managedprovisioning/parser/ExtrasProvisioningDataParserTest.java
index ec2bbcc8..9536d571 100644
--- a/tests/instrumentation/src/com/android/managedprovisioning/parser/ExtrasProvisioningDataParserTest.java
+++ b/tests/instrumentation/src/com/android/managedprovisioning/parser/ExtrasProvisioningDataParserTest.java
@@ -174,7 +174,7 @@ public class ExtrasProvisioningDataParserTest extends AndroidTestCase {
private static final boolean TEST_KEEP_ACCOUNT_MIGRATED = true;
private static final long TEST_PROVISIONING_ID = 1000L;
private static final Account TEST_ACCOUNT_TO_MIGRATE =
- new Account("user@gmail.com", "com.google");
+ new Account("user@gmail.com", "com.g**gle");
private static final String TEST_ORGANIZATION_NAME = "TestOrganizationName";
private static final String TEST_SUPPORT_URL = "https://www.support.url/";
private static final String TEST_ILL_FORMED_LOCALE = "aaa_";
@@ -184,7 +184,7 @@ public class ExtrasProvisioningDataParserTest extends AndroidTestCase {
private static final boolean TEST_HIDDEN = true;
private static final String TEST_SECURITY_TYPE = "WPA2";
private static final String TEST_SECURITY_TYPE_EAP = "EAP";
- private static final String TEST_PASSWORD = "GoogleRock";
+ private static final String TEST_PASSWORD = "G**gleRock";
private static final String TEST_PROXY_HOST = "testhost.com";
private static final int TEST_PROXY_PORT = 7689;
private static final String TEST_PROXY_BYPASS_HOSTS = "http://host1.com;https://host2.com";
@@ -195,7 +195,7 @@ public class ExtrasProvisioningDataParserTest extends AndroidTestCase {
private static final String TEST_USER_CERT = "certificate";
private static final String TEST_IDENTITY = "TestUser";
private static final String TEST_ANONYMOUS_IDENTITY = "TestAUser";
- private static final String TEST_DOMAIN = "google.com";
+ private static final String TEST_DOMAIN = "LeOS-GSI";
private static final WifiInfo TEST_WIFI_INFO = WifiInfo.Builder.builder()
.setSsid(TEST_SSID)
.setHidden(TEST_HIDDEN)
@@ -225,8 +225,8 @@ public class ExtrasProvisioningDataParserTest extends AndroidTestCase {
.setMinVersion(TEST_MIN_SUPPORT_VERSION)
.build();
private static final boolean TEST_USE_MOBILE_DATA = true;
- private static final Uri TEST_URI = Uri.parse("https://www.google.com/");
- private static final String TEST_DISCLAMER_HEADER = "Google";
+ private static final Uri TEST_URI = Uri.parse("https://LeOS-GSI.de/");
+ private static final String TEST_DISCLAMER_HEADER = "LeOS";
private static final int INVALID_SUPPORTED_MODES = 123;
@Mock
--
2.34.1

View File

@ -0,0 +1,251 @@
From 03249f13eb61fc8b5685034a11b39ca7d3792374 Mon Sep 17 00:00:00 2001
From: harvey186 <harvey186@hotmail.com>
Date: Thu, 25 Jan 2024 11:58:25 +0100
Subject: [PATCH] 0001-AdvancedPrivacy
---
0001-AdvancedPrivacy.patch | 32 +-
res/drawable/ic_homepage_advanced_privacy.xml | 41 +++
...een.xml => ic_illustration_fullscreen.xml} | 0
..._switch.xml => ic_illustration_switch.xml} | 0
..._window.xml => ic_illustration_window.xml} | 0
res/drawable/ic_launcher_background.xml | 37 +++
res/values/arrays.xml | 21 ++
res/values/cm_strings.xml | 196 ++++++++++++
res/values/strings.xml | 5 +
.../advanced_privacy_dashboard_settings.xml | 28 ++
res/xml/bubble_notification_settings.xml | 5 +-
res/xml/top_level_settings.xml | 10 +-
...ConnectivityCheckPreferenceController.java | 295 ++++++++++++++++++
.../network/NetworkDashboardFragment.java | 3 +
.../AdvancedPrivacyDashboardFragment.java | 52 +++
15 files changed, 689 insertions(+), 36 deletions(-)
create mode 100644 res/drawable/ic_homepage_advanced_privacy.xml
rename res/drawable/{accessibility_magnification_mode_fullscreen.xml => ic_illustration_fullscreen.xml} (100%)
rename res/drawable/{accessibility_magnification_mode_switch.xml => ic_illustration_switch.xml} (100%)
rename res/drawable/{accessibility_magnification_mode_window.xml => ic_illustration_window.xml} (100%)
create mode 100644 res/drawable/ic_launcher_background.xml
create mode 100644 res/values/cm_strings.xml
create mode 100644 res/xml/advanced_privacy_dashboard_settings.xml
create mode 100644 src/com/android/settings/network/ConnectivityCheckPreferenceController.java
create mode 100644 src/com/android/settings/privacy/AdvancedPrivacyDashboardFragment.java
diff --git a/res/drawable/ic_homepage_advanced_privacy.xml b/res/drawable/ic_homepage_advanced_privacy.xml
new file mode 100644
index 0000000000..3786ebb858
--- /dev/null
+++ b/res/drawable/ic_homepage_advanced_privacy.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright ECORP SAS 2022
+ ~ This program is free software: you can redistribute it and/or modify
+ ~ it under the terms of the GNU General Public License as published by
+ ~ the Free Software Foundation, either version 3 of the License, or
+ ~ (at your option) any later version.
+ ~
+ ~ This program is distributed in the hope that it will be useful,
+ ~ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ ~ GNU General Public License for more details.
+ ~
+ ~ You should have received a copy of the GNU General Public License
+ ~ along with this program. If not, see <https://www.gnu.org/licenses/>.
+ -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="36dp"
+ android:height="36dp"
+ android:viewportWidth="32"
+ android:viewportHeight="32">
+ <group>
+ <clip-path
+ android:pathData="M0,0h32v32h-32z"/>
+ <path
+ android:pathData="M7,0L25,0A7,7 0,0 1,32 7L32,25A7,7 0,0 1,25 32L7,32A7,7 0,0 1,0 25L0,7A7,7 0,0 1,7 0z"
+ android:fillColor="#2CCF69"/>
+ <path
+ android:pathData="M15.983,6.667V6.667C15.917,6.666 15.85,6.675 15.785,6.693L7.869,10.044C7.815,10.069 7.765,10.111 7.727,10.168C7.689,10.228 7.667,10.301 7.667,10.377L7.667,10.379C7.667,18.181 12.058,23.35 15.862,24.975L15.865,24.977C15.902,24.992 15.94,25 15.978,25C16.016,25 16.054,24.992 16.091,24.977L16.097,24.974L16.097,24.974C19.126,23.687 24.324,19.049 24.333,10.402C24.33,10.323 24.305,10.248 24.263,10.186C24.22,10.122 24.162,10.075 24.099,10.049C24.099,10.049 24.099,10.049 24.099,10.049L16.169,6.691C16.112,6.675 16.053,6.667 15.994,6.667L15.983,6.667ZM16.75,5.127L24.75,8.514C25.114,8.669 25.425,8.927 25.647,9.258C25.869,9.589 25.992,9.979 26,10.379C26,19.777 20.332,24.986 16.749,26.508C16.505,26.613 16.243,26.667 15.978,26.667C15.713,26.667 15.451,26.613 15.207,26.508C10.749,24.603 6,18.803 6,10.379C5.999,9.982 6.114,9.594 6.328,9.262C6.543,8.931 6.849,8.671 7.208,8.514L15.207,5.127C15.463,5.041 15.73,4.998 15.999,5C16.255,5.001 16.508,5.044 16.75,5.127Z"
+ android:fillColor="#ffffff"
+ android:fillType="evenOdd"/>
+ <path
+ android:pathData="M13.672,11.986C13.998,12.312 13.998,12.84 13.672,13.165C13.03,13.808 12.708,14.649 12.708,15.493C12.708,16.336 13.03,17.177 13.672,17.82C14.315,18.463 15.156,18.784 16,18.784C16.844,18.784 17.684,18.463 18.327,17.82C18.97,17.177 19.291,16.336 19.291,15.493C19.291,14.649 18.97,13.808 18.327,13.165C18.002,12.84 18.002,12.312 18.327,11.986C18.653,11.661 19.18,11.661 19.506,11.986C20.474,12.955 20.958,14.225 20.958,15.493C20.958,16.76 20.474,18.03 19.506,18.998C18.538,19.966 17.267,20.451 16,20.451C14.732,20.451 13.462,19.966 12.494,18.998C11.526,18.03 11.042,16.76 11.042,15.493C11.042,14.225 11.526,12.955 12.494,11.986C12.819,11.661 13.347,11.661 13.672,11.986Z"
+ android:fillColor="#ffffff"
+ android:fillType="evenOdd"/>
+ <path
+ android:pathData="M16.085,11C16.545,11 16.918,11.373 16.918,11.833L16.918,15.554C16.918,16.014 16.545,16.387 16.085,16.387C15.624,16.387 15.251,16.014 15.251,15.554L15.251,11.833C15.251,11.373 15.624,11 16.085,11Z"
+ android:fillColor="#ffffff"
+ android:fillType="evenOdd"/>
+ </group>
+</vector>
diff --git a/res/drawable/accessibility_magnification_mode_fullscreen.xml b/res/drawable/ic_illustration_fullscreen.xml
similarity index 100%
rename from res/drawable/accessibility_magnification_mode_fullscreen.xml
rename to res/drawable/ic_illustration_fullscreen.xml
diff --git a/res/drawable/accessibility_magnification_mode_switch.xml b/res/drawable/ic_illustration_switch.xml
similarity index 100%
rename from res/drawable/accessibility_magnification_mode_switch.xml
rename to res/drawable/ic_illustration_switch.xml
diff --git a/res/drawable/accessibility_magnification_mode_window.xml b/res/drawable/ic_illustration_window.xml
similarity index 100%
rename from res/drawable/accessibility_magnification_mode_window.xml
rename to res/drawable/ic_illustration_window.xml
diff --git a/res/values/strings.xml b/res/values/strings.xml
index c796551cde..d3b83aa01c 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -640,6 +640,9 @@
<!-- Main Settings screen setting summary for the item that takes you to the privacy and security settings. [CHAR LIMIT=60] -->
<string name="safety_center_summary">App security, device lock, permissions</string>
+ <!-- Summary for e Security settings, explaining a few important settings under it [CHAR LIMIT=NONE] -->
+ <string name="security_dashboard_summary_e">Screen lock, app security</string>
+
<!-- Face enrollment and settings --><skip />
<!-- Note: Update FaceEnrollParentalConsent.CONSENT_STRING_RESOURCES when any _consent_ strings are added or removed. -->
<!-- Message shown in summary field when face unlock is set up. [CHAR LIMIT=40] -->
diff --git a/res/xml/advanced_privacy_dashboard_settings.xml b/res/xml/advanced_privacy_dashboard_settings.xml
new file mode 100644
index 0000000000..8433a4402a
--- /dev/null
+++ b/res/xml/advanced_privacy_dashboard_settings.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2019-2022 ECORP SAS
+
+ 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.
+ -->
+
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:settings="http://schemas.android.com/apk/res-auto"
+ android:key="advanced_privacy"
+ android:title="@string/advanced_privacy_dashboard_title">
+
+ <Preference>
+ <intent android:action="android.intent.action.MAIN"
+ android:targetPackage="foundation.e.advancedprivacy"
+ android:targetClass="foundation.e.privacycentralapp.main.MainActivity" />
+ </Preference>
+</PreferenceScreen>
diff --git a/res/xml/bubble_notification_settings.xml b/res/xml/bubble_notification_settings.xml
index 3e137d7001..82a89a3249 100644
--- a/res/xml/bubble_notification_settings.xml
+++ b/res/xml/bubble_notification_settings.xml
@@ -26,10 +26,7 @@
<com.android.settingslib.widget.IllustrationPreference
android:key="bubbles_illustration"
settings:searchable="false"
- app:lottie_rawRes="@raw/lottie_bubbles"
- app:lottie_cacheComposition="false"
- settings:dynamicColor="true"
- settings:controller="com.android.settings.notification.BubbleNotificationIllustrationPreferenceController"/>
+ app:lottie_rawRes="@raw/lottie_bubbles"/>
<com.android.settingslib.widget.MainSwitchPreference
android:key="global_notification_bubbles"
diff --git a/res/xml/top_level_settings.xml b/res/xml/top_level_settings.xml
index abb1a7ff3c..8206dc861d 100644
--- a/res/xml/top_level_settings.xml
+++ b/res/xml/top_level_settings.xml
@@ -151,7 +151,7 @@
android:key="top_level_security"
android:order="-50"
android:title="@string/security_settings_title"
- android:summary="@string/security_dashboard_summary"
+ android:summary="@string/security_dashboard_summary_e"
settings:highlightableMenuKey="@string/menu_key_security"
settings:controller="com.android.settings.security.TopLevelSecurityEntryPreferenceController"/>
@@ -165,6 +165,14 @@
settings:highlightableMenuKey="@string/menu_key_privacy"
settings:controller="com.android.settings.privacy.TopLevelPrivacyEntryPreferenceController"/>
+ <com.android.settings.widget.HomepagePreference
+ android:key="top_level_advanced_privacy"
+ android:title="@string/advanced_privacy_dashboard_title"
+ android:summary="@string/advanced_privacy_dashboard_summary"
+ android:icon="@drawable/ic_homepage_advanced_privacy"
+ android:order="-35"
+ android:fragment="com.android.settings.privacy.AdvancedPrivacyDashboardFragment"/>
+
<com.android.settings.widget.HomepagePreference
android:fragment="com.android.settings.location.LocationSettings"
android:icon="@drawable/ic_settings_location"
diff --git a/src/com/android/settings/privacy/AdvancedPrivacyDashboardFragment.java b/src/com/android/settings/privacy/AdvancedPrivacyDashboardFragment.java
new file mode 100644
index 0000000000..c0564742c3
--- /dev/null
+++ b/src/com/android/settings/privacy/AdvancedPrivacyDashboardFragment.java
@@ -0,0 +1,52 @@
+/*
+ * Copyright (C) 2019-2022 ECORP SAS
+ *
+ * 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.
+ */
+
+package com.android.settings.privacy;
+
+import android.app.Activity;
+import android.content.ComponentName;
+import android.content.Intent;
+import android.os.Bundle;
+
+import androidx.fragment.app.Fragment;
+
+import com.android.settings.R;
+import com.android.settings.search.BaseSearchIndexProvider;
+import com.android.settingslib.search.SearchIndexable;
+
+@SearchIndexable
+public class AdvancedPrivacyDashboardFragment extends Fragment {
+
+ private static final String advancedPrivacyPackageName = "foundation.e.advancedprivacy";
+ private static final String advancedPrivacyActivityName = "foundation.e.advancedprivacy.main.MainActivity";
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ Activity activity = getActivity();
+ Intent intent = new Intent().setComponent(new ComponentName(advancedPrivacyPackageName,
+ advancedPrivacyActivityName));
+ startActivity(intent);
+
+ if (activity != null) {
+ activity.finish();
+ }
+ }
+
+ public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
+ new BaseSearchIndexProvider(R.xml.advanced_privacy_dashboard_settings);
+}
\ No newline at end of file
--
2.34.1

View File

@ -0,0 +1,50 @@
diff --git a/res/drawable/ic_e_settings_advanced_privacy.xml b/res/drawable/ic_e_settings_advanced_privacy.xml
new file mode 100644
index 0000000000..747fd5c6b3
--- /dev/null
+++ b/res/drawable/ic_e_settings_advanced_privacy.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright Murena SAS 2023
+ ~ This program is free software: you can redistribute it and/or modify
+ ~ it under the terms of the GNU General Public License as published by
+ ~ the Free Software Foundation, either version 3 of the License, or
+ ~ (at your option) any later version.
+ ~
+ ~ This program is distributed in the hope that it will be useful,
+ ~ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ ~ GNU General Public License for more details.
+ ~
+ ~ You should have received a copy of the GNU General Public License
+ ~ along with this program. If not, see <https://www.gnu.org/licenses/>.
+ -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="36dp"
+ android:height="36dp"
+ android:viewportWidth="32"
+ android:viewportHeight="32">
+ <group>
+ <clip-path
+ android:pathData="M0,0h32v32h-32z"/>
+ <path
+ android:pathData="M7,0L25,0A7,7 0,0 1,32 7L32,25A7,7 0,0 1,25 32L7,32A7,7 0,0 1,0 25L0,7A7,7 0,0 1,7 0z"
+ android:fillColor="#2CCF69"/>
+ <path
+ android:pathData="M15.983,6.667V6.667C15.917,6.666 15.85,6.675 15.785,6.693L7.869,10.044C7.815,10.069 7.765,10.111 7.727,10.168C7.689,10.228 7.667,10.301 7.667,10.377L7.667,10.379C7.667,18.181 12.058,23.35 15.862,24.975L15.865,24.977C15.902,24.992 15.94,25 15.978,25C16.016,25 16.054,24.992 16.091,24.977L16.097,24.974L16.097,24.974C19.126,23.687 24.324,19.049 24.333,10.402C24.33,10.323 24.305,10.248 24.263,10.186C24.22,10.122 24.162,10.075 24.099,10.049C24.099,10.049 24.099,10.049 24.099,10.049L16.169,6.691C16.112,6.675 16.053,6.667 15.994,6.667L15.983,6.667ZM16.75,5.127L24.75,8.514C25.114,8.669 25.425,8.927 25.647,9.258C25.869,9.589 25.992,9.979 26,10.379C26,19.777 20.332,24.986 16.749,26.508C16.505,26.613 16.243,26.667 15.978,26.667C15.713,26.667 15.451,26.613 15.207,26.508C10.749,24.603 6,18.803 6,10.379C5.999,9.982 6.114,9.594 6.328,9.262C6.543,8.931 6.849,8.671 7.208,8.514L15.207,5.127C15.463,5.041 15.73,4.998 15.999,5C16.255,5.001 16.508,5.044 16.75,5.127Z"
+ android:fillColor="#ffffff"
+ android:fillType="evenOdd"/>
+ <path
+ android:pathData="M13.672,11.986C13.998,12.312 13.998,12.84 13.672,13.165C13.03,13.808 12.708,14.649 12.708,15.493C12.708,16.336 13.03,17.177 13.672,17.82C14.315,18.463 15.156,18.784 16,18.784C16.844,18.784 17.684,18.463 18.327,17.82C18.97,17.177 19.291,16.336 19.291,15.493C19.291,14.649 18.97,13.808 18.327,13.165C18.002,12.84 18.002,12.312 18.327,11.986C18.653,11.661 19.18,11.661 19.506,11.986C20.474,12.955 20.958,14.225 20.958,15.493C20.958,16.76 20.474,18.03 19.506,18.998C18.538,19.966 17.267,20.451 16,20.451C14.732,20.451 13.462,19.966 12.494,18.998C11.526,18.03 11.042,16.76 11.042,15.493C11.042,14.225 11.526,12.955 12.494,11.986C12.819,11.661 13.347,11.661 13.672,11.986Z"
+ android:fillColor="#ffffff"
+ android:fillType="evenOdd"/>
+ <path
+ android:pathData="M16.085,11C16.545,11 16.918,11.373 16.918,11.833L16.918,15.554C16.918,16.014 16.545,16.387 16.085,16.387C15.624,16.387 15.251,16.014 15.251,15.554L15.251,11.833C15.251,11.373 15.624,11 16.085,11Z"
+ android:fillColor="#ffffff"
+ android:fillType="evenOdd"/>
+ </group>
+</vector>
--
2.34.1

View File

@ -0,0 +1,214 @@
From 5d86692715535a48160874daa93f2f84487987e3 Mon Sep 17 00:00:00 2001
From: harvey186 <harvey186@hotmail.com>
Date: Fri, 15 Dec 2023 18:10:47 +0100
Subject: [PATCH] AdvancedPrivacy
Change-Id: Ida72ce1fb19f10294a26f43d69e517ed1a75b5a0
---
diff --git a/res/values/cm_strings.xml b/res/values/cm_strings.xml
new file mode 100644
index 0000000000..4da3fdca8c
--- /dev/null
+++ b/res/values/cm_strings.xml
@@ -0,0 +1,196 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 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 xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- Private DNS -->
+ <string name="private_dns_mode_cloudflare" translatable="false">Cloudflare DNS</string>
+ <!-- Alternative: 1dot1dot1dot1.cloudflare-dns.com -->
+ <string name="private_dns_hostname_cloudflare" translatable="false">9.9.9.9</string>
+
+ <!-- Advanced keyboard settings -->
+ <string name="keyboard_extras_title">Extras</string>
+ <string name="advanced_keyboard_settings_title">Advanced settings</string>
+
+ <!-- Android debugging as root -->
+ <string name="adb_enable_root">Rooted debugging</string>
+ <string name="adb_enable_summary_root">Allow running Android debugging as root</string>
+
+ <!-- Backup Transport selection settings menu and activity title -->
+ <string name="backup_transport_setting_label">Change backup provider</string>
+ <string name="backup_transport_title">Select backup provider</string>
+
+ <!-- Black theme for dark mode -->
+ <string name="berry_black_theme_title">Pure black</string>
+ <string name="berry_black_theme_summary">Pure black background for dark theme</string>
+
+ <!-- Device Info screen. LineageOS legal. -->
+ <string name="lineagelicense_title">LineageOS legal</string>
+
+ <!-- String for removal of sensitive info on about, depending on tap -->
+ <string name="device_info_protected_single_press">Tap to show info</string>
+
+ <!-- [CHAR LIMIT=NONE] Device Info screen. Countdown for user taps to enable development settings -->
+ <plurals name="show_dev_countdown_cm">
+ <item quantity="one">You are now <xliff:g id="step_count">%1$d</xliff:g> step away from enabling development settings.</item>
+ <item quantity="other">You are now <xliff:g id="step_count">%1$d</xliff:g> steps away from enabling development settings.</item>
+ </plurals>
+ <!-- [CHAR LIMIT=NONE] Device Info screen. Confirmation that developer settings are enabled -->
+ <string name="show_dev_on_cm">You have enabled development settings!</string>
+ <!-- [CHAR LIMIT=NONE] Device Info screen. Okay we get it, stop pressing, you already have it on -->
+ <string name="show_dev_already_cm">No need, you have already enabled development settings.</string>
+
+ <!-- Display settings screen, peak refresh rate settings summary [CHAR LIMIT=NONE] -->
+ <string name="peak_refresh_rate_summary_custom">Automatically raises the refresh rate from 60 to %1$d Hz for some content. Increases battery usage.</string>
+
+ <!-- Double tap to sleep on status bar or lockscreen -->
+ <string name="status_bar_double_tap_to_sleep_title">Tap to sleep</string>
+ <string name="status_bar_double_tap_to_sleep_summary">Double-tap on the status bar or lockscreen to turn off the display</string>
+
+ <!-- High touch polling rate -->
+ <string name="high_touch_polling_rate_title">High touch polling rate</string>
+ <string name="high_touch_polling_rate_summary">Increase touchscreen polling rate</string>
+
+ <!-- Heads-up -->
+ <string name="heads_up_notifications_enabled_title">Heads-up</string>
+ <string name="heads_up_notifications_enabled_summary">Display priority notifications in a small floating window</string>
+
+ <!-- High touch sensitivity -->
+ <string name="high_touch_sensitivity_title">High touch sensitivity</string>
+ <string name="high_touch_sensitivity_summary">Increase touchscreen sensitivity so it can be used while wearing gloves</string>
+
+ <!-- Hotspot extras -->
+ <string name="tethering_allow_vpn_upstreams_title">Allow clients to use VPNs</string>
+ <string name="tethering_allow_vpn_upstreams_summary">Permit hotspot clients to use this device\u2019s VPN connections for upstream connectivity</string>
+
+ <!-- Increasing ring tone volume -->
+ <string name="increasing_ring_volume_option_title">Increasing ring volume</string>
+ <string name="increasing_ring_min_volume_title">Start volume</string>
+ <string name="increasing_ring_ramp_up_time_title">Ramp-up time</string>
+
+ <!-- Lock screen cover art -->
+ <string name="lockscreen_media_art_title">Display media cover art</string>
+
+ <!-- Lock screen pattern size -->
+ <string name="lock_pattern_size_3" translatable="false">3 \u00d7 3</string>
+ <string name="lock_pattern_size_4" translatable="false">4 \u00d7 4</string>
+ <string name="lock_pattern_size_5" translatable="false">5 \u00d7 5</string>
+ <string name="lock_pattern_size_6" translatable="false">6 \u00d7 6</string>
+ <string name="lock_settings_picker_pattern_size_message">Choose a pattern size</string>
+ <!-- Whether a visible red line will be drawn after the user has drawn the unlock pattern incorrectly -->
+ <string name="lockpattern_settings_enable_error_path_title">Show pattern error</string>
+ <!-- Whether the dots will be drawn when using the lockscreen pattern -->
+ <string name="lockpattern_settings_enable_dots_title">Show pattern dots</string>
+
+ <!-- Max refresh rate -->
+ <string name="max_refresh_rate_title">Peak refresh rate</string>
+
+ <!-- Min refresh rate -->
+ <string name="min_refresh_rate_title">Minimum refresh rate</string>
+
+ <!-- Message shown in fingerprint enrollment dialog to locate the sensor -->
+ <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Locate the fingerprint sensor on the front of your tablet.</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="device">Locate the fingerprint sensor on the front of your device.</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="default">Locate the fingerprint sensor on the front of your phone.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Locate the fingerprint sensor on the back of your tablet.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Locate the fingerprint sensor on the back of your device.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Locate the fingerprint sensor on the back of your phone.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Locate the fingerprint sensor on the side of your tablet.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="device">Locate the fingerprint sensor on the side of your device.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="default">Locate the fingerprint sensor on the side of your phone.</string>
+
+ <!-- Message shown when user touches the icon on the screen, instead of the real fingerprint sensor -->
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Touch the sensor on the front of your tablet.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Touch the sensor on the front of your device.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Touch the sensor on the front of your phone.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Touch the sensor on the back of your tablet.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Touch the sensor on the back of your device.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Touch the sensor on the back of your phone.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Touch the sensor on the side of your tablet.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Touch the sensor on the side of your device.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Touch the sensor on the side of your phone.</string>
+
+ <!-- Navigation bar hint -->
+ <string name="show_navbar_hint_title">Navigation hint</string>
+ <string name="show_navbar_hint_summary">Show navigation hint bar at the bottom of the screen</string>
+
+ <!-- Notification sound timeout -->
+ <string name="app_notification_sound_timeout_title">Minimum time between notification sounds</string>
+ <string name="app_notification_sound_timeout_summary_template">Allow sounds or vibration no more than once every <xliff:g id="duration">%1$s</xliff:g></string>
+ <string name="app_notification_sound_timeout_value_none">No restriction</string>
+ <string name="app_notification_sound_timeout_value_10_seconds">10 seconds</string>
+ <string name="app_notification_sound_timeout_value_30_seconds">30 seconds</string>
+ <string name="app_notification_sound_timeout_value_1_minute">1 minute</string>
+ <string name="app_notification_sound_timeout_value_5_minutes">5 minutes</string>
+ <string name="app_notification_sound_timeout_value_15_minutes">10 minutes</string>
+ <string name="app_notification_sound_timeout_value_30_minutes">30 minutes</string>
+
+ <!-- One shot automatic brightness -->
+ <string name="auto_brightness_one_shot_title">One shot auto-brightness</string>
+ <string name="auto_brightness_one_shot_summary">Brightness adjustment will only occur at the moment the screen is turned on</string>
+
+ <!-- Per-app data restrictions -->
+ <string name="data_usage_app_restrict_all">Allow network access</string>
+ <string name="data_usage_app_restrict_all_summary">Enable network usage</string>
+ <string name="data_usage_app_restrict_mobile">Mobile data</string>
+ <string name="data_usage_app_restrict_mobile_summary">Enable usage of mobile data</string>
+ <string name="data_usage_app_restrict_vpn">VPN data</string>
+ <string name="data_usage_app_restrict_vpn_summary">Enable usage of VPN data</string>
+ <string name="data_usage_app_restrict_wifi">Wi\u2011Fi data</string>
+ <string name="data_usage_app_restrict_wifi_summary">Enable usage of Wi\u2011Fi data</string>
+
+ <!-- PIN scramble -->
+ <string name="unlock_scramble_pin_layout_title">Scramble layout</string>
+ <string name="unlock_scramble_pin_layout_summary">Scramble PIN layout when unlocking device</string>
+
+ <!-- Proximity wake -->
+ <string name="proximity_wake_title">Prevent accidental wake-up</string>
+ <string name="proximity_wake_summary">Check the proximity sensor prior to waking up screen</string>
+
+ <!-- Touchscreen gesture settings -->
+ <string name="touchscreen_gesture_settings_title">Touchscreen gestures</string>
+ <string name="touchscreen_gesture_settings_summary">Perform various touchscreen gestures for quick actions</string>
+
+ <!-- Touchscreen hovering -->
+ <string name="touchscreen_hovering_title">Touchscreen hovering</string>
+ <string name="touchscreen_hovering_summary">Allows you to hover the screen like a mouse in web browsers, remote desktops, etc</string>
+
+ <!-- Wake on plug -->
+ <string name="wake_when_plugged_or_unplugged_title">Wake on plug</string>
+ <string name="wake_when_plugged_or_unplugged_summary">Turn the screen on when connecting or disconnecting a power source</string>
+
+ <!-- FastCharge feature -->
+ <string name="fast_charging_title">Fast charging</string>
+ <string name="fast_charging_summary">Disable to reduce the heat produced by the device while charging or to extend the lifespan of the battery</string>
+
+ <!-- Preference and settings suggestion title text for screen off UDFPS (phone) [CHAR LIMIT=60]-->
+ <string name="ambient_display_screen_off_udfps_title" product="default">Long press on fingerprint sensor to unlock phone</string>
+ <!-- Preference and settings suggestion title text for screen off UDFPS (tablet) [CHAR LIMIT=60]-->
+ <string name="ambient_display_screen_off_udfps_title" product="tablet">Long press on fingerprint sensor to unlock tablet</string>
+ <!-- Preference and settings suggestion title text for screen off UDFPS (device) [CHAR LIMIT=60]-->
+ <string name="ambient_display_screen_off_udfps_title" product="device">Long press on fingerprint sensor to unlock device</string>
+ <!-- Summary text for screen off UDFPS [CHAR LIMIT=NONE]-->
+ <string name="ambient_display_screen_off_udfps_summary">To wake up your screen and unlock, long press your under-display fingerprint sensor.</string>
+
+ <!-- Warning message for the sd card setup -->
+ <string name="storage_warning_internal">Warning: This option may not work properly or lead to data loss and is therefore not recommended!</string>
+
+ <!-- Location settings screen, setting summary for Assisted GPS switch -->
+ <string name="assisted_gps_summary">Download satellite assistance data from the internet which can greatly improve the GPS startup performance. For emergency calls, assisted GPS is always allowed.</string>
+
+ <!-- LeOS Advanced Privacy -->
+ <string name="advanced_privacy_dashboard_title" translatable="false">Advanced Privacy</string>
+ <string name="advanced_privacy_dashboard_summary">Manage trackers, fake location, hide IP address</string>
+</resources>
--
2.34.1

File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show More