Many fixes to get bluejay booting & working proper

- Enable APEX for Pixel 6/7, necessary for camera and pKVM
  - Also drop hack removing pKVM for Pixel 6/7
  - patch from GrapheneOS

- Extend hmalloc workaround to /apex

- Deblobber:
  - actually handle wildcard f/w/b overlays
  - move some stuff around
  - remove some more Pixel blobs
  - flag and disable removal of camera extensions, being able to use the second camera is nice

- Adjust what hardenDefconfig disables, caused boot issues
  minimal impact as most of these are already default-disabled
  can be narrowed down in future

- Disable some of the bionic hardening patches, causing more boot issues
  annoying to lose, but having a phone that boots is more important

- Add LTE only mode to 17.1, 18.1, 19.1, and 20.0, credit GrapheneOS

- Remove Pixel 2 ramdisk compression reverts, fixed upstream

And yes, I know I should've split up this commit...

Signed-off-by: Tad <tad@spotco.us>
This commit is contained in:
Tad 2022-12-23 22:00:31 -05:00
parent 751d1e8d72
commit 06254708be
No known key found for this signature in database
GPG Key ID: B286E9F57A07424B
19 changed files with 884 additions and 100 deletions

View File

@ -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

View File

@ -0,0 +1,171 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: inthewaves <inthewaves@pm.me>
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-array>
<string-array name="enabled_networks_choices" translatable="false">
+ <item>@string/network_lte_only</item>
<item>@string/network_lte</item>
<item>@string/network_3G</item>
<item>@string/network_2G</item>
</string-array>
<string-array name="enabled_networks_4g_choices" translatable="false">
+ <item>@string/network_4G_only</item>
<item>@string/network_4G</item>
<item>@string/network_3G</item>
<item>@string/network_2G</item>
</string-array>
<string-array name="enabled_networks_values" translatable="false">
+ <item>"11"</item>
<item>"9"</item>
<item>"0"</item>
<item>"1"</item>
@@ -1346,7 +1349,7 @@
<item>CDMA + LTE/EvDo</item>
<item>GSM/WCDMA/LTE</item>
<item>LTE/CDMA/EvDo/GSM/WCDMA</item>
- <item>LTE</item>
+ <item>LTE only</item>
<item>LTE / WCDMA</item>
<item>TDSCDMA only</item>
<item>TDSCDMA/WCDMA</item>
@@ -1421,14 +1424,17 @@
</string-array>
<string-array name="enabled_networks_except_gsm_choices" translatable="false">
+ <item>@string/network_lte_only</item>
<item>@string/network_lte</item>
<item>@string/network_3G</item>
</string-array>
<string-array name="enabled_networks_except_gsm_4g_choices" translatable="false">
+ <item>@string/network_4G_only</item>
<item>@string/network_4G</item>
<item>@string/network_3G</item>
</string-array>
<string-array name="enabled_networks_except_gsm_values" translatable="false">
+ <item>"11"</item>
<item>"9"</item>
<item>"0"</item>
</string-array>
@@ -1450,12 +1456,14 @@
</string-array>
<string-array name="enabled_networks_cdma_choices" translatable="false">
+ <item>@string/network_lte_only</item>
<item>@string/network_lte</item>
<item>@string/network_3G</item>
<item>@string/network_1x</item>
<item>@string/network_global</item>
</string-array>
<string-array name="enabled_networks_cdma_values" translatable="false">
+ <item>"11"</item>
<item>"8"</item>
<item>"4"</item>
<item>"5"</item>
@@ -1472,20 +1480,24 @@
</string-array>
<string-array name="enabled_networks_cdma_only_lte_choices" translatable="false">
+ <item>@string/network_lte_only</item>
<item>@string/network_lte</item>
<item>@string/network_global</item>
</string-array>
<string-array name="enabled_networks_cdma_only_lte_values" translatable="false">
+ <item>"11"</item>
<item>"8"</item>
<item>"10"</item>
</string-array>
<string-array name="enabled_networks_tdscdma_choices" translatable="false">
+ <item>@string/network_lte_only</item>
<item>@string/network_lte</item>
<item>@string/network_3G</item>
<item>@string/network_2G</item>
</string-array>
<string-array name="enabled_networks_tdscdma_values" translatable="false">
+ <item>"11"</item>
<item>"22"</item>
<item>"18"</item>
<item>"1"</item>
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 @@
<string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary">Preferred network mode: CDMA/EvDo/GSM/WCDMA</string>
<!-- LTE [CHAR LIMIT=NONE] -->
<string name="preferred_network_mode_lte_summary">Preferred network mode: LTE </string>
+ <!-- LTE only [CHAR LIMIT=100] -->
+ <string name="preferred_network_mode_lte_only_summary">Preferred network mode: LTE only</string>
<!-- GSM/WCDMA/LTE [CHAR LIMIT=NONE] -->
<string name="preferred_network_mode_lte_gsm_wcdma_summary">Preferred network mode: GSM/WCDMA/LTE</string>
<!-- CDMA+LTE/EVDO [CHAR LIMIT=NONE] -->
@@ -11009,8 +11011,12 @@
<string name="network_4G_pure" translatable="false">4G</string>
<!-- Text for Network lte [CHAR LIMIT=NONE] -->
<string name="network_lte">LTE (recommended)</string>
+ <!-- Text for Network lte only [CHAR LIMIT=NONE] -->
+ <string name="network_lte_only">LTE only</string>
<!-- Text for Network 4g [CHAR LIMIT=NONE] -->
<string name="network_4G">4G (recommended)</string>
+ <!-- Text for Network 4g only [CHAR LIMIT=NONE] -->
+ <string name="network_4G_only">4G only</string>
<!-- Text for Network 3g [CHAR LIMIT=NONE] -->
<string name="network_3G" translatable="false">3G</string>
<!-- Text for Network 2g [CHAR LIMIT=NONE] -->
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:

