diff --git a/Misc/Features/GrapheneOS.txt b/Misc/Features/GrapheneOS.txt index 28341557..4a117c52 100644 --- a/Misc/Features/GrapheneOS.txt +++ b/Misc/Features/GrapheneOS.txt @@ -31,9 +31,6 @@ power animation 12 https://github.com/GrapheneOS/platform_frameworks_base/commit/ee97a8e97ac6feedb9acdec1945cc943b7477b2f 12 https://github.com/GrapheneOS/platform_frameworks_base/commit/bd956da828fe5ffce6daf5b30fce7b942cfa6794 -preferred network mode -11 https://github.com/GrapheneOS/platform_packages_apps_Settings/commit/286910c6cbc8c77153e7e230a4d02bea745ea571 - nojit 11 https://github.com/GrapheneOS/platform_build/commit/8c9183f29406a93cb596ebd76ca27eb8c5f8bbe8 11 https://github.com/GrapheneOS/platform_build/commit/904c1e837a2dd9b251d57c2e064186d5af047df0 @@ -59,6 +56,15 @@ nojit 9 https://github.com/GrapheneOS/platform_build/commit/5b9927197e63593b9220d1a9280021252ef205e9 9 https://github.com/GrapheneOS/platform_build/commit/e36c7aefaa78a1ed5b94c7f51d29277008eea232 +[implemented] lte only mode +13 https://github.com/GrapheneOS/platform_packages_apps_Settings/commit/b215ac3cd5e5062113f7b6f98825c524ed01d63d +13 https://github.com/GrapheneOS/platform_packages_apps_Settings/commit/039ea5640897b7a95999010c9e0f025f1c1e66e7 +12 https://github.com/GrapheneOS/platform_packages_apps_Settings/commit/0127308111212d1837c5c3ce3402fde414400c56 +11 https://github.com/GrapheneOS/platform_packages_apps_Settings/commit/6f538c804a4c3052a7d9a7cc0a1a6a1378e36b19 +11 https://github.com/GrapheneOS/platform_packages_apps_Settings/commit/286910c6cbc8c77153e7e230a4d02bea745ea571 +11 https://github.com/GrapheneOS/platform_packages_apps_Settings/commit/69c4f503dc2309786d5449fc30aaf5242b28c373 +10 https://github.com/GrapheneOS/platform_packages_apps_Settings/commit/e977bf319cf4b3af311499003d206c6527df45ab + [implemented] package leak 13 https://github.com/GrapheneOS/platform_frameworks_base/commit/28761ffa183eb719dc991a3ce9afa422fb43c16e diff --git a/Patches/LineageOS-17.1/android_packages_apps_Settings/0011-LTE_Only_Mode.patch b/Patches/LineageOS-17.1/android_packages_apps_Settings/0011-LTE_Only_Mode.patch new file mode 100644 index 00000000..4ba8b5b0 --- /dev/null +++ b/Patches/LineageOS-17.1/android_packages_apps_Settings/0011-LTE_Only_Mode.patch @@ -0,0 +1,171 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: inthewaves +Date: Thu, 27 Feb 2020 19:34:56 -0800 +Subject: [PATCH] add LTE-only option + +This mostly follows the work done in +https://github.com/AndroidHardeningArchive/platform_packages_services_Telephony/commit/7f1b1088ade90096d874e8e554f0d47b9040ed14 + +Closes https://github.com/GrapheneOS/os_issue_tracker/issues/107 +--- + res/values/arrays.xml | 14 +++++++++++++- + res/values/strings.xml | 6 ++++++ + .../EnabledNetworkModePreferenceController.java | 7 ++++++- + .../PreferredNetworkModePreferenceController.java | 2 +- + 4 files changed, 26 insertions(+), 3 deletions(-) + +diff --git a/res/values/arrays.xml b/res/values/arrays.xml +index 6d95bcc58b..072004e447 100644 +--- a/res/values/arrays.xml ++++ b/res/values/arrays.xml +@@ -1301,16 +1301,19 @@ + + + ++ @string/network_lte_only + @string/network_lte + @string/network_3G + @string/network_2G + + ++ @string/network_4G_only + @string/network_4G + @string/network_3G + @string/network_2G + + ++ "11" + "9" + "0" + "1" +@@ -1346,7 +1349,7 @@ + CDMA + LTE/EvDo + GSM/WCDMA/LTE + LTE/CDMA/EvDo/GSM/WCDMA +- LTE ++ LTE only + LTE / WCDMA + TDSCDMA only + TDSCDMA/WCDMA +@@ -1421,14 +1424,17 @@ + + + ++ @string/network_lte_only + @string/network_lte + @string/network_3G + + ++ @string/network_4G_only + @string/network_4G + @string/network_3G + + ++ "11" + "9" + "0" + +@@ -1450,12 +1456,14 @@ + + + ++ @string/network_lte_only + @string/network_lte + @string/network_3G + @string/network_1x + @string/network_global + + ++ "11" + "8" + "4" + "5" +@@ -1472,20 +1480,24 @@ + + + ++ @string/network_lte_only + @string/network_lte + @string/network_global + + ++ "11" + "8" + "10" + + + ++ @string/network_lte_only + @string/network_lte + @string/network_3G + @string/network_2G + + ++ "11" + "22" + "18" + "1" +diff --git a/res/values/strings.xml b/res/values/strings.xml +index 197882d66e..88bd100122 100644 +--- a/res/values/strings.xml ++++ b/res/values/strings.xml +@@ -10942,6 +10942,8 @@ + Preferred network mode: CDMA/EvDo/GSM/WCDMA + + Preferred network mode: LTE ++ ++ Preferred network mode: LTE only + + Preferred network mode: GSM/WCDMA/LTE + +@@ -11009,8 +11011,12 @@ + 4G + + LTE (recommended) ++ ++ LTE only + + 4G (recommended) ++ ++ 4G only + + 3G + +diff --git a/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java b/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java +index b9be4c2f10..d577f9ac55 100644 +--- a/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java ++++ b/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java +@@ -438,7 +438,6 @@ public class EnabledNetworkModePreferenceController extends + R.string.preferred_network_mode_lte_gsm_umts_summary); + break; + } +- case TelephonyManager.NETWORK_MODE_LTE_ONLY: + case TelephonyManager.NETWORK_MODE_LTE_WCDMA: + if (!mIsGlobalCdma) { + preference.setValue( +@@ -452,6 +451,12 @@ public class EnabledNetworkModePreferenceController extends + preference.setSummary(R.string.network_global); + } + break; ++ case TelephonyManager.NETWORK_MODE_LTE_ONLY: ++ preference.setValue( ++ Integer.toString(TelephonyManager.NETWORK_MODE_LTE_ONLY)); ++ preference.setSummary( ++ mShow4GForLTE ? R.string.network_4G_only : R.string.network_lte_only); ++ break; + case TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO: + if (MobileNetworkUtils.isWorldMode(mContext, mSubId)) { + preference.setSummary( +diff --git a/src/com/android/settings/network/telephony/PreferredNetworkModePreferenceController.java b/src/com/android/settings/network/telephony/PreferredNetworkModePreferenceController.java +index 965fc729d3..3a7261b5b8 100644 +--- a/src/com/android/settings/network/telephony/PreferredNetworkModePreferenceController.java ++++ b/src/com/android/settings/network/telephony/PreferredNetworkModePreferenceController.java +@@ -143,7 +143,7 @@ public class PreferredNetworkModePreferenceController extends TelephonyBasePrefe + case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA: + return R.string.preferred_network_mode_lte_tdscdma_summary; + case TelephonyManager.NETWORK_MODE_LTE_ONLY: +- return R.string.preferred_network_mode_lte_summary; ++ return R.string.preferred_network_mode_lte_only_summary; + case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_GSM: + return R.string.preferred_network_mode_lte_tdscdma_gsm_summary; + case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_GSM_WCDMA: diff --git a/Patches/LineageOS-18.1/android_packages_apps_Settings/0013-LTE_Only_Mode-1.patch b/Patches/LineageOS-18.1/android_packages_apps_Settings/0013-LTE_Only_Mode-1.patch new file mode 100644 index 00000000..5b575618 --- /dev/null +++ b/Patches/LineageOS-18.1/android_packages_apps_Settings/0013-LTE_Only_Mode-1.patch @@ -0,0 +1,177 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: inthewaves +Date: Thu, 27 Feb 2020 19:34:56 -0800 +Subject: [PATCH 1/3] add LTE only setting + +--- + res/values/arrays.xml | 5 +++- + res/values/strings.xml | 6 ++++ + ...nabledNetworkModePreferenceController.java | 29 ++++++++++++++++++- + ...ferredNetworkModePreferenceController.java | 2 +- + 4 files changed, 39 insertions(+), 3 deletions(-) + +diff --git a/res/values/arrays.xml b/res/values/arrays.xml +index e93794e955..af140191ee 100644 +--- a/res/values/arrays.xml ++++ b/res/values/arrays.xml +@@ -1393,6 +1393,9 @@ + 4 + + ++ + + @string/network_lte + @string/network_3G +@@ -1482,7 +1485,7 @@ + CDMA + LTE/EvDo + GSM/WCDMA/LTE + LTE/CDMA/EvDo/GSM/WCDMA +- LTE ++ LTE only + LTE / WCDMA + TDSCDMA only + TDSCDMA/WCDMA +diff --git a/res/values/strings.xml b/res/values/strings.xml +index b04499511b..53834ef17a 100644 +--- a/res/values/strings.xml ++++ b/res/values/strings.xml +@@ -11593,6 +11593,8 @@ + Preferred network mode: CDMA/EvDo/GSM/WCDMA + + Preferred network mode: LTE ++ ++ Preferred network mode: LTE only + + Preferred network mode: GSM/WCDMA/LTE + +@@ -11660,8 +11662,12 @@ + 4G + + LTE (recommended) ++ ++ LTE only + + 4G (recommended) ++ ++ 4G only + + 3G + +diff --git a/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java b/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java +index fd585a151d..29111b89ec 100644 +--- a/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java ++++ b/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java +@@ -235,6 +235,7 @@ public class EnabledNetworkModePreferenceController extends + } + add5gEntry(addNrToLteNetworkType(entryValuesInt[0])); + addLteEntry(entryValuesInt[0]); ++ addLteOnlyEntry(); + add3gEntry(entryValuesInt[1]); + add1xEntry(entryValuesInt[2]); + addGlobalEntry(entryValuesInt[3]); +@@ -259,6 +260,7 @@ public class EnabledNetworkModePreferenceController extends + "ENABLED_NETWORKS_CDMA_ONLY_LTE_CHOICES index error."); + } + addLteEntry(entryValuesInt[0]); ++ addLteOnlyEntry(); + addGlobalEntry(entryValuesInt[1]); + break; + case ENABLED_NETWORKS_TDSCDMA_CHOICES: +@@ -271,6 +273,7 @@ public class EnabledNetworkModePreferenceController extends + } + add5gEntry(addNrToLteNetworkType(entryValuesInt[0])); + addLteEntry(entryValuesInt[0]); ++ addLteOnlyEntry(); + add3gEntry(entryValuesInt[1]); + add2gEntry(entryValuesInt[2]); + break; +@@ -294,6 +297,7 @@ public class EnabledNetworkModePreferenceController extends + } + add5gEntry(addNrToLteNetworkType(entryValuesInt[0])); + add4gEntry(entryValuesInt[0]); ++ add4gOnlyEntry(); + add3gEntry(entryValuesInt[1]); + break; + case ENABLED_NETWORKS_EXCEPT_GSM_CHOICES: +@@ -306,6 +310,7 @@ public class EnabledNetworkModePreferenceController extends + } + add5gEntry(addNrToLteNetworkType(entryValuesInt[0])); + addLteEntry(entryValuesInt[0]); ++ addLteOnlyEntry(); + add3gEntry(entryValuesInt[1]); + break; + case ENABLED_NETWORKS_EXCEPT_LTE_CHOICES: +@@ -330,6 +335,7 @@ public class EnabledNetworkModePreferenceController extends + add5gEntry(addNrToLteNetworkType( + entryValuesInt[0])); + add4gEntry(entryValuesInt[0]); ++ add4gOnlyEntry(); + add3gEntry(entryValuesInt[1]); + add2gEntry(entryValuesInt[2]); + break; +@@ -342,6 +348,7 @@ public class EnabledNetworkModePreferenceController extends + } + add5gEntry(addNrToLteNetworkType(entryValuesInt[0])); + addLteEntry(entryValuesInt[0]); ++ addLteOnlyEntry(); + add3gEntry(entryValuesInt[1]); + add2gEntry(entryValuesInt[2]); + break; +@@ -487,7 +494,6 @@ public class EnabledNetworkModePreferenceController extends + R.string.preferred_network_mode_lte_gsm_umts_summary); + break; + } +- case TelephonyManagerConstants.NETWORK_MODE_LTE_ONLY: + case TelephonyManagerConstants.NETWORK_MODE_LTE_WCDMA: + if (!mIsGlobalCdma) { + setSelectedEntry( +@@ -505,6 +511,11 @@ public class EnabledNetworkModePreferenceController extends + setSummary(R.string.network_global); + } + break; ++ case TelephonyManagerConstants.NETWORK_MODE_LTE_ONLY: ++ setSelectedEntry(TelephonyManagerConstants.NETWORK_MODE_LTE_ONLY); ++ setSummary(mShow4gForLTE ++ ? R.string.network_4G_only : R.string.network_lte_only); ++ break; + case TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO: + if (MobileNetworkUtils.isWorldMode(mContext, mSubId)) { + setSummary( +@@ -717,6 +728,22 @@ public class EnabledNetworkModePreferenceController extends + return mSupported5gRadioAccessFamily && mAllowed5gNetworkType; + } + ++ /** ++ * Add LTE only entry. ++ */ ++ private void addLteOnlyEntry() { ++ mEntries.add(mContext.getString(R.string.network_lte_only)); ++ mEntriesValue.add(TelephonyManagerConstants.NETWORK_MODE_LTE_ONLY); ++ } ++ ++ /** ++ * Add 4G only entry ++ */ ++ private void add4gOnlyEntry() { ++ mEntries.add(mContext.getString(R.string.network_4G_only)); ++ mEntriesValue.add(TelephonyManagerConstants.NETWORK_MODE_LTE_ONLY); ++ } ++ + /** + * Add LTE entry. If device supported 5G, show "LTE" instead of "LTE (recommended)". + */ +diff --git a/src/com/android/settings/network/telephony/PreferredNetworkModePreferenceController.java b/src/com/android/settings/network/telephony/PreferredNetworkModePreferenceController.java +index ff6ff596fe..2b9bc3e485 100644 +--- a/src/com/android/settings/network/telephony/PreferredNetworkModePreferenceController.java ++++ b/src/com/android/settings/network/telephony/PreferredNetworkModePreferenceController.java +@@ -136,7 +136,7 @@ public class PreferredNetworkModePreferenceController extends TelephonyBasePrefe + case TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA: + return R.string.preferred_network_mode_lte_tdscdma_summary; + case TelephonyManagerConstants.NETWORK_MODE_LTE_ONLY: +- return R.string.preferred_network_mode_lte_summary; ++ return R.string.preferred_network_mode_lte_only_summary; + case TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA_GSM: + return R.string.preferred_network_mode_lte_tdscdma_gsm_summary; + case TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA_GSM_WCDMA: diff --git a/Patches/LineageOS-18.1/android_packages_apps_Settings/0013-LTE_Only_Mode-2.patch b/Patches/LineageOS-18.1/android_packages_apps_Settings/0013-LTE_Only_Mode-2.patch new file mode 100644 index 00000000..9c528b99 --- /dev/null +++ b/Patches/LineageOS-18.1/android_packages_apps_Settings/0013-LTE_Only_Mode-2.patch @@ -0,0 +1,26 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: flawedworld +Date: Fri, 6 Aug 2021 21:23:33 +0000 +Subject: [PATCH 2/3] Show preferred network options no matter the carrier + configuration + +This ignores: +https://developer.android.com/reference/android/telephony/CarrierConfigManager#KEY_HIDE_CARRIER_NETWORK_SETTINGS_BOOL +https://developer.android.com/reference/android/telephony/CarrierConfigManager#KEY_HIDE_PREFERRED_NETWORK_TYPE_BOOL +--- + .../telephony/EnabledNetworkModePreferenceController.java | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java b/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java +index 29111b89ec..8cc81b84b0 100644 +--- a/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java ++++ b/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java +@@ -76,7 +76,7 @@ public class EnabledNetworkModePreferenceController extends + CarrierConfigManager.KEY_HIDE_CARRIER_NETWORK_SETTINGS_BOOL) + || carrierConfig.getBoolean( + CarrierConfigManager.KEY_HIDE_PREFERRED_NETWORK_TYPE_BOOL)) { +- visible = false; ++ visible = true; + } else if (carrierConfig.getBoolean(CarrierConfigManager.KEY_WORLD_PHONE_BOOL)) { + visible = false; + } else { diff --git a/Patches/LineageOS-18.1/android_packages_apps_Settings/0013-LTE_Only_Mode-3.patch b/Patches/LineageOS-18.1/android_packages_apps_Settings/0013-LTE_Only_Mode-3.patch new file mode 100644 index 00000000..5353a583 --- /dev/null +++ b/Patches/LineageOS-18.1/android_packages_apps_Settings/0013-LTE_Only_Mode-3.patch @@ -0,0 +1,21 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: flawedworld +Date: Tue, 17 Aug 2021 22:41:26 +0000 +Subject: [PATCH 3/3] Add LTE only entry when carrier enables world mode. + +--- + .../telephony/EnabledNetworkModePreferenceController.java | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java b/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java +index 8cc81b84b0..8bad6daf2b 100644 +--- a/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java ++++ b/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java +@@ -360,6 +360,7 @@ public class EnabledNetworkModePreferenceController extends + throw new IllegalArgumentException( + "PREFERRED_NETWORK_MODE_CHOICES_WORLD_MODE index error."); + } ++ addLteOnlyEntry(); + addGlobalEntry(entryValuesInt[0]); + addCustomEntry(mContext.getString(R.string.network_world_mode_cdma_lte), + entryValuesInt[1]); diff --git a/Patches/LineageOS-19.1/android_packages_apps_Settings/0014-LTE_Only_Mode.patch b/Patches/LineageOS-19.1/android_packages_apps_Settings/0014-LTE_Only_Mode.patch new file mode 100644 index 00000000..a8b2da80 --- /dev/null +++ b/Patches/LineageOS-19.1/android_packages_apps_Settings/0014-LTE_Only_Mode.patch @@ -0,0 +1,195 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: inthewaves +Date: Sun, 17 Oct 2021 00:29:28 +0100 +Subject: [PATCH] add LTE only setting + +Unlike 11, enable LTE only when World mode is enabled also and ignore CarrierConfig options which essentially break the feature by hiding the preferred networks option. +--- + res/values/arrays.xml | 5 ++- + res/values/strings.xml | 6 ++++ + ...nabledNetworkModePreferenceController.java | 32 +++++++++++++++++-- + ...ferredNetworkModePreferenceController.java | 2 +- + 4 files changed, 41 insertions(+), 4 deletions(-) + +diff --git a/res/values/arrays.xml b/res/values/arrays.xml +index bb95662047..7610a6d4cc 100644 +--- a/res/values/arrays.xml ++++ b/res/values/arrays.xml +@@ -1474,6 +1474,9 @@ + 4 + + ++ + + @string/network_lte + @string/network_3G +@@ -1563,7 +1566,7 @@ + CDMA + LTE/EvDo + GSM/WCDMA/LTE + LTE/CDMA/EvDo/GSM/WCDMA +- LTE ++ LTE Only + LTE / WCDMA + TDSCDMA only + TDSCDMA/WCDMA +diff --git a/res/values/strings.xml b/res/values/strings.xml +index 58b17eeccf..98f4d1f6f4 100644 +--- a/res/values/strings.xml ++++ b/res/values/strings.xml +@@ -12631,6 +12631,8 @@ + Preferred network mode: CDMA/EvDo/GSM/WCDMA + + Preferred network mode: LTE ++ ++ Preferred network mode: LTE only + + Preferred network mode: GSM/WCDMA/LTE + +@@ -12696,8 +12698,12 @@ + 4G + + LTE (recommended) ++ ++ LTE only + + 4G (recommended) ++ ++ 4G only + + 3G + +diff --git a/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java b/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java +index 25e0ae0765..e3967dd292 100644 +--- a/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java ++++ b/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java +@@ -78,7 +78,7 @@ public class EnabledNetworkModePreferenceController extends + CarrierConfigManager.KEY_HIDE_CARRIER_NETWORK_SETTINGS_BOOL) + || carrierConfig.getBoolean( + CarrierConfigManager.KEY_HIDE_PREFERRED_NETWORK_TYPE_BOOL)) { +- visible = false; ++ visible = true; + } else if (carrierConfig.getBoolean(CarrierConfigManager.KEY_WORLD_PHONE_BOOL)) { + visible = false; + } else { +@@ -248,6 +248,7 @@ public class EnabledNetworkModePreferenceController extends + } + add5gEntry(addNrToLteNetworkType(entryValuesInt[0])); + addLteEntry(entryValuesInt[0]); ++ addLteOnlyEntry(); + add3gEntry(entryValuesInt[1]); + add1xEntry(entryValuesInt[2]); + addGlobalEntry(entryValuesInt[3]); +@@ -272,6 +273,7 @@ public class EnabledNetworkModePreferenceController extends + "ENABLED_NETWORKS_CDMA_ONLY_LTE_CHOICES index error."); + } + addLteEntry(entryValuesInt[0]); ++ addLteOnlyEntry(); + addGlobalEntry(entryValuesInt[1]); + break; + case ENABLED_NETWORKS_TDSCDMA_CHOICES: +@@ -284,6 +286,7 @@ public class EnabledNetworkModePreferenceController extends + } + add5gEntry(addNrToLteNetworkType(entryValuesInt[0])); + addLteEntry(entryValuesInt[0]); ++ addLteOnlyEntry(); + add3gEntry(entryValuesInt[1]); + add2gEntry(entryValuesInt[2]); + break; +@@ -307,6 +310,7 @@ public class EnabledNetworkModePreferenceController extends + } + add5gEntry(addNrToLteNetworkType(entryValuesInt[0])); + add4gEntry(entryValuesInt[0]); ++ add4gOnlyEntry(); + add3gEntry(entryValuesInt[1]); + break; + case ENABLED_NETWORKS_EXCEPT_GSM_CHOICES: +@@ -319,6 +323,7 @@ public class EnabledNetworkModePreferenceController extends + } + add5gEntry(addNrToLteNetworkType(entryValuesInt[0])); + addLteEntry(entryValuesInt[0]); ++ addLteOnlyEntry(); + add3gEntry(entryValuesInt[1]); + break; + case ENABLED_NETWORKS_EXCEPT_LTE_CHOICES: +@@ -343,6 +348,7 @@ public class EnabledNetworkModePreferenceController extends + add5gEntry(addNrToLteNetworkType( + entryValuesInt[0])); + add4gEntry(entryValuesInt[0]); ++ add4gOnlyEntry(); + add3gEntry(entryValuesInt[1]); + add2gEntry(entryValuesInt[2]); + break; +@@ -355,6 +361,7 @@ public class EnabledNetworkModePreferenceController extends + } + add5gEntry(addNrToLteNetworkType(entryValuesInt[0])); + addLteEntry(entryValuesInt[0]); ++ addLteOnlyEntry(); + add3gEntry(entryValuesInt[1]); + add2gEntry(entryValuesInt[2]); + break; +@@ -366,6 +373,7 @@ public class EnabledNetworkModePreferenceController extends + throw new IllegalArgumentException( + "PREFERRED_NETWORK_MODE_CHOICES_WORLD_MODE index error."); + } ++ addLteOnlyEntry(); + addGlobalEntry(entryValuesInt[0]); + + addCustomEntry( +@@ -505,7 +513,6 @@ public class EnabledNetworkModePreferenceController extends + R.string.preferred_network_mode_lte_gsm_umts_summary); + break; + } +- case TelephonyManagerConstants.NETWORK_MODE_LTE_ONLY: + case TelephonyManagerConstants.NETWORK_MODE_LTE_WCDMA: + if (!mIsGlobalCdma) { + setSelectedEntry( +@@ -523,6 +530,11 @@ public class EnabledNetworkModePreferenceController extends + setSummary(R.string.network_global); + } + break; ++ case TelephonyManagerConstants.NETWORK_MODE_LTE_ONLY: ++ setSelectedEntry(TelephonyManagerConstants.NETWORK_MODE_LTE_ONLY); ++ setSummary(mShow4gForLTE ++ ? R.string.network_4G_only : R.string.network_lte_only); ++ break; + case TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO: + if (MobileNetworkUtils.isWorldMode(mContext, mSubId)) { + setSummary( +@@ -732,6 +744,22 @@ public class EnabledNetworkModePreferenceController extends + return mSupported5gRadioAccessFamily && mAllowed5gNetworkType; + } + ++ /** ++ * Add LTE only entry. ++ */ ++ private void addLteOnlyEntry() { ++ mEntries.add(mContext.getString(R.string.network_lte_only)); ++ mEntriesValue.add(TelephonyManagerConstants.NETWORK_MODE_LTE_ONLY); ++ } ++ ++ /** ++ * Add 4G only entry ++ */ ++ private void add4gOnlyEntry() { ++ mEntries.add(mContext.getString(R.string.network_4G_only)); ++ mEntriesValue.add(TelephonyManagerConstants.NETWORK_MODE_LTE_ONLY); ++ } ++ + /** + * Add LTE entry. If device supported 5G, show "LTE" instead of "LTE (recommended)". + */ +diff --git a/src/com/android/settings/network/telephony/PreferredNetworkModePreferenceController.java b/src/com/android/settings/network/telephony/PreferredNetworkModePreferenceController.java +index 24197795fa..0202163bba 100644 +--- a/src/com/android/settings/network/telephony/PreferredNetworkModePreferenceController.java ++++ b/src/com/android/settings/network/telephony/PreferredNetworkModePreferenceController.java +@@ -131,7 +131,7 @@ public class PreferredNetworkModePreferenceController extends TelephonyBasePrefe + case TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA: + return R.string.preferred_network_mode_lte_tdscdma_summary; + case TelephonyManagerConstants.NETWORK_MODE_LTE_ONLY: +- return R.string.preferred_network_mode_lte_summary; ++ return R.string.preferred_network_mode_lte_only_summary; + case TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA_GSM: + return R.string.preferred_network_mode_lte_tdscdma_gsm_summary; + case TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA_GSM_WCDMA: diff --git a/Patches/LineageOS-20.0/android_build/0004-Selective_APEX.patch b/Patches/LineageOS-20.0/android_build/0004-Selective_APEX.patch new file mode 100644 index 00000000..36f9166a --- /dev/null +++ b/Patches/LineageOS-20.0/android_build/0004-Selective_APEX.patch @@ -0,0 +1,28 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: flawedworld +Date: Mon, 7 Mar 2022 01:38:23 +0000 +Subject: [PATCH] only enable APEX on 6th/7th gen Pixel devices + +Change-Id: Icffb72d8c3ed0e33e76538bb3427377c33c55ff9 +[tad@spotco.us]: adjusted for Lineage +--- + target/product/generic_system.mk | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/target/product/generic_system.mk b/target/product/generic_system.mk +index 7f5f74f4b..93e689444 100644 +--- a/target/product/generic_system.mk ++++ b/target/product/generic_system.mk +@@ -21,8 +21,10 @@ $(call inherit-product, $(SRC_TARGET_DIR)/product/languages_default.mk) + # Add adb keys to debuggable AOSP builds (if they exist) + $(call inherit-product-if-exists, vendor/google/security/adb/vendor_key.mk) + +-# Enable updating of APEXes +-$(call inherit-product, $(SRC_TARGET_DIR)/product/updatable_apex.mk) ++# Enable updating of APEXes on 6th and 7th generation Pixel devices only ++ifneq (,$(filter lineage_cheetah lineage_panther lineage_oriole lineage_raven lineage_bluejay, $(TARGET_PRODUCT))) ++ $(call inherit-product, $(SRC_TARGET_DIR)/product/updatable_apex.mk) ++endif + + # Shared java libs + PRODUCT_PACKAGES += \ diff --git a/Patches/LineageOS-20.0/android_external_hardened_malloc/0001-Broken_Cameras-2.patch b/Patches/LineageOS-20.0/android_external_hardened_malloc/0001-Broken_Cameras-2.patch index 80b1db7b..a3c4c4f7 100644 --- a/Patches/LineageOS-20.0/android_external_hardened_malloc/0001-Broken_Cameras-2.patch +++ b/Patches/LineageOS-20.0/android_external_hardened_malloc/0001-Broken_Cameras-2.patch @@ -10,7 +10,7 @@ Change-Id: I23513ec0379bbb10829f989690334e9704fd20e2 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/h_malloc.c b/h_malloc.c -index 32fb863..b8a858a 100644 +index 32fb863..3382623 100644 --- a/h_malloc.c +++ b/h_malloc.c @@ -1082,7 +1082,8 @@ COLD static void handle_bugs(void) { @@ -19,7 +19,7 @@ index 32fb863..b8a858a 100644 const char camera_provider[] = "/vendor/bin/hw/android.hardware.camera.provider@2.4-service_64"; - if (strcmp(camera_provider, path) == 0) { + // Any camera executable on system partition -+ if (strcmp(camera_provider, path) == 0 || (strstr(path, "camera") != NULL && (strncmp("/system", path, 7) == 0 || strncmp("/vendor", path, 7) == 0))) { ++ if (strcmp(camera_provider, path) == 0 || (strstr(path, "camera") != NULL && (strncmp("/system", path, 7) == 0 || strncmp("/vendor", path, 7) == 0 || strncmp("/apex", path, 5) == 0))) { ro.zero_on_free = false; ro.purge_slabs = false; ro.region_quarantine_protect = false; diff --git a/Patches/LineageOS-20.0/android_external_hardened_malloc/0002-Broken_Displays.patch b/Patches/LineageOS-20.0/android_external_hardened_malloc/0002-Broken_Displays.patch index 8d98ebfd..aa0c4e9d 100644 --- a/Patches/LineageOS-20.0/android_external_hardened_malloc/0002-Broken_Displays.patch +++ b/Patches/LineageOS-20.0/android_external_hardened_malloc/0002-Broken_Displays.patch @@ -10,7 +10,7 @@ Signed-off-by: Tad 1 file changed, 9 insertions(+) diff --git a/h_malloc.c b/h_malloc.c -index b8a858a..7bb1396 100644 +index 3382623..3b2856e 100644 --- a/h_malloc.c +++ b/h_malloc.c @@ -1088,6 +1088,15 @@ COLD static void handle_bugs(void) { diff --git a/Patches/LineageOS-20.0/android_packages_apps_Settings/0014-LTE_Only_Mode-1.patch b/Patches/LineageOS-20.0/android_packages_apps_Settings/0014-LTE_Only_Mode-1.patch new file mode 100644 index 00000000..b0c5a8ba --- /dev/null +++ b/Patches/LineageOS-20.0/android_packages_apps_Settings/0014-LTE_Only_Mode-1.patch @@ -0,0 +1,143 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Pratyush +Date: Fri, 19 Aug 2022 11:05:36 +0530 +Subject: [PATCH] LTE Only Mode + +Co-authored-by: inthewaves +--- + res/values/strings.xml | 6 +++++ + ...nabledNetworkModePreferenceController.java | 25 ++++++++++++++++++- + ...ferredNetworkModePreferenceController.java | 2 +- + 3 files changed, 31 insertions(+), 2 deletions(-) + +diff --git a/res/values/strings.xml b/res/values/strings.xml +index 858d5a6588..3ca2c3f273 100644 +--- a/res/values/strings.xml ++++ b/res/values/strings.xml +@@ -13032,6 +13032,8 @@ + Preferred network mode: CDMA/EvDo/GSM/WCDMA + + Preferred network mode: LTE ++ ++ Preferred network mode: LTE only + + Preferred network mode: GSM/WCDMA/LTE + +@@ -13097,8 +13099,12 @@ + 4G + + LTE (recommended) ++ ++ LTE only + + 4G (recommended) ++ ++ 4G only + + 3G + +diff --git a/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java b/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java +index 43b3cc0e4c..bb0fc8d307 100644 +--- a/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java ++++ b/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java +@@ -90,7 +90,7 @@ public class EnabledNetworkModePreferenceController extends + CarrierConfigManager.KEY_HIDE_CARRIER_NETWORK_SETTINGS_BOOL) + || carrierConfig.getBoolean( + CarrierConfigManager.KEY_HIDE_PREFERRED_NETWORK_TYPE_BOOL)) { +- visible = false; ++ visible = true; + } else if (carrierConfig.getBoolean(CarrierConfigManager.KEY_WORLD_PHONE_BOOL)) { + visible = false; + } else if (!isCallStateIdle()) { +@@ -237,6 +237,7 @@ public class EnabledNetworkModePreferenceController extends + } + + void setPreferenceEntries() { ++ boolean lteOnlyUnsupported = false; + mTelephonyManager = mTelephonyManager.createForSubscriptionId(mSubId); + final PersistableBundle carrierConfig = mCarrierConfigCache.getConfigForSubId(mSubId); + final boolean display2gOptions = carrierConfig +@@ -254,6 +255,7 @@ public class EnabledNetworkModePreferenceController extends + .addFormat(UiOptions.PresentFormat.addGlobalEntry); + break; + case ENABLED_NETWORKS_CDMA_NO_LTE_CHOICES: ++ lteOnlyUnsupported = true; + uiOptions = uiOptions + .setChoices(R.array.enabled_networks_cdma_no_lte_values) + .addFormat(UiOptions.PresentFormat.add3gEntry) +@@ -273,6 +275,7 @@ public class EnabledNetworkModePreferenceController extends + .addFormat(UiOptions.PresentFormat.add2gEntry); + break; + case ENABLED_NETWORKS_EXCEPT_GSM_LTE_CHOICES: ++ lteOnlyUnsupported = true; + uiOptions = uiOptions + .setChoices(R.array.enabled_networks_except_gsm_lte_values) + .addFormat(UiOptions.PresentFormat.add3gEntry); +@@ -290,6 +293,7 @@ public class EnabledNetworkModePreferenceController extends + .addFormat(UiOptions.PresentFormat.add3gEntry); + break; + case ENABLED_NETWORKS_EXCEPT_LTE_CHOICES: ++ lteOnlyUnsupported = true; + uiOptions = uiOptions + .setChoices(R.array.enabled_networks_except_lte_values) + .addFormat(UiOptions.PresentFormat.add3gEntry) +@@ -310,6 +314,7 @@ public class EnabledNetworkModePreferenceController extends + .addFormat(UiOptions.PresentFormat.add2gEntry); + break; + case PREFERRED_NETWORK_MODE_CHOICES_WORLD_MODE: ++ lteOnlyUnsupported = true; + uiOptions = uiOptions + .setChoices(R.array.preferred_network_mode_values_world_mode) + .addFormat(UiOptions.PresentFormat.addGlobalEntry) +@@ -328,6 +333,11 @@ public class EnabledNetworkModePreferenceController extends + throw new IllegalArgumentException( + uiOptions.getType().name() + " index error."); + } ++ ++ if (!lteOnlyUnsupported){ ++ addLteOnlyEntry(); ++ } ++ + // Compose options based on given values and formats. + IntStream.range(0, formatList.size()).forEach(entryIndex -> { + switch (formatList.get(entryIndex)) { +@@ -506,6 +516,9 @@ public class EnabledNetworkModePreferenceController extends + break; + } + case TelephonyManagerConstants.NETWORK_MODE_LTE_ONLY: ++ setSummary(mShow4gForLTE ++ ? R.string.network_4G_only : R.string.network_lte_only); ++ break; + case TelephonyManagerConstants.NETWORK_MODE_LTE_WCDMA: + if (!mIsGlobalCdma) { + setSelectedEntry( +@@ -771,6 +784,16 @@ public class EnabledNetworkModePreferenceController extends + mEntriesValue.add(value); + } + ++ private void addLteOnlyEntry() { ++ if (mShow4gForLTE) { ++ mEntries.add(mContext.getString(R.string.network_4G_only)); ++ mEntriesValue.add(TelephonyManagerConstants.NETWORK_MODE_LTE_ONLY); ++ } else { ++ mEntries.add(mContext.getString(R.string.network_lte_only)); ++ mEntriesValue.add(TelephonyManagerConstants.NETWORK_MODE_LTE_ONLY); ++ } ++ } ++ + private void addCustomEntry(String name, int value) { + mEntries.add(name); + mEntriesValue.add(value); +diff --git a/src/com/android/settings/network/telephony/PreferredNetworkModePreferenceController.java b/src/com/android/settings/network/telephony/PreferredNetworkModePreferenceController.java +index feeed91910..2746bbe92e 100644 +--- a/src/com/android/settings/network/telephony/PreferredNetworkModePreferenceController.java ++++ b/src/com/android/settings/network/telephony/PreferredNetworkModePreferenceController.java +@@ -131,7 +131,7 @@ public class PreferredNetworkModePreferenceController extends TelephonyBasePrefe + case TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA: + return R.string.preferred_network_mode_lte_tdscdma_summary; + case TelephonyManagerConstants.NETWORK_MODE_LTE_ONLY: +- return R.string.preferred_network_mode_lte_summary; ++ return R.string.preferred_network_mode_lte_only_summary; + case TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA_GSM: + return R.string.preferred_network_mode_lte_tdscdma_gsm_summary; + case TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA_GSM_WCDMA: diff --git a/Patches/LineageOS-20.0/android_packages_apps_Settings/0014-LTE_Only_Mode-2.patch b/Patches/LineageOS-20.0/android_packages_apps_Settings/0014-LTE_Only_Mode-2.patch new file mode 100644 index 00000000..e2e56250 --- /dev/null +++ b/Patches/LineageOS-20.0/android_packages_apps_Settings/0014-LTE_Only_Mode-2.patch @@ -0,0 +1,21 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: flawedworld +Date: Tue, 23 Aug 2022 01:08:45 +0100 +Subject: [PATCH] Fix LTE Only mode on World Mode + +--- + .../telephony/EnabledNetworkModePreferenceController.java | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java b/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java +index bb0fc8d307..1be4e6f495 100644 +--- a/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java ++++ b/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java +@@ -314,7 +314,6 @@ public class EnabledNetworkModePreferenceController extends + .addFormat(UiOptions.PresentFormat.add2gEntry); + break; + case PREFERRED_NETWORK_MODE_CHOICES_WORLD_MODE: +- lteOnlyUnsupported = true; + uiOptions = uiOptions + .setChoices(R.array.preferred_network_mode_values_world_mode) + .addFormat(UiOptions.PresentFormat.addGlobalEntry) diff --git a/Scripts/Common/Deblob.sh b/Scripts/Common/Deblob.sh index 12b7de78..96fd5815 100644 --- a/Scripts/Common/Deblob.sh +++ b/Scripts/Common/Deblob.sh @@ -107,7 +107,7 @@ echo "Deblobbing..."; #CMN (?) [?] #blobs=$blobs"|cmnlib.*"; - #CNE (Automatic Cell/Wi-Fi Switching) [Qualcomm] + #CNE (VoWiFi) [Qualcomm] if [ "$DOS_DEBLOBBER_REMOVE_CNE" = true ]; then #blobs=$blobs"|libcneapiclient.so|libNimsWrap.so|com.quicinc.cne.*.so"; #XXX: Breaks radio blobs=$blobs"|andsfCne.xml|ATT_profile.*.xml|cneapiclient.xml|com.quicinc.cne.xml|ConnectivityExt.xml|profile1.xml|profile2.xml|profile3.xml|profile4.xml|profile5.xml|ROW_profile.*.xml|SwimConfig.xml|VZW_profile.*.xml"; @@ -120,6 +120,9 @@ echo "Deblobbing..."; #makes=$makes"|libcnefeatureconfig"; XXX: breaks radio sepolicy=$sepolicy" cnd.te qcneservice.te"; manifests=$manifests"|com.quicinc.cne|iwlan"; + blobs=$blobs"|QualifiedNetworksService.apk"; #Google + blobs=$blobs"|qualifiednetworksservice.xml"; + makes=$makes"|Iwlan"; fi; #CPPF (DRM) [?] @@ -268,17 +271,16 @@ echo "Deblobbing..."; #[Google] blobs=$blobs"|TetheringEntitlement.apk|CarrierLocation.apk|CarrierWifi.apk"; blobs=$blobs"|CarrierSettings.apk|CarrierSetup.apk"; + blobs=$blobs"|CarrierServices.apk"; blobs=$blobs"|HardwareInfo.apk"; blobs=$blobs"|SCONE.apk"; #??? blobs=$blobs"|DevicePersonalizationPrebuilt.*.apk|DeviceIntelligence.*.apk"; - blobs=$blobs"|QualifiedNetworksService.apk"; - blobs=$blobs"|qualifiednetworksservice.xml"; blobs=$blobs"|libhwinfo.jar|com.google.android.hardwareinfo.xml"; overlay=$overlay"|config_defaultAttentionService|config_defaultSystemCaptionsManagerService|config_defaultSystemCaptionsService|config_systemAmbientAudioIntelligence|config_systemAudioIntelligence|config_systemNotificationIntelligence|config_systemTextIntelligence|config_systemUiIntelligence|config_systemVisualIntelligence|config_defaultContentSuggestionsService"; overlay=$overlay"|config_defaultWellbeingPackage|config_defaultSupervisionProfileOwnerComponent"; overlay=$overlay"|platform_carrier_config_package"; - #EUICC (Virtual SIM) [Google] + #eUICC (Virtual SIM) [Google] if [ "$DOS_DEBLOBBER_REMOVE_IMS" = true ] || [ "$DOS_DEBLOBBER_REMOVE_EUICC" = true ]; then blobs=$blobs"|EuiccGoogle.apk|EuiccSupportPixel.apk|EuiccSupportPixelPermissions.apk|EuiccGoogleOverlay.apk"; #EUICC is useless without GMS blobs=$blobs"|esim0.img|esim-v1.img|esim-full-v0.img|esim-a1.img|esim-a2.img"; @@ -288,7 +290,9 @@ echo "Deblobbing..."; fi; #Google Camera - blobs=$blobs"|com.google.android.camera.*|PixelCameraServices.*.apk"; + if [ "$DOS_DEBLOBBER_REMOVE_CAMEXT" = true ]; then + blobs=$blobs"|com.google.android.camera.*|PixelCameraServices.*.apk"; + fi; #Google NFC blobs=$blobs"|PixelNfc.apk"; @@ -297,6 +301,8 @@ echo "Deblobbing..."; blobs=$blobs"|grilservice.apk|RilConfigService.apk"; blobs=$blobs"|google-ril.jar|RadioConfigLib.jar"; blobs=$blobs"|google-ril.xml"; + blobs=$blobs"|ConnectivityThermalPowerManager.apk"; + overlay=$overlay"|config_show_adaptive_connectivity"; #Google Setup Wizard blobs=$blobs"|DreamlinerPrebuilt.apk|DreamlinerUpdater.apk"; @@ -350,6 +356,7 @@ echo "Deblobbing..."; blobs=$blobs"|imscmservice|imsdatadaemon|imsqmidaemon"; blobs=$blobs"|imscm.xml|ims.xml|android.hardware.telephony.ims.xml"; blobs=$blobs"|qti_permissions.xml|qti-vzw-ims-internal.xml"; + blobs=$blobs"|ShannonIms.apk"; blobs=$blobs"|imssettings.apk|ims.apk"; blobs=$blobs"|imscmlibrary.jar|qti-vzw-ims-internal.jar"; blobs=$blobs"|com.qualcomm.qti.imscmservice.*|vendor.qti.ims.*"; @@ -364,9 +371,6 @@ echo "Deblobbing..."; ipcSec=$ipcSec"|32:4294967295:1001"; manifests=$manifests"|qti.ims|radio.ims"; fi; - if [ "$DOS_DEBLOBBER_REMOVE_IMS" = true ] || [ "$DOS_DEBLOBBER_REMOVE_EUICC" = true ]; then - blobs=$blobs"|CarrierServices.apk"; #XXX: must be removed along with euicc - fi; if [ "$DOS_DEBLOBBER_REMOVE_IMS" = true ] || [ "$DOS_DEBLOBBER_REMOVE_RCS" = true ]; then #RCS (Proprietary messaging protocol) #https://source.codeaurora.org/quic/la/platform/vendor/qcom-opensource/rcs-service/ [useless] @@ -445,7 +449,7 @@ echo "Deblobbing..."; #Music Detection [Google] blobs=$blobs"|AmbientSensePrebuilt.apk"; - blobs=$blobs"|dnd.descriptor|dnd.sound_model|music_detector.descriptor|music_detector.sound_model"; + blobs=$blobs"|dnd.descriptor|dnd.sound_model|music_detector.descriptor|music_detector.sound_model|matcher_tah.leveldb"; #[Motorola] #See: http://www.beneaththewaves.net/Projects/Motorola_Is_Listening.html blobs=$blobs"|BuaContactAdapter.apk|com.motorola.DirectedSMSProxy.xml|com.motorola.msimsettings.xml"; @@ -720,7 +724,7 @@ deblobDevice() { sed -i 's/bluetooth.emb_wp_mode=true/bluetooth.emb_wp_mode=false/' *.prop *.mk &>/dev/null || true; #Disable WiPower sed -i 's/bluetooth.wipower=true/bluetooth.wipower=false/' *.prop *.mk &>/dev/null || true; #Disable WiPower sed -i 's/wfd.enable=1/wfd.enable=0/' *.prop *.mk &>/dev/null || true; #Disable Wi-Fi display - awk -i inplace '!/vendor.camera.extensions/' *.prop *.mk &>/dev/null || true; #Disable camera extensions + if [ "$DOS_DEBLOBBER_REMOVE_CAMEXT" = true ]; then awk -i inplace '!/vendor.camera.extensions/' *.prop *.mk &>/dev/null || true; fi; #Disable camera extensions if [ -f system.prop ]; then if ! grep -q "drm.service.enabled=false" system.prop; then echo "drm.service.enabled=false" >> system.prop; fi; #Disable DRM server if [ "$DOS_DEBLOBBER_REMOVE_GRAPHICS" = true ]; then @@ -730,7 +734,6 @@ deblobDevice() { sed -i 's/opengles.version=.*/opengles.version=131072/' system.prop; fi; fi - #Disable IMS if [ "$DOS_DEBLOBBER_REMOVE_IMS" = true ]; then sed -i 's/ims.volte=true/ims.volte=false/' *.prop *.mk &>/dev/null || true; sed -i 's/ims.vt=true/ims.vt=false/' *.prop *.mk &>/dev/null || true; @@ -746,10 +749,18 @@ deblobDevice() { sed -i 's/dbg.ims_volte_enable=./dbg.ims_volte_enable=0/' *.prop *.mk &>/dev/null || true; sed -i 's/dbg.volte_avail_ovr=1/dbg.volte_avail_ovr=0/' *.prop *.mk &>/dev/null || true; sed -i 's/dbg.vt_avail_ovr=1/dbg.vt_avail_ovr=0/' *.prop *.mk &>/dev/null || true; + sed -i 's|true|false|' overlay*/frameworks/base/core/res/res/values/config.xml &>/dev/null || true; + sed -i 's|true|false|' overlay*/frameworks/base/core/res/res/values/config.xml &>/dev/null || true; + sed -i 's|true|false|' overlay*/frameworks/base/core/res/res/values/config.xml &>/dev/null || true; + sed -i 's|true|false|' overlay*/frameworks/base/core/res/res/values/config.xml &>/dev/null || true; + sed -i 's|true|false|' overlay*/frameworks/base/core/res/res/values/config.xml &>/dev/null || true; + awk -i inplace '!/config_ims_package/' overlay*/frameworks/base/core/res/res/values/config.xml &>/dev/null || true; fi; if [ "$DOS_DEBLOBBER_REMOVE_IMS" = true ] || [ "$DOS_DEBLOBBER_REMOVE_CNE" = true ]; then sed -i 's/data.iwlan.enable=true/data.iwlan.enable=false/' *.prop *.mk &>/dev/null || true; sed -i 's/dbg.wfc_avail_ovr=1/dbg.wfc_avail_ovr=0/' *.prop *.mk &>/dev/null || true; + sed -i 's|true|false|' overlay*/frameworks/base/core/res/res/values/config.xml &>/dev/null || true; + sed -i 's|true|false|' overlay*/frameworks/base/core/res/res/values/config.xml &>/dev/null || true; fi; if [ "$DOS_DEBLOBBER_REMOVE_IMS" = true ] || [ "$DOS_DEBLOBBER_REMOVE_RCS" = true ]; then sed -i 's/rcs.supported=./rcs.supported=0/' *.prop *.mk &>/dev/null || true; #Disable RCS @@ -773,27 +784,11 @@ deblobDevice() { sed -i 's/property_set("persist.rcs.supported", ".");/property_set("persist.rcs.supported", "0");/' init/init_*.cpp; #Disable RCS fi; fi; - if [ -f overlay/frameworks/base/core/res/res/values/config.xml ]; then - awk -i inplace '!/'$overlay'/' overlay*/frameworks/base/core/res/res/values/config.xml; - sed -i 's|true|false|' overlay*/frameworks/base/core/res/res/values/config.xml; - sed -i 's|true|false|' overlay*/frameworks/base/core/res/res/values/config.xml; #Disable UIBlur - #Disable IMS - if [ "$DOS_DEBLOBBER_REMOVE_IMS" = true ]; then - sed -i 's|true|false|' overlay*/frameworks/base/core/res/res/values/config.xml; - sed -i 's|true|false|' overlay*/frameworks/base/core/res/res/values/config.xml; - sed -i 's|true|false|' overlay*/frameworks/base/core/res/res/values/config.xml; - sed -i 's|true|false|' overlay*/frameworks/base/core/res/res/values/config.xml; - sed -i 's|true|false|' overlay*/frameworks/base/core/res/res/values/config.xml; - awk -i inplace '!/config_ims_package/' overlay*/frameworks/base/core/res/res/values/config.xml; - fi; - if [ "$DOS_DEBLOBBER_REMOVE_IMS" = true ] || [ "$DOS_DEBLOBBER_REMOVE_CNE" = true ]; then - sed -i 's|true|false|' overlay*/frameworks/base/core/res/res/values/config.xml; - sed -i 's|true|false|' overlay*/frameworks/base/core/res/res/values/config.xml; - fi; - fi; - if [ -f overlay/packages/services/Telephony/res/values/config.xml ]; then - awk -i inplace '!/platform_carrier_config_package/' overlay*/packages/services/Telephony/res/values/config.xml; - fi; + awk -i inplace '!/'$overlay'/' overlay*/frameworks/base/core/res/res/values/config.xml &>/dev/null || true; + sed -i 's|true|false|' overlay*/frameworks/base/core/res/res/values/config.xml &>/dev/null || true; + sed -i 's|true|false|' overlay*/frameworks/base/core/res/res/values/config.xml &>/dev/null || true; #Disable UIBlur + awk -i inplace '!/platform_carrier_config_package/' overlay*/packages/services/Telephony/res/values/config.xml &>/dev/null || true; + awk -i inplace '!/config_show_adaptive_connectivity/' overlay*/packages/apps/Settings/res/values/config.xml &>/dev/null || true; if [ -d sepolicy ]; then if [ -z "$replaceTime" ]; then numfiles=(*); numfiles=${#numfiles[@]}; diff --git a/Scripts/Common/Functions.sh b/Scripts/Common/Functions.sh index 175623af..1b0b1a2f 100644 --- a/Scripts/Common/Functions.sh +++ b/Scripts/Common/Functions.sh @@ -633,9 +633,13 @@ export -f disableEnforceRRO; disableAPEX() { cd "$DOS_BUILD_BASE$1"; - awk -i inplace '!/DEXPREOPT_GENERATE_APEX_IMAGE/' *.mk &>/dev/null || true; - awk -i inplace '!/updatable_apex.mk/' *.mk &>/dev/null || true; - echo "Disabled APEX for $1"; + if [[ "$1" != *"device/google/gs101"* ]] && [[ "$1" != *"device/google/gs201"* ]] && [[ "$1" != *"device/google/oriole"* ]] && [[ "$1" != *"device/google/raven"* ]] && [[ "$1" != *"device/google/raviole"* ]] && [[ "$1" != *"device/google/bluejay"* ]] && [[ "$1" != *"device/google/panther"* ]] && [[ "$1" != *"device/google/cheetah"* ]] && [[ "$1" != *"device/google/pantah"* ]]; then + awk -i inplace '!/DEXPREOPT_GENERATE_APEX_IMAGE/' *.mk &>/dev/null || true; + awk -i inplace '!/updatable_apex.mk/' *.mk &>/dev/null || true; + echo "Disabled APEX for $1"; + else + echo "Skipped disabling APEX for $1"; + fi; cd "$DOS_BUILD_BASE"; } export -f disableAPEX; @@ -966,25 +970,26 @@ hardenDefconfig() { declare -a optionsNo=("ACPI_APEI_EINJ" "ACPI_CUSTOM_METHOD" "ACPI_TABLE_UPGRADE"); optionsNo+=("CHECKPOINT_RESTORE" "MEM_SOFT_DIRTY"); optionsNo+=("CP_ACCESS64" "WLAN_FEATURE_MEMDUMP"); - optionsNo+=("DEBUG_ATOMIC_SLEEP" "DEBUG_BUS_VOTER" "DEBUG_MUTEXES" "DEBUG_KMEMLEAK" "DEBUG_PAGEALLOC" "DEBUG_STACK_USAGE" "DEBUG_SPINLOCK"); optionsNo+=("DEVKMEM" "DEVMEM" "DEVPORT" "EARJACK_DEBUGGER" "PROC_KCORE" "PROC_VMCORE" "X86_PTDUMP"); optionsNo+=("HWPOISON_INJECT" "NOTIFIER_ERROR_INJECTION"); optionsNo+=("INPUT_EVBUG"); - optionsNo+=("IOMMU_DEBUG" "IOMMU_DEBUG_TRACKING" "IOMMU_NON_SECURE" "IOMMU_TESTS"); - optionsNo+=("L2TP_DEBUGFS" "LOCKUP_DETECTOR" "LOG_BUF_MAGIC" "PREEMPT_TRACER"); - optionsNo+=("MMIOTRACE" "MMIOTRACE_TEST"); + optionsNo+=("LOG_BUF_MAGIC"); + optionsNo+=("L2TP_DEBUGFS"); optionsNo+=("PAGE_OWNER"); - optionsNo+=("SLUB_DEBUG" "SLUB_DEBUG_ON"); optionsNo+=("TIMER_STATS" "ZSMALLOC_STAT"); optionsNo+=("UPROBES"); + #optionsNo+=("SLUB_DEBUG" "SLUB_DEBUG_ON"); #optionsNo+=("STACKLEAK_METRICS" "STACKLEAK_RUNTIME_DISABLE"); #GCC only - if [[ $kernelVersion == "4."* ]] || [[ $kernelVersion == "5."* ]]; then - #optionsNo+=("DEBUG_FS"); - optionsNo+=("FTRACE" "KPROBE_EVENTS" "UPROBE_EVENTS" "GENERIC_TRACER" "FUNCTION_TRACER" "STACK_TRACER" "HIST_TRIGGERS" "BLK_DEV_IO_TRACE" "FAIL_FUTEX" "DYNAMIC_DEBUG"); - fi; - if [[ "$1" != *"kernel/oneplus/sm8250"* ]]; then - optionsNo+=("CORESIGHT_CSR" "CORESIGHT_CTI_SAVE_DISABLE" "CORESIGHT_CTI" "CORESIGHT_DBGUI" "CORESIGHT_ETM" "CORESIGHT_ETMV4" "CORESIGHT_EVENT" "CORESIGHT_FUNNEL" "CORESIGHT_FUSE" "CORESIGHT_HWEVENT" "CORESIGHT_QPDI" "CORESIGHT_REMOTE_ETM" "CORESIGHT_REPLICATOR" "CORESIGHT_STM_DEFAULT_ENABLE" "CORESIGHT_STM" "CORESIGHT_TMC" "CORESIGHT_TPDA" "CORESIGHT_TPDM_DEFAULT_ENABLE" "CORESIGHT_TPDM" "CORESIGHT_TPIU" "CORESIGHT" "OF_CORESIGHT"); - fi; + #optionsNo+=("MMIOTRACE" "MMIOTRACE_TEST"); + #optionsNo+=("IOMMU_DEBUG" "IOMMU_DEBUG_TRACKING" "IOMMU_NON_SECURE" "IOMMU_TESTS"); + #optionsNo+=("DEBUG_ATOMIC_SLEEP" "DEBUG_BUS_VOTER" "DEBUG_MUTEXES" "DEBUG_KMEMLEAK" "DEBUG_PAGEALLOC" "DEBUG_STACK_USAGE" "DEBUG_SPINLOCK"); + #if [[ $kernelVersion == "4."* ]] || [[ $kernelVersion == "5."* ]]; then + # #optionsNo+=("DEBUG_FS"); + # optionsNo+=("FTRACE" "KPROBE_EVENTS" "UPROBE_EVENTS" "GENERIC_TRACER" "FUNCTION_TRACER" "STACK_TRACER" "HIST_TRIGGERS" "BLK_DEV_IO_TRACE" "FAIL_FUTEX" "DYNAMIC_DEBUG" "PREEMPT_TRACER"); + #fi; + #if [[ "$1" != *"kernel/oneplus/sm8250"* ]]; then + # optionsNo+=("CORESIGHT_CSR" "CORESIGHT_CTI_SAVE_DISABLE" "CORESIGHT_CTI" "CORESIGHT_DBGUI" "CORESIGHT_ETM" "CORESIGHT_ETMV4" "CORESIGHT_EVENT" "CORESIGHT_FUNNEL" "CORESIGHT_FUSE" "CORESIGHT_HWEVENT" "CORESIGHT_QPDI" "CORESIGHT_REMOTE_ETM" "CORESIGHT_REPLICATOR" "CORESIGHT_STM_DEFAULT_ENABLE" "CORESIGHT_STM" "CORESIGHT_TMC" "CORESIGHT_TPDA" "CORESIGHT_TPDM_DEFAULT_ENABLE" "CORESIGHT_TPDM" "CORESIGHT_TPIU" "CORESIGHT" "OF_CORESIGHT"); + #fi; #legacy optionsNo+=("BINFMT_AOUT" "BINFMT_MISC"); optionsNo+=("COMPAT_BRK" "COMPAT_VDSO"); @@ -1008,7 +1013,7 @@ hardenDefconfig() { optionsNo+=("SLAB_MERGE_DEFAULT"); if [[ "$DOS_VERSION" != "LineageOS-20.0" ]]; then optionsNo+=("USERFAULTFD"); fi; #optionsNo+=("CFI_PERMISSIVE"); - #??? + #misc optionsNo+=("FB_MSM_MDSS_XLOG_DEBUG" "MSM_BUSPM_DEV" "MSMB_CAMERA_DEBUG" "MSM_CAMERA_DEBUG" "MSM_SMD_DEBUG"); optionsNo+=("NEEDS_SYSCALL_FOR_CMPXCHG"); optionsNo+=("TSC" "TSPP2"); @@ -1022,13 +1027,15 @@ hardenDefconfig() { #optionsNo+=("PROC_PAGE_MONITOR"); #breaks memory stats #optionsNo+=("SCHED_DEBUG"); #breaks compile - for option in "${optionsNo[@]}" - do - #If the option is enabled, disable it - sed -i 's/CONFIG_'"$option"'=y/CONFIG_'"$option"'=n/' $defconfigPath &>/dev/null || true; - #If the option isn't present, add it disabled - sed -zi '/CONFIG_'"$option"'=n/!s/$/\nCONFIG_'"$option"'=n/' $defconfigPath &>/dev/null || true; - done + if [ "$DOS_DEFCONFIG_DISABLER" = true ]; then + for option in "${optionsNo[@]}" + do + #If the option is enabled, disable it + sed -i 's/CONFIG_'"$option"'=y/CONFIG_'"$option"'=n/' $defconfigPath &>/dev/null || true; + #If the option isn't present, add it disabled + sed -zi '/CONFIG_'"$option"'=n/!s/$/\nCONFIG_'"$option"'=n/' $defconfigPath &>/dev/null || true; + done + fi; #Extras sed -i 's/CONFIG_ARCH_MMAP_RND_BITS=8/CONFIG_ARCH_MMAP_RND_BITS=16/' $defconfigPath &>/dev/null || true; diff --git a/Scripts/LineageOS-17.1/Patch.sh b/Scripts/LineageOS-17.1/Patch.sh index 0b428b73..5f92695c 100644 --- a/Scripts/LineageOS-17.1/Patch.sh +++ b/Scripts/LineageOS-17.1/Patch.sh @@ -310,6 +310,7 @@ applyPatch "$DOS_PATCHES/android_packages_apps_Settings/0008-ptrace_scope.patch" if [ "$DOS_GRAPHENE_EXEC" = true ]; then applyPatch "$DOS_PATCHES/android_packages_apps_Settings/0009-exec_spawning_toggle.patch"; fi; #Add exec spawning toggle (GrapheneOS) applyPatch "$DOS_PATCHES/android_packages_apps_Settings/0010-Random_MAC-1.patch"; #Add option to always randomize MAC (GrapheneOS) applyPatch "$DOS_PATCHES/android_packages_apps_Settings/0010-Random_MAC-2.patch"; #Remove partial MAC randomization translations (GrapheneOS) +applyPatch "$DOS_PATCHES/android_packages_apps_Settings/0011-LTE_Only_Mode.patch"; #Add LTE-only option (GrapheneOS) sed -i 's/private int mPasswordMaxLength = 16;/private int mPasswordMaxLength = 64;/' src/com/android/settings/password/ChooseLockPassword.java; #Increase default max password length to 64 (GrapheneOS) sed -i 's/if (isFullDiskEncrypted()) {/if (false) {/' src/com/android/settings/accessibility/*AccessibilityService*.java; #Never disable secure start-up when enabling an accessibility service fi; @@ -346,11 +347,6 @@ fi; #cp $DOS_PATCHES_COMMON/android_packages_providers_TelephonyProvider/carrier_list.* assets/; #fi; -#if enterAndClear "packages/services/Telephony"; then -#applyPatch "$DOS_PATCHES/android_packages_services_Telephony/0001-PREREQ_Handle_All_Modes.patch"; #XXX 17REBASE (DivestOS) -#applyPatch "$DOS_PATCHES/android_packages_services_Telephony/0002-More_Preferred_Network_Modes.patch"; #XXX 17REBASE -#fi; - if enterAndClear "prebuilts/abi-dumps/vndk"; then applyPatch "$DOS_PATCHES/android_prebuilts_abi-dumps_vndk/0001-protobuf-avi.patch"; #Work around ABI changes from compiler hardening (GrapheneOS) fi; diff --git a/Scripts/LineageOS-18.1/Patch.sh b/Scripts/LineageOS-18.1/Patch.sh index dc158691..d3995fd0 100644 --- a/Scripts/LineageOS-18.1/Patch.sh +++ b/Scripts/LineageOS-18.1/Patch.sh @@ -318,6 +318,9 @@ applyPatch "$DOS_PATCHES/android_packages_apps_Settings/0011-Random_MAC-1.patch" applyPatch "$DOS_PATCHES/android_packages_apps_Settings/0011-Random_MAC-2.patch"; #Remove partial MAC randomization translations (GrapheneOS) applyPatch "$DOS_PATCHES/android_packages_apps_Settings/0009-Install_Restrictions.patch"; #UserManager app installation restrictions (GrapheneOS) applyPatch "$DOS_PATCHES/android_packages_apps_Settings/0012-hosts_toggle.patch"; #Add a toggle to disable /etc/hosts lookup (heavily based off of a GrapheneOS patch) +applyPatch "$DOS_PATCHES/android_packages_apps_Settings/0013-LTE_Only_Mode-1.patch"; #Add LTE only setting (GrapheneOS) +applyPatch "$DOS_PATCHES/android_packages_apps_Settings/0013-LTE_Only_Mode-2.patch"; #Show preferred network options no matter the carrier configuration (GrapheneOS) +applyPatch "$DOS_PATCHES/android_packages_apps_Settings/0013-LTE_Only_Mode-3.patch"; #Add LTE only entry when carrier enables world mode (GrapheneOS) sed -i 's/if (isFullDiskEncrypted()) {/if (false) {/' src/com/android/settings/accessibility/*AccessibilityService*.java; #Never disable secure start-up when enabling an accessibility service fi; diff --git a/Scripts/LineageOS-19.1/Patch.sh b/Scripts/LineageOS-19.1/Patch.sh index d61b9b91..6e2d91ea 100644 --- a/Scripts/LineageOS-19.1/Patch.sh +++ b/Scripts/LineageOS-19.1/Patch.sh @@ -71,13 +71,13 @@ applyPatch "$DOS_PATCHES/android_bionic/0002-Graphene_Bionic_Hardening-6.patch"; applyPatch "$DOS_PATCHES/android_bionic/0002-Graphene_Bionic_Hardening-7.patch"; #Increase default pthread stack to 8MiB on 64-bit (GrapheneOS) applyPatch "$DOS_PATCHES/android_bionic/0002-Graphene_Bionic_Hardening-8.patch"; #Make __stack_chk_guard read-only at runtime (GrapheneOS) applyPatch "$DOS_PATCHES/android_bionic/0002-Graphene_Bionic_Hardening-9.patch"; #On 64-bit, zero the leading stack canary byte (GrapheneOS) -applyPatch "$DOS_PATCHES/android_bionic/0002-Graphene_Bionic_Hardening-10.patch"; #Switch pthread_atfork handler allocation to mmap (GrapheneOS) #XXX: patches from here on are known to cause boot issues on legacy devices +applyPatch "$DOS_PATCHES/android_bionic/0002-Graphene_Bionic_Hardening-10.patch"; #Switch pthread_atfork handler allocation to mmap (GrapheneOS) applyPatch "$DOS_PATCHES/android_bionic/0002-Graphene_Bionic_Hardening-11.patch"; #Add memory protection for pthread_atfork handlers (GrapheneOS) -applyPatch "$DOS_PATCHES/android_bionic/0002-Graphene_Bionic_Hardening-12.patch"; #Add XOR mangling mitigation for thread-local dtors (GrapheneOS) -applyPatch "$DOS_PATCHES/android_bionic/0002-Graphene_Bionic_Hardening-13.patch"; #Use a better pthread_attr junk filling pattern (GrapheneOS) -applyPatch "$DOS_PATCHES/android_bionic/0002-Graphene_Bionic_Hardening-14.patch"; #Add guard page(s) between static_tls and stack (GrapheneOS) -applyPatch "$DOS_PATCHES/android_bionic/0002-Graphene_Bionic_Hardening-15.patch"; #Move pthread_internal_t behind guard page (GrapheneOS) -applyPatch "$DOS_PATCHES/android_bionic/0002-Graphene_Bionic_Hardening-16.patch"; #Add secondary stack randomization (GrapheneOS) +#applyPatch "$DOS_PATCHES/android_bionic/0002-Graphene_Bionic_Hardening-12.patch"; #Add XOR mangling mitigation for thread-local dtors (GrapheneOS) #XXX: patches from here on are known to cause boot issues +#applyPatch "$DOS_PATCHES/android_bionic/0002-Graphene_Bionic_Hardening-13.patch"; #Use a better pthread_attr junk filling pattern (GrapheneOS) +#applyPatch "$DOS_PATCHES/android_bionic/0002-Graphene_Bionic_Hardening-14.patch"; #Add guard page(s) between static_tls and stack (GrapheneOS) +#applyPatch "$DOS_PATCHES/android_bionic/0002-Graphene_Bionic_Hardening-15.patch"; #Move pthread_internal_t behind guard page (GrapheneOS) +#applyPatch "$DOS_PATCHES/android_bionic/0002-Graphene_Bionic_Hardening-16.patch"; #Add secondary stack randomization (GrapheneOS) fi; applyPatch "$DOS_PATCHES/android_bionic/0003-Hosts_Cache.patch"; #Sort and cache hosts file data for fast lookup (tdm) applyPatch "$DOS_PATCHES/android_bionic/0003-Hosts_Wildcards.patch"; #Support wildcards in cached hosts file (tdm) @@ -291,6 +291,7 @@ applyPatch "$DOS_PATCHES/android_packages_apps_Settings/0011-Random_MAC.patch"; applyPatch "$DOS_PATCHES/android_packages_apps_Settings/0009-Install_Restrictions.patch"; #UserManager app installation restrictions (GrapheneOS) applyPatch "$DOS_PATCHES/android_packages_apps_Settings/0012-hosts_toggle.patch"; #Add a toggle to disable /etc/hosts lookup (heavily based off of a GrapheneOS patch) applyPatch "$DOS_PATCHES/android_packages_apps_Settings/0013-Captive_Portal_Toggle.patch"; #Add option to disable captive portal checks (GrapheneOS) +applyPatch "$DOS_PATCHES/android_packages_apps_Settings/0014-LTE_Only_Mode.patch"; #Add LTE only setting (GrapheneOS) sed -i 's/if (isFullDiskEncrypted()) {/if (false) {/' src/com/android/settings/accessibility/*AccessibilityService*.java; #Never disable secure start-up when enabling an accessibility service fi; diff --git a/Scripts/LineageOS-20.0/Functions.sh b/Scripts/LineageOS-20.0/Functions.sh index 4f63e029..b8dd02c4 100644 --- a/Scripts/LineageOS-20.0/Functions.sh +++ b/Scripts/LineageOS-20.0/Functions.sh @@ -48,13 +48,15 @@ buildAll() { umask 0022; cd "$DOS_BUILD_BASE"; if [ "$DOS_MALWARE_SCAN_ENABLED" = true ]; then scanWorkspaceForMalware; fi; - #SD835 + #frontloaded for testing + buildDevice bluejay avb; buildDevice taimen avb; + buildDevice fajita avb; + #SD835 buildDevice walleye avb; buildDevice cheeseburger verity; buildDevice dumpling verity; #SD845 - buildDevice fajita avb; buildDevice enchilada avb; buildDevice aura avb; buildDevice beryllium avb; @@ -89,7 +91,6 @@ buildAll() { #Tensor buildDevice oriole avb; buildDevice raven avb; - buildDevice bluejay avb; buildDevice panther avb; buildDevice cheetah avb; } diff --git a/Scripts/LineageOS-20.0/Patch.sh b/Scripts/LineageOS-20.0/Patch.sh index 8059bcf3..39146429 100644 --- a/Scripts/LineageOS-20.0/Patch.sh +++ b/Scripts/LineageOS-20.0/Patch.sh @@ -71,13 +71,13 @@ applyPatch "$DOS_PATCHES/android_bionic/0002-Graphene_Bionic_Hardening-6.patch"; applyPatch "$DOS_PATCHES/android_bionic/0002-Graphene_Bionic_Hardening-7.patch"; #Increase default pthread stack to 8MiB on 64-bit (GrapheneOS) applyPatch "$DOS_PATCHES/android_bionic/0002-Graphene_Bionic_Hardening-8.patch"; #Make __stack_chk_guard read-only at runtime (GrapheneOS) applyPatch "$DOS_PATCHES/android_bionic/0002-Graphene_Bionic_Hardening-9.patch"; #On 64-bit, zero the leading stack canary byte (GrapheneOS) -applyPatch "$DOS_PATCHES/android_bionic/0002-Graphene_Bionic_Hardening-10.patch"; #Switch pthread_atfork handler allocation to mmap (GrapheneOS) #XXX: patches from here on are known to cause boot issues on legacy devices +applyPatch "$DOS_PATCHES/android_bionic/0002-Graphene_Bionic_Hardening-10.patch"; #Switch pthread_atfork handler allocation to mmap (GrapheneOS) applyPatch "$DOS_PATCHES/android_bionic/0002-Graphene_Bionic_Hardening-11.patch"; #Add memory protection for pthread_atfork handlers (GrapheneOS) -applyPatch "$DOS_PATCHES/android_bionic/0002-Graphene_Bionic_Hardening-12.patch"; #Add XOR mangling mitigation for thread-local dtors (GrapheneOS) -applyPatch "$DOS_PATCHES/android_bionic/0002-Graphene_Bionic_Hardening-13.patch"; #Use a better pthread_attr junk filling pattern (GrapheneOS) -applyPatch "$DOS_PATCHES/android_bionic/0002-Graphene_Bionic_Hardening-14.patch"; #Add guard page(s) between static_tls and stack (GrapheneOS) -applyPatch "$DOS_PATCHES/android_bionic/0002-Graphene_Bionic_Hardening-15.patch"; #Move pthread_internal_t behind guard page (GrapheneOS) -applyPatch "$DOS_PATCHES/android_bionic/0002-Graphene_Bionic_Hardening-16.patch"; #Add secondary stack randomization (GrapheneOS) +#applyPatch "$DOS_PATCHES/android_bionic/0002-Graphene_Bionic_Hardening-12.patch"; #Add XOR mangling mitigation for thread-local dtors (GrapheneOS) #XXX: patches from here on are known to cause boot issues +#applyPatch "$DOS_PATCHES/android_bionic/0002-Graphene_Bionic_Hardening-13.patch"; #Use a better pthread_attr junk filling pattern (GrapheneOS) +#applyPatch "$DOS_PATCHES/android_bionic/0002-Graphene_Bionic_Hardening-14.patch"; #Add guard page(s) between static_tls and stack (GrapheneOS) +#applyPatch "$DOS_PATCHES/android_bionic/0002-Graphene_Bionic_Hardening-15.patch"; #Move pthread_internal_t behind guard page (GrapheneOS) +#applyPatch "$DOS_PATCHES/android_bionic/0002-Graphene_Bionic_Hardening-16.patch"; #Add secondary stack randomization (GrapheneOS) fi; applyPatch "$DOS_PATCHES/android_bionic/0003-Hosts_Cache.patch"; #Sort and cache hosts file data for fast lookup (tdm) applyPatch "$DOS_PATCHES/android_bionic/0003-Hosts_Wildcards.patch"; #Support wildcards in cached hosts file (tdm) @@ -93,8 +93,8 @@ git revert --no-edit 9b41333a849d14683f9c4ac30fcfd48a27945018; #Re-enable the do applyPatch "$DOS_PATCHES/android_build/0001-Enable_fwrapv.patch"; #Use -fwrapv at a minimum (GrapheneOS) #applyPatch "$DOS_PATCHES/android_build/0002-OTA_Keys.patch"; #Add correct keys to recovery for OTA verification (DivestOS) if [ "$DOS_GRAPHENE_EXEC" = true ]; then applyPatch "$DOS_PATCHES/android_build/0003-Exec_Based_Spawning.patch"; fi; #Add exec-based spawning support (GrapheneOS) #XXX: most devices override this +applyPatch "$DOS_PATCHES/android_build/0004-Selective_APEX.patch"; #Only enable APEX on 6th/7th gen Pixel devices (GrapheneOS) sed -i '75i$(my_res_package): PRIVATE_AAPT_FLAGS += --auto-add-overlay' core/aapt2.mk; #Enable auto-add-overlay for packages, this allows the vendor overlay to easily work across all branches. -awk -i inplace '!/updatable_apex.mk/' target/product/generic_system.mk; #Disable APEX sed -i 's/PLATFORM_MIN_SUPPORTED_TARGET_SDK_VERSION := 23/PLATFORM_MIN_SUPPORTED_TARGET_SDK_VERSION := 28/' core/version_util.mk; #Set the minimum supported target SDK to Pie (GrapheneOS) #sed -i 's/PRODUCT_OTA_ENFORCE_VINTF_KERNEL_REQUIREMENTS := true/PRODUCT_OTA_ENFORCE_VINTF_KERNEL_REQUIREMENTS := false/' core/product_config.mk; #broken by hardenDefconfig fi; @@ -293,6 +293,8 @@ applyPatch "$DOS_PATCHES/android_packages_apps_Settings/0011-Random_MAC.patch"; applyPatch "$DOS_PATCHES/android_packages_apps_Settings/0009-Install_Restrictions.patch"; #UserManager app installation restrictions (GrapheneOS) applyPatch "$DOS_PATCHES/android_packages_apps_Settings/0012-hosts_toggle.patch"; #Add a toggle to disable /etc/hosts lookup (heavily based off of a GrapheneOS patch) applyPatch "$DOS_PATCHES/android_packages_apps_Settings/0013-Captive_Portal_Toggle.patch"; #Add option to disable captive portal checks (GrapheneOS) +applyPatch "$DOS_PATCHES/android_packages_apps_Settings/0014-LTE_Only_Mode-1.patch"; #LTE Only Mode (GrapheneOS) +applyPatch "$DOS_PATCHES/android_packages_apps_Settings/0014-LTE_Only_Mode-2.patch"; #Fix LTE Only mode on World Mode (GrapheneOS) fi; if enterAndClear "packages/apps/SetupWizard"; then @@ -410,26 +412,15 @@ fi; # #START OF DEVICE CHANGES # -if enterAndClear "device/google/gs101"; then -sed -i '/Virtualization/,+7d' device.mk; -fi; - if enterAndClear "device/google/gs201"; then -sed -i '/Virtualization/,+1d' device.mk; -sed -i '/PRODUCT_BUILD_PVMFW_IMAGE/,+2d' device.mk; awk -i inplace '!/PRODUCT_PACKAGES/' widevine/device.mk; fi; if enterAndClear "device/google/redbull"; then -awk -i inplace '!/sctp/' BoardConfig-common.mk modules.load; #fix compile after hardenDefconfig -fi; - -if enterAndClear "device/google/wahoo"; then -git revert --no-edit 4e9cf40ae5e8a334989b46405ab09dba575f61fa; #revert compressed ramdisk due to potential breakage +if [ "$DOS_DEFCONFIG_DISABLER" = true ]; then awk -i inplace '!/sctp/' BoardConfig-common.mk modules.load; fi; #fix compile after hardenDefconfig fi; if enterAndClear "kernel/google/wahoo"; then -git revert --no-edit 4fc7c2f4d9a187396cc6efb4a0cc003850f3f79d; #revert compressed ramdisk due to potential breakage sed -i 's/asm(SET_PSTATE_UAO(1));/asm(SET_PSTATE_UAO(1)); return 0;/' arch/arm64/mm/fault.c; #fix build with CONFIG_ARM64_UAO fi; diff --git a/Scripts/init.sh b/Scripts/init.sh index 90867945..1132611e 100644 --- a/Scripts/init.sh +++ b/Scripts/init.sh @@ -43,12 +43,13 @@ export DOS_DEBLOBBER_REMOVE_ACCESSORIES=true; #Set false to allow use of externa export DOS_DEBLOBBER_REMOVE_ATFWD=true; #Set true to remove basic ATFWD blobs export DOS_DEBLOBBER_REMOVE_AUDIOFX=true; #Set true to remove AudioFX export DOS_DEBLOBBER_REMOVE_APTX=false; #Set true to remove aptX Bluetooth codec +export DOS_DEBLOBBER_REMOVE_CAMEXT=false; #Set true to remove camera extensions export DOS_DEBLOBBER_REMOVE_CNE=true; #Set true to remove all CNE blobs #XXX: Breaks Wi-Fi calling -export DOS_DEBLOBBER_REMOVE_DPM=true; #Set true to remove all DPM blobs #XXX: Breaks multi-sim and link aggregation (LTE+) +export DOS_DEBLOBBER_REMOVE_DPM=true; #Set true to remove all DPM blobs #XXX: Maybe breaks multi-sim and carrier aggregation (LTE+) export DOS_DEBLOBBER_REMOVE_DPP=false; #Set true to remove all Display Post Processing blobs #XXX: Breaks boot on select devices export DOS_DEBLOBBER_REMOVE_FP=false; #Set true to remove all fingerprint reader blobs export DOS_DEBLOBBER_REMOVE_GRAPHICS=false; #Set true to remove all graphics blobs and use SwiftShader CPU renderer #TODO: Needs work -export DOS_DEBLOBBER_REMOVE_EUICC=true; #Set true to remove all EUICC blobs +export DOS_DEBLOBBER_REMOVE_EUICC=true; #Set true to remove all eUICC blobs export DOS_DEBLOBBER_REMOVE_IMS=false; #Set true to remove all IMS blobs XXX: Carriers are phasing out 3G, making IMS mandatory for calls export DOS_DEBLOBBER_REMOVE_IPA=false; #Set true to remove all IPA blobs export DOS_DEBLOBBER_REMOVE_IR=false; #Set true to remove all IR blobs @@ -58,10 +59,11 @@ export DOS_DEBLOBBER_REPLACE_TIME=false; #Set true to replace Qualcomm Time Serv #Features export DOS_GPS_GLONASS_FORCED=false; #Enables GLONASS on all devices -export DOS_GRAPHENE_BIONIC=true; #Enables the bionic hardening patchset on 16.0+17.1+18.1+19.1 -export DOS_GRAPHENE_CONSTIFY=true; #Enables 'Constify JNINativeMethod tables' patchset on 16.0+17.1+18.1+19.1 -export DOS_GRAPHENE_MALLOC=true; #Enables use of GrapheneOS' hardened memory allocator on 64-bit platforms on 16.0+17.1+18.1+19.1 -export DOS_GRAPHENE_EXEC=true; #Enables use of GrapheneOS' exec spawning feature on 16.0+17.1+18.1+19.1 +export DOS_DEFCONFIG_DISABLER=true; #Enables the disablement of various kernel options +export DOS_GRAPHENE_BIONIC=true; #Enables the bionic hardening patchset on 16.0+17.1+18.1+19.1+20.0 +export DOS_GRAPHENE_CONSTIFY=true; #Enables 'Constify JNINativeMethod tables' patchset on 16.0+17.1+18.1+19.1+20.0 +export DOS_GRAPHENE_MALLOC=true; #Enables use of GrapheneOS' hardened memory allocator on 64-bit platforms on 16.0+17.1+18.1+19.1+20.0 +export DOS_GRAPHENE_EXEC=true; #Enables use of GrapheneOS' exec spawning feature on 16.0+17.1+18.1+19.1+20.0 export DOS_HOSTS_BLOCKING=true; #Set false to prevent inclusion of a HOSTS file export DOS_HOSTS_BLOCKING_LIST="https://divested.dev/hosts-wildcards"; #Must be in the format "127.0.0.1 bad.domain.tld" export DOS_SENSORS_PERM=false; #Set true to provide a per-app sensors permission for 14.1/15.1 #XXX: can break things like camera