View File

@ -0,0 +1,177 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: inthewaves <inthewaves@pm.me>
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 @@
<item>4</item> <!-- AutofillManager.FLAG_ADD_CLIENT_VERBOSE -->
</string-array>
+ <!-- Note: The LTE only option is added in code, not here. Also, these enabled_networks_choices
+ and enabled_networks_4g_choices string arrays are just placeholders for
+ mobile_network_settings.xml -->
<string-array name="enabled_networks_choices" translatable="false">
<item>@string/network_lte</item>
<item>@string/network_3G</item>
@@ -1482,7 +1485,7 @@
<item>CDMA + LTE/EvDo</item>
<item>GSM/WCDMA/LTE</item>
<item>LTE/CDMA/EvDo/GSM/WCDMA</item>
- <item>LTE</item>
+ <item>LTE only</item>
<item>LTE / WCDMA</item>
<item>TDSCDMA only</item>
<item>TDSCDMA/WCDMA</item>
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 @@
<string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary">Preferred network mode: CDMA/EvDo/GSM/WCDMA</string>
<!-- LTE [CHAR LIMIT=NONE] -->
<string name="preferred_network_mode_lte_summary">Preferred network mode: LTE </string>
+ <!-- LTE only [CHAR LIMIT=100] -->
+ <string name="preferred_network_mode_lte_only_summary">Preferred network mode: LTE only</string>
<!-- GSM/WCDMA/LTE [CHAR LIMIT=NONE] -->
<string name="preferred_network_mode_lte_gsm_wcdma_summary">Preferred network mode: GSM/WCDMA/LTE</string>
<!-- CDMA+LTE/EVDO [CHAR LIMIT=NONE] -->
@@ -11660,8 +11662,12 @@
<string name="network_4G_pure" translatable="false">4G</string>
<!-- Text for Network lte [CHAR LIMIT=NONE] -->
<string name="network_lte">LTE (recommended)</string>
+ <!-- Text for Network lte only [CHAR LIMIT=NONE] -->
+ <string name="network_lte_only">LTE only</string>
<!-- Text for Network 4g [CHAR LIMIT=NONE] -->
<string name="network_4G">4G (recommended)</string>
+ <!-- Text for Network 4g only [CHAR LIMIT=NONE] -->
+ <string name="network_4G_only">4G only</string>
<!-- Text for Network 3g [CHAR LIMIT=NONE] -->
<string name="network_3G" translatable="false">3G</string>
<!-- Text for Network 2g [CHAR LIMIT=NONE] -->
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:

View File

@ -0,0 +1,26 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: flawedworld <flawedworld@flawed.world>
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 {

View File

@ -0,0 +1,21 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: flawedworld <flawedworld@flawed.world>
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]);

View File

@ -0,0 +1,195 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: inthewaves <inthewaves@pm.me>
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 @@
<item>4</item> <!-- AutofillManager.FLAG_ADD_CLIENT_VERBOSE -->
</string-array>
+ <!-- Note: The LTE only option is added in code, not here. Also, these enabled_networks_choices
+ and enabled_networks_4g_choices string arrays are just placeholders for
+ mobile_network_settings.xml -->
<string-array name="enabled_networks_choices" translatable="false">
<item>@string/network_lte</item>
<item>@string/network_3G</item>
@@ -1563,7 +1566,7 @@
<item>CDMA + LTE/EvDo</item>
<item>GSM/WCDMA/LTE</item>
<item>LTE/CDMA/EvDo/GSM/WCDMA</item>
- <item>LTE</item>
+ <item>LTE Only</item>
<item>LTE / WCDMA</item>
<item>TDSCDMA only</item>
<item>TDSCDMA/WCDMA</item>
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 @@
<string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary">Preferred network mode: CDMA/EvDo/GSM/WCDMA</string>
<!-- LTE [CHAR LIMIT=NONE] -->
<string name="preferred_network_mode_lte_summary">Preferred network mode: LTE </string>
+ <!-- LTE only [CHAR LIMIT=100] -->
+ <string name="preferred_network_mode_lte_only_summary">Preferred network mode: LTE only</string>
<!-- GSM/WCDMA/LTE [CHAR LIMIT=NONE] -->
<string name="preferred_network_mode_lte_gsm_wcdma_summary">Preferred network mode: GSM/WCDMA/LTE</string>
<!-- CDMA+LTE/EVDO [CHAR LIMIT=NONE] -->
@@ -12696,8 +12698,12 @@
<string name="network_4G_pure" translatable="false">4G</string>
<!-- Text for Network lte [CHAR LIMIT=NONE] -->
<string name="network_lte">LTE (recommended)</string>
+ <!-- Text for Network lte only [CHAR LIMIT=NONE] -->
+ <string name="network_lte_only">LTE only</string>
<!-- Text for Network 4g [CHAR LIMIT=NONE] -->
<string name="network_4G">4G (recommended)</string>
+ <!-- Text for Network 4g only [CHAR LIMIT=NONE] -->
+ <string name="network_4G_only">4G only</string>
<!-- Text for Network 3g [CHAR LIMIT=NONE] -->
<string name="network_3G" translatable="false">3G</string>
<!-- Text for Network 2g [CHAR LIMIT=NONE] -->
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:

View File

@ -0,0 +1,28 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: flawedworld <flawedworld@flawed.world>
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 += \

View File

@ -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;

View File

@ -10,7 +10,7 @@ Signed-off-by: Tad <tad@spotco.us>
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) {

View File

@ -0,0 +1,143 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Pratyush <codelab@pratyush.dev>
Date: Fri, 19 Aug 2022 11:05:36 +0530
Subject: [PATCH] LTE Only Mode
Co-authored-by: inthewaves <inthewaves@pm.me>
---
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 @@
<string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary">Preferred network mode: CDMA/EvDo/GSM/WCDMA</string>
<!-- LTE [CHAR LIMIT=NONE] -->
<string name="preferred_network_mode_lte_summary">Preferred network mode: LTE </string>
+ <!-- LTE only [CHAR LIMIT=100] -->
+ <string name="preferred_network_mode_lte_only_summary">Preferred network mode: LTE only</string>
<!-- GSM/WCDMA/LTE [CHAR LIMIT=NONE] -->
<string name="preferred_network_mode_lte_gsm_wcdma_summary">Preferred network mode: GSM/WCDMA/LTE</string>
<!-- CDMA+LTE/EVDO [CHAR LIMIT=NONE] -->
@@ -13097,8 +13099,12 @@
<string name="network_4G_pure" translatable="false">4G</string>
<!-- Text for Network lte [CHAR LIMIT=NONE] -->
<string name="network_lte">LTE (recommended)</string>
+ <!-- Text for Network lte only [CHAR LIMIT=NONE] -->
+ <string name="network_lte_only">LTE only</string>
<!-- Text for Network 4g [CHAR LIMIT=NONE] -->
<string name="network_4G">4G (recommended)</string>
+ <!-- Text for Network 4g only [CHAR LIMIT=NONE] -->
+ <string name="network_4G_only">4G only</string>
<!-- Text for Network 3g [CHAR LIMIT=NONE] -->
<string name="network_3G" translatable="false">3G</string>
<!-- Text for Network 2g [CHAR LIMIT=NONE] -->
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:

View File

@ -0,0 +1,21 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: flawedworld <flawedworld@flawed.world>
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)

View File

@ -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|<bool name="config_carrier_volte_available">true</bool>|<bool name="config_carrier_volte_available">false</bool>|' overlay*/frameworks/base/core/res/res/values/config.xml &>/dev/null || true;
sed -i 's|<bool name="config_carrier_vt_available">true</bool>|<bool name="config_carrier_vt_available">false</bool>|' overlay*/frameworks/base/core/res/res/values/config.xml &>/dev/null || true;
sed -i 's|<bool name="config_device_volte_available">true</bool>|<bool name="config_device_volte_available">false</bool>|' overlay*/frameworks/base/core/res/res/values/config.xml &>/dev/null || true;
sed -i 's|<bool name="config_device_vt_available">true</bool>|<bool name="config_device_vt_available">false</bool>|' overlay*/frameworks/base/core/res/res/values/config.xml &>/dev/null || true;
sed -i 's|<bool name="config_dynamic_bind_ims">true</bool>|<bool name="config_dynamic_bind_ims">false</bool>|' 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|<bool name="config_device_wfc_ims_available">true</bool>|<bool name="config_device_wfc_ims_available">false</bool>|' overlay*/frameworks/base/core/res/res/values/config.xml &>/dev/null || true;
sed -i 's|<bool name="config_carrier_wfc_ims_available">true</bool>|<bool name="config_carrier_wfc_ims_available">false</bool>|' 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|<bool name="config_enableWifiDisplay">true</bool>|<bool name="config_enableWifiDisplay">false</bool>|' overlay*/frameworks/base/core/res/res/values/config.xml;
sed -i 's|<bool name="config_uiBlurEnabled">true</bool>|<bool name="config_uiBlurEnabled">false</bool>|' overlay*/frameworks/base/core/res/res/values/config.xml; #Disable UIBlur
#Disable IMS
if [ "$DOS_DEBLOBBER_REMOVE_IMS" = true ]; then
sed -i 's|<bool name="config_carrier_volte_available">true</bool>|<bool name="config_carrier_volte_available">false</bool>|' overlay*/frameworks/base/core/res/res/values/config.xml;
sed -i 's|<bool name="config_carrier_vt_available">true</bool>|<bool name="config_carrier_vt_available">false</bool>|' overlay*/frameworks/base/core/res/res/values/config.xml;
sed -i 's|<bool name="config_device_volte_available">true</bool>|<bool name="config_device_volte_available">false</bool>|' overlay*/frameworks/base/core/res/res/values/config.xml;
sed -i 's|<bool name="config_device_vt_available">true</bool>|<bool name="config_device_vt_available">false</bool>|' overlay*/frameworks/base/core/res/res/values/config.xml;
sed -i 's|<bool name="config_dynamic_bind_ims">true</bool>|<bool name="config_dynamic_bind_ims">false</bool>|' 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|<bool name="config_device_wfc_ims_available">true</bool>|<bool name="config_device_wfc_ims_available">false</bool>|' overlay*/frameworks/base/core/res/res/values/config.xml;
sed -i 's|<bool name="config_carrier_wfc_ims_available">true</bool>|<bool name="config_carrier_wfc_ims_available">false</bool>|' 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|<bool name="config_enableWifiDisplay">true</bool>|<bool name="config_enableWifiDisplay">false</bool>|' overlay*/frameworks/base/core/res/res/values/config.xml &>/dev/null || true;
sed -i 's|<bool name="config_uiBlurEnabled">true</bool>|<bool name="config_uiBlurEnabled">false</bool>|' 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[@]};

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;
}

View File

@ -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;

View File

@ -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