From 37f27bbe49e7d0cba175f0ce25d29b621c6b872c Mon Sep 17 00:00:00 2001 From: Aayush Gupta Date: Wed, 2 Jun 2021 05:47:08 +0200 Subject: [PATCH 01/12] LineageParts: Change references to /e/ OS in Trust ASB dialog Signed-off-by: Aayush Gupta --- res/values/strings.xml | 1 + src/org/lineageos/lineageparts/trust/TrustPreferences.java | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index e11fdc40..578e3f11 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -656,6 +656,7 @@ A few months out of date Out of date Security patches are released monthly by Google in cooperation with SoC vendors to address flaws which could be exploited by malicious apps to bypass security restrictions and cause permanent damage to your device. Patches made available by Google are applied every month on all supported devices, but patches to proprietary code can only be applied by your device\'s manufacturer. To keep your device safe make sure your LineageOS build is always up-to-date, and (if applicable) ensure your vendor image is updated to the latest one recommended by LineageOS. + Security patches are released monthly by Google in cooperation with SoC vendors to address flaws which could be exploited by malicious apps to bypass security restrictions and cause permanent damage to your device. Patches made available by Google are applied every month on all supported devices, but patches to proprietary code can only be applied by your device\'s manufacturer. To keep your device safe make sure your /e/ OS build is always up-to-date, and (if applicable) ensure your vendor image is updated to the latest one recommended by /e/ OS. Encryption Enabled Needs a secure lock screen diff --git a/src/org/lineageos/lineageparts/trust/TrustPreferences.java b/src/org/lineageos/lineageparts/trust/TrustPreferences.java index d48d7efc..484f267c 100644 --- a/src/org/lineageos/lineageparts/trust/TrustPreferences.java +++ b/src/org/lineageos/lineageparts/trust/TrustPreferences.java @@ -60,7 +60,7 @@ public class TrustPreferences extends SettingsPreferenceFragment { mSELinuxPref.setOnPreferenceClickListener(p -> showInfo(R.string.trust_feature_selinux_explain)); mSecurityPatchesPref.setOnPreferenceClickListener(p -> - showInfo(R.string.trust_feature_security_patches_explain)); + showInfo(R.string.trust_feature_security_patches_explain_e)); mEncryptionPref.setOnPreferenceClickListener(p -> showInfo(R.string.trust_feature_encryption_explain)); mSmsLimitPref.setOnPreferenceChangeListener((p, v) -> -- GitLab From f79ad16463515f4a82a4efa7c71b74969e1ac248 Mon Sep 17 00:00:00 2001 From: TheScarastic Date: Tue, 23 Aug 2022 06:54:58 +0000 Subject: [PATCH 02/12] LineageParts: Add /e/ contributors --- AndroidManifest.xml | 2 +- res/values/strings.xml | 7 +++ res/xml/contributors.xml | 44 +++++++++++++++++++ res/xml/contributors_cloud.xml | 9 ---- res/xml/parts_catalog.xml | 4 +- .../contributors/ContributorsSettings.java | 30 +++++++++++++ 6 files changed, 84 insertions(+), 12 deletions(-) create mode 100644 res/xml/contributors.xml delete mode 100644 res/xml/contributors_cloud.xml create mode 100644 src/org/lineageos/lineageparts/contributors/ContributorsSettings.java diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 35574d28..4a92a5a7 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -245,7 +245,7 @@ diff --git a/res/values/strings.xml b/res/values/strings.xml index 578e3f11..eabadd9b 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -683,4 +683,11 @@ Apps can send %s messages in 1 minute before requiring confirmation Apps are not allowed to send any messages without confirmation Always confirm + + + + + /e/ contributors + /e/ supporters + LineageOS contributors diff --git a/res/xml/contributors.xml b/res/xml/contributors.xml new file mode 100644 index 00000000..ba2581fd --- /dev/null +++ b/res/xml/contributors.xml @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + diff --git a/res/xml/contributors_cloud.xml b/res/xml/contributors_cloud.xml deleted file mode 100644 index 39fc4f55..00000000 --- a/res/xml/contributors_cloud.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/res/xml/parts_catalog.xml b/res/xml/parts_catalog.xml index d6b19c03..51c49a62 100644 --- a/res/xml/parts_catalog.xml +++ b/res/xml/parts_catalog.xml @@ -35,8 +35,8 @@ + android:fragment="org.lineageos.lineageparts.contributors.ContributorsSettings" + lineage:xmlRes="@xml/contributors" /> Date: Tue, 23 Aug 2022 08:57:56 +0000 Subject: [PATCH 03/12] LineageParts: Add microg to system settings --- AndroidManifest.xml | 28 ++++++++++++ res/drawable/ic_settings_microg.xml | 14 ++++++ res/values/strings.xml | 3 ++ res/xml/microg_settings.xml | 18 ++++++++ res/xml/parts_catalog.xml | 5 +++ .../lineageparts/microg/MicrogSettings.java | 45 +++++++++++++++++++ 6 files changed, 113 insertions(+) create mode 100644 res/drawable/ic_settings_microg.xml create mode 100644 res/xml/microg_settings.xml create mode 100644 src/org/lineageos/lineageparts/microg/MicrogSettings.java diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 4a92a5a7..7c8c9a81 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -217,6 +217,34 @@ android:resource="@string/summary_empty" /> + + + + + + + + + + + + + + + + + diff --git a/res/values/strings.xml b/res/values/strings.xml index eabadd9b..bbd80d10 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -690,4 +690,7 @@ /e/ contributors /e/ supporters LineageOS contributors + + + microG diff --git a/res/xml/microg_settings.xml b/res/xml/microg_settings.xml new file mode 100644 index 00000000..57a51ee5 --- /dev/null +++ b/res/xml/microg_settings.xml @@ -0,0 +1,18 @@ + + + + diff --git a/res/xml/parts_catalog.xml b/res/xml/parts_catalog.xml index 51c49a62..723f295e 100644 --- a/res/xml/parts_catalog.xml +++ b/res/xml/parts_catalog.xml @@ -95,4 +95,9 @@ android:title="@string/trust_title" android:fragment="org.lineageos.lineageparts.trust.TrustPreferences" lineage:xmlRes="@xml/trust_preferences" /> + + diff --git a/src/org/lineageos/lineageparts/microg/MicrogSettings.java b/src/org/lineageos/lineageparts/microg/MicrogSettings.java new file mode 100644 index 00000000..3862ba55 --- /dev/null +++ b/src/org/lineageos/lineageparts/microg/MicrogSettings.java @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2022 /e/ foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.lineageos.lineageparts.microg; + +import android.app.Activity; +import android.content.ComponentName; +import android.content.Intent; +import android.os.Bundle; + +import org.lineageos.lineageparts.R; +import org.lineageos.lineageparts.SettingsPreferenceFragment; + +public class MicrogSettings extends SettingsPreferenceFragment { + + private static final String MICROG_PACKAGE_NAME = "com.google.android.gms"; + private static final String MICROG_ACTIVITY_NAME = "org.microg.gms.ui.SettingsActivity"; + + @Override + public void onCreate(Bundle savedInstance) { + super.onCreate(savedInstance); + + Intent intent = new Intent(Intent.ACTION_MAIN); + intent.setComponent(new ComponentName(MICROG_PACKAGE_NAME, MICROG_ACTIVITY_NAME)); + startActivity(intent); + + Activity activity = getActivity(); + if (activity != null) { + activity.finish(); + } + } +} -- GitLab From 762b48300b80804288a2050265001ac8c50e4f6e Mon Sep 17 00:00:00 2001 From: TheScarastic Date: Tue, 23 Aug 2022 12:05:58 +0000 Subject: [PATCH 04/12] LineageParts: Add openkeychain --- AndroidManifest.xml | 22 +++++++++ res/values/strings.xml | 3 ++ res/xml/openkeychain_settings.xml | 18 ++++++++ res/xml/parts_catalog.xml | 5 +++ .../openkeychain/OpenKeychainSettings.java | 45 +++++++++++++++++++ 5 files changed, 93 insertions(+) create mode 100644 res/xml/openkeychain_settings.xml create mode 100644 src/org/lineageos/lineageparts/openkeychain/OpenKeychainSettings.java diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 7c8c9a81..da9211fa 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -245,6 +245,28 @@ android:resource="@string/summary_empty" /> + + + + + + + + + + + + microG + + + OpenKeychain diff --git a/res/xml/openkeychain_settings.xml b/res/xml/openkeychain_settings.xml new file mode 100644 index 00000000..8517cf10 --- /dev/null +++ b/res/xml/openkeychain_settings.xml @@ -0,0 +1,18 @@ + + + + diff --git a/res/xml/parts_catalog.xml b/res/xml/parts_catalog.xml index 723f295e..54997587 100644 --- a/res/xml/parts_catalog.xml +++ b/res/xml/parts_catalog.xml @@ -100,4 +100,9 @@ android:title="@string/microg_title" android:fragment="org.lineageos.lineageparts.microg.MicrogSettings" lineage:xmlRes="@xml/microg_settings" /> + + diff --git a/src/org/lineageos/lineageparts/openkeychain/OpenKeychainSettings.java b/src/org/lineageos/lineageparts/openkeychain/OpenKeychainSettings.java new file mode 100644 index 00000000..0990a7a1 --- /dev/null +++ b/src/org/lineageos/lineageparts/openkeychain/OpenKeychainSettings.java @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2022 /e/ foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.lineageos.lineageparts.openkeychain; + +import android.app.Activity; +import android.content.ComponentName; +import android.content.Intent; +import android.os.Bundle; + +import org.lineageos.lineageparts.R; +import org.lineageos.lineageparts.SettingsPreferenceFragment; + +public class OpenKeychainSettings extends SettingsPreferenceFragment { + + private static final String OPENKEYCHAIN_PACKAGE_NAME = "org.sufficientlysecure.keychain"; + private static final String OPENKEYCHAIN_ACTIVITY_NAME = "org.sufficientlysecure.keychain.ui.MainActivity"; + + @Override + public void onCreate(Bundle savedInstance) { + super.onCreate(savedInstance); + + Intent intent = new Intent(Intent.ACTION_MAIN); + intent.setComponent(new ComponentName(OPENKEYCHAIN_PACKAGE_NAME, OPENKEYCHAIN_ACTIVITY_NAME)); + startActivity(intent); + + Activity activity = getActivity(); + if (activity != null) { + activity.finish(); + } + } +} -- GitLab From ebc764ba8f53916e8665fcd2984603b72ac75bf2 Mon Sep 17 00:00:00 2001 From: Aayush Gupta Date: Wed, 2 Jun 2021 05:58:10 +0200 Subject: [PATCH 05/12] LineageParts: Remove LineageOS stats collection support completely Signed-off-by: Aayush Gupta Signed-off-by: althafvly --- AndroidManifest.xml | 22 -- proguard.flags | 1 - res/values/config.xml | 3 - res/values/strings.xml | 22 -- res/xml/anonymous_stats.xml | 23 -- res/xml/parts_catalog.xml | 5 - res/xml/preview_data.xml | 42 ---- res/xml/trust_preferences.xml | 3 - .../lineagestats/AnonymousStats.java | 63 ------ .../lineagestats/PreviewData.java | 39 ---- .../lineagestats/ReportingService.java | 73 ------- .../lineagestats/ReportingServiceManager.java | 96 --------- .../lineagestats/StatsUploadJobService.java | 200 ------------------ .../lineageparts/lineagestats/Utilities.java | 105 --------- 14 files changed, 697 deletions(-) delete mode 100644 res/xml/anonymous_stats.xml delete mode 100644 res/xml/preview_data.xml delete mode 100644 src/org/lineageos/lineageparts/lineagestats/AnonymousStats.java delete mode 100644 src/org/lineageos/lineageparts/lineagestats/PreviewData.java delete mode 100644 src/org/lineageos/lineageparts/lineagestats/ReportingService.java delete mode 100644 src/org/lineageos/lineageparts/lineagestats/ReportingServiceManager.java delete mode 100644 src/org/lineageos/lineageparts/lineagestats/StatsUploadJobService.java delete mode 100644 src/org/lineageos/lineageparts/lineagestats/Utilities.java diff --git a/AndroidManifest.xml b/AndroidManifest.xml index da9211fa..c0116f66 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -319,28 +319,6 @@ android:resource="@string/summary_empty" /> - - - - - - - - - - - - diff --git a/proguard.flags b/proguard.flags index cfbdae39..8991f2bb 100644 --- a/proguard.flags +++ b/proguard.flags @@ -11,7 +11,6 @@ -keep class org.lineageos.lineageparts.gestures.* -keep class org.lineageos.lineageparts.hardware.* -keep class org.lineageos.lineageparts.input.* --keep class org.lineageos.lineageparts.lineagestats.* -keep class org.lineageos.lineageparts.livedisplay.* -keep class org.lineageos.lineageparts.notificationlight.* -keep class org.lineageos.lineageparts.power.* diff --git a/res/values/config.xml b/res/values/config.xml index adfcaa48..4c575f2f 100644 --- a/res/values/config.xml +++ b/res/values/config.xml @@ -6,9 +6,6 @@ --> - - https://stats.lineageos.org/api/v1/stats - diff --git a/res/values/strings.xml b/res/values/strings.xml index 39139220..2a7c1ba9 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -541,28 +541,6 @@ Total commits: %2$s

Last update: %3$s]]> - - - LineageOS statistics - Help make LineageOS better by opting into anonymous statistics reporting - About - Opting into LineageOS Statistics will allow non-personal data to be submitted to the - developers of LineageOS to track unique installations across devices. The information submitted includes an unique identifier, - which does not compromise your privacy or personal data. The data is submitted during each boot.\n\nFor an example of the data that is submitted, tap on Preview Data. - Enable reporting - Preview data - View stats - Learn more - - - Unique ID - Device - Version - Country - Carrier - Stats collection - Allow installation metrics and device statistics to be collected - Auto-rotate screen Rotation settings diff --git a/res/xml/anonymous_stats.xml b/res/xml/anonymous_stats.xml deleted file mode 100644 index 898bc746..00000000 --- a/res/xml/anonymous_stats.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - diff --git a/res/xml/parts_catalog.xml b/res/xml/parts_catalog.xml index 54997587..c23b8f48 100644 --- a/res/xml/parts_catalog.xml +++ b/res/xml/parts_catalog.xml @@ -64,11 +64,6 @@ android:fragment="org.lineageos.lineageparts.statusbar.StatusBarSettings" lineage:xmlRes="@xml/status_bar_settings" /> - - - - - - - - - - - - - - - - - - diff --git a/res/xml/trust_preferences.xml b/res/xml/trust_preferences.xml index 021533b8..5767cf40 100644 --- a/res/xml/trust_preferences.xml +++ b/res/xml/trust_preferences.xml @@ -36,9 +36,6 @@ android:entryValues="@array/trust_restrict_usb_values" android:defaultValue="0" /> - - = QUEUE_MAX_THRESHOLD) { - lastId = 1; - } else { - lastId += 1; - } - setLastJobId(context, lastId); - return lastId; - } -} diff --git a/src/org/lineageos/lineageparts/lineagestats/PreviewData.java b/src/org/lineageos/lineageparts/lineagestats/PreviewData.java deleted file mode 100644 index 32e44137..00000000 --- a/src/org/lineageos/lineageparts/lineagestats/PreviewData.java +++ /dev/null @@ -1,39 +0,0 @@ -/* - * SPDX-FileCopyrightText: 2012 The CyanogenMod Project - * SPDX-FileCopyrightText: 2017-2023 The LineageOS Project - * SPDX-License-Identifier: Apache-2.0 - */ - -package org.lineageos.lineageparts.lineagestats; - -import android.content.Context; -import android.os.Bundle; - -import androidx.preference.PreferenceScreen; - -import org.lineageos.lineageparts.R; -import org.lineageos.lineageparts.SettingsPreferenceFragment; - -public class PreviewData extends SettingsPreferenceFragment { - private static final String UNIQUE_ID = "preview_id"; - private static final String DEVICE = "preview_device"; - private static final String VERSION = "preview_version"; - private static final String COUNTRY = "preview_country"; - private static final String CARRIER = "preview_carrier"; - - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - - addPreferencesFromResource(R.xml.preview_data); - - final PreferenceScreen prefSet = getPreferenceScreen(); - final Context context = requireActivity(); - - prefSet.findPreference(UNIQUE_ID).setSummary(Utilities.getUniqueID(context)); - prefSet.findPreference(DEVICE).setSummary(Utilities.getDevice()); - prefSet.findPreference(VERSION).setSummary(Utilities.getModVersion()); - prefSet.findPreference(COUNTRY).setSummary(Utilities.getCountryCode(context)); - prefSet.findPreference(CARRIER).setSummary(Utilities.getCarrier(context)); - } -} diff --git a/src/org/lineageos/lineageparts/lineagestats/ReportingService.java b/src/org/lineageos/lineageparts/lineagestats/ReportingService.java deleted file mode 100644 index 7455b500..00000000 --- a/src/org/lineageos/lineageparts/lineagestats/ReportingService.java +++ /dev/null @@ -1,73 +0,0 @@ -/* - * SPDX-FileCopyrightText: 2015 The CyanogenMod Project - * SPDX-FileCopyrightText: 2017-2022 The LineageOS Project - * SPDX-License-Identifier: Apache-2.0 - */ - -package org.lineageos.lineageparts.lineagestats; - -import android.app.IntentService; -import android.app.job.JobInfo; -import android.app.job.JobScheduler; -import android.content.ComponentName; -import android.content.Context; -import android.content.Intent; -import android.os.PersistableBundle; -import android.util.Log; - -public class ReportingService extends IntentService { - /* package */ static final String TAG = "LineageStats"; - private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG); - - public ReportingService() { - super(ReportingService.class.getSimpleName()); - } - - @Override - protected void onHandleIntent(Intent intent) { - JobScheduler js = getSystemService(JobScheduler.class); - - Context context = getApplicationContext(); - - String deviceId = Utilities.getUniqueID(context); - String deviceName = Utilities.getDevice(); - String deviceVersion = Utilities.getModVersion(); - String deviceCountry = Utilities.getCountryCode(context); - String deviceCarrier = Utilities.getCarrier(context); - String deviceCarrierId = Utilities.getCarrierId(context); - - final int lineageOldJobId = AnonymousStats.getLastJobId(context); - final int lineageOrgJobId = AnonymousStats.getNextJobId(context); - - if (DEBUG) Log.d(TAG, "scheduling job id: " + lineageOrgJobId); - - PersistableBundle lineageBundle = new PersistableBundle(); - lineageBundle.putString(StatsUploadJobService.KEY_DEVICE_NAME, deviceName); - lineageBundle.putString(StatsUploadJobService.KEY_UNIQUE_ID, deviceId); - lineageBundle.putString(StatsUploadJobService.KEY_VERSION, deviceVersion); - lineageBundle.putString(StatsUploadJobService.KEY_COUNTRY, deviceCountry); - lineageBundle.putString(StatsUploadJobService.KEY_CARRIER, deviceCarrier); - lineageBundle.putString(StatsUploadJobService.KEY_CARRIER_ID, deviceCarrierId); - lineageBundle.putLong(StatsUploadJobService.KEY_TIMESTAMP, System.currentTimeMillis()); - - // set job types - lineageBundle.putInt(StatsUploadJobService.KEY_JOB_TYPE, - StatsUploadJobService.JOB_TYPE_LINEAGEORG); - - // schedule lineage stats upload - js.schedule(new JobInfo.Builder(lineageOrgJobId, new ComponentName(getPackageName(), - StatsUploadJobService.class.getName())) - .setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY) - .setMinimumLatency(1000) - .setExtras(lineageBundle) - .setPersisted(true) - .build()); - - // cancel old job in case it didn't run yet - js.cancel(lineageOldJobId); - - // reschedule - AnonymousStats.updateLastSynced(this); - ReportingServiceManager.setAlarm(this); - } -} diff --git a/src/org/lineageos/lineageparts/lineagestats/ReportingServiceManager.java b/src/org/lineageos/lineageparts/lineagestats/ReportingServiceManager.java deleted file mode 100644 index 56989537..00000000 --- a/src/org/lineageos/lineageparts/lineagestats/ReportingServiceManager.java +++ /dev/null @@ -1,96 +0,0 @@ -/* - * SPDX-FileCopyrightText: 2012 The CyanogenMod Project - * SPDX-FileCopyrightText: 2017-2023 The LineageOS Project - * SPDX-License-Identifier: Apache-2.0 - */ - -package org.lineageos.lineageparts.lineagestats; - -import android.app.AlarmManager; -import android.app.PendingIntent; -import android.content.BroadcastReceiver; -import android.content.Context; -import android.content.Intent; -import android.content.SharedPreferences; -import android.os.UserHandle; -import android.util.Log; - -public class ReportingServiceManager extends BroadcastReceiver { - private static final long MILLIS_PER_HOUR = 60L * 60L * 1000L; - private static final long MILLIS_PER_DAY = 24L * MILLIS_PER_HOUR; - private static final long UPDATE_INTERVAL = 1L * MILLIS_PER_DAY; - - private static final String TAG = ReportingServiceManager.class.getSimpleName(); - - public static final String ACTION_LAUNCH_SERVICE = - "org.lineageos.lineageparts.action.TRIGGER_REPORT_METRICS"; - public static final String EXTRA_FORCE = "force"; - - @Override - public void onReceive(Context context, Intent intent) { - if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)) { - setAlarm(context); - } else if (intent.getAction().equals(ACTION_LAUNCH_SERVICE)){ - launchService(context, intent.getBooleanExtra(EXTRA_FORCE, false)); - } - } - - public static void setAlarm(Context context) { - SharedPreferences prefs = AnonymousStats.getPreferences(context); - if (prefs.contains(AnonymousStats.ANONYMOUS_OPT_IN)) { - migrate(context, prefs); - } - if (!Utilities.isStatsCollectionEnabled(context)) { - return; - } - long lastSynced = prefs.getLong(AnonymousStats.ANONYMOUS_LAST_CHECKED, 0); - if (lastSynced == 0) { - launchService(context, true); // service will reschedule the next alarm - return; - } - long millisFromNow = (lastSynced + UPDATE_INTERVAL) - System.currentTimeMillis(); - - Intent intent = new Intent(ACTION_LAUNCH_SERVICE); - intent.setClass(context, ReportingServiceManager.class); - - AlarmManager alarmManager = context.getSystemService(AlarmManager.class); - alarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + millisFromNow, - PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_IMMUTABLE)); - Log.d(TAG, "Next sync attempt in : " - + (millisFromNow / MILLIS_PER_HOUR) + " hours"); - } - - public static void launchService(Context context, boolean force) { - SharedPreferences prefs = AnonymousStats.getPreferences(context); - - if (!Utilities.isStatsCollectionEnabled(context)) { - return; - } - - if (!force) { - long lastSynced = prefs.getLong(AnonymousStats.ANONYMOUS_LAST_CHECKED, 0); - if (lastSynced == 0) { - setAlarm(context); - return; - } - long timeElapsed = System.currentTimeMillis() - lastSynced; - if (timeElapsed < UPDATE_INTERVAL) { - long timeLeft = UPDATE_INTERVAL - timeElapsed; - Log.d(TAG, "Waiting for next sync : " - + timeLeft / MILLIS_PER_HOUR + " hours"); - return; - } - } - - Intent intent = new Intent(); - intent.setClass(context, ReportingService.class); - context.startServiceAsUser(intent, UserHandle.SYSTEM); - } - - private static void migrate(Context context, SharedPreferences prefs) { - Utilities.setStatsCollectionEnabled(context, - prefs.getBoolean(AnonymousStats.ANONYMOUS_OPT_IN, true)); - prefs.edit().remove(AnonymousStats.ANONYMOUS_OPT_IN).commit(); - } - -} diff --git a/src/org/lineageos/lineageparts/lineagestats/StatsUploadJobService.java b/src/org/lineageos/lineageparts/lineagestats/StatsUploadJobService.java deleted file mode 100644 index e19c2e55..00000000 --- a/src/org/lineageos/lineageparts/lineagestats/StatsUploadJobService.java +++ /dev/null @@ -1,200 +0,0 @@ -/* - * SPDX-FileCopyrightText: 2015 The CyanogenMod Project - * SPDX-FileCopyrightText: 2017-2023 The LineageOS project - * SPDX-License-Identifier: Apache-2.0 - */ - -package org.lineageos.lineageparts.lineagestats; - -import android.app.job.JobParameters; -import android.app.job.JobService; -import android.net.Uri; -import android.os.Handler; -import android.os.Looper; -import android.os.PersistableBundle; -import android.util.ArrayMap; -import android.util.Log; -import org.lineageos.lineageparts.R; -import org.json.JSONException; -import org.json.JSONObject; - -import java.io.BufferedInputStream; -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.io.OutputStream; -import java.net.HttpURLConnection; -import java.net.URL; -import java.nio.charset.StandardCharsets; -import java.util.Collections; -import java.util.Map; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; - -public class StatsUploadJobService extends JobService { - - private static final String TAG = StatsUploadJobService.class.getSimpleName(); - private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG); - - public static final String KEY_JOB_TYPE = "job_type"; - public static final int JOB_TYPE_LINEAGEORG = 1; - - public static final String KEY_UNIQUE_ID = "uniqueId"; - public static final String KEY_DEVICE_NAME = "deviceName"; - public static final String KEY_VERSION = "version"; - public static final String KEY_COUNTRY = "country"; - public static final String KEY_CARRIER = "carrier"; - public static final String KEY_CARRIER_ID = "carrierId"; - public static final String KEY_TIMESTAMP = "timeStamp"; - - private final Map mCurrentJobs - = Collections.synchronizedMap(new ArrayMap<>()); - - @Override - public boolean onStartJob(JobParameters jobParameters) { - if (DEBUG) - Log.d(TAG, "onStartJob() called with " + "jobParameters = [" + jobParameters + "]"); - - if (!Utilities.isStatsCollectionEnabled(this)) { - return false; - } - - final StatsUploadTask uploadTask = new StatsUploadTask(jobParameters); - mCurrentJobs.put(jobParameters, uploadTask); - uploadTask.execute(); - return true; - } - - @Override - public boolean onStopJob(JobParameters jobParameters) { - if (DEBUG) - Log.d(TAG, "onStopJob() called with " + "jobParameters = [" + jobParameters + "]"); - - final StatsUploadTask cancelledJob; - cancelledJob = mCurrentJobs.remove(jobParameters); - - if (cancelledJob != null) { - // cancel the ongoing background task - cancelledJob.cancel(); - return true; // reschedule - } - - return false; - } - - private class StatsUploadTask { - - private final JobParameters mJobParams; - private boolean mCancelled; - - public StatsUploadTask(JobParameters jobParams) { - this.mJobParams = jobParams; - } - - public void execute() { - ExecutorService executor = Executors.newSingleThreadExecutor(); - Handler handler = new Handler(Looper.getMainLooper()); - executor.execute(() -> { - PersistableBundle extras = mJobParams.getExtras(); - - String deviceId = extras.getString(KEY_UNIQUE_ID); - String deviceName = extras.getString(KEY_DEVICE_NAME); - String deviceVersion = extras.getString(KEY_VERSION); - String deviceCountry = extras.getString(KEY_COUNTRY); - String deviceCarrier = extras.getString(KEY_CARRIER); - String deviceCarrierId = extras.getString(KEY_CARRIER_ID); - - boolean success = false; - int jobType = extras.getInt(KEY_JOB_TYPE, -1); - if (!mCancelled) { - switch (jobType) { - case JOB_TYPE_LINEAGEORG: - try { - JSONObject json = buildStatsRequest(deviceId, deviceName, - deviceVersion, deviceCountry, deviceCarrier, - deviceCarrierId); - success = uploadToLineage(json); - } catch (IOException | JSONException e) { - Log.e(TAG, "Could not upload stats checkin to community server", e); - } - break; - } - } - if (DEBUG) - Log.d(TAG, "job id " + mJobParams.getJobId() + ", has finished with success=" - + success); - - if (!mCancelled) { - final boolean finalResult = success; - handler.post(() -> { - mCurrentJobs.remove(mJobParams); - jobFinished(mJobParams, !finalResult); - }); - } - }); - } - - public void cancel() { - mCancelled = true; - } - } - - private JSONObject buildStatsRequest(String deviceId, String deviceName, String deviceVersion, - String deviceCountry, String deviceCarrier, - String deviceCarrierId) throws JSONException { - JSONObject request = new JSONObject(); - request.put("device_hash", deviceId); - request.put("device_name", deviceName); - request.put("device_version", deviceVersion); - request.put("device_country", deviceCountry); - request.put("device_carrier", deviceCarrier); - request.put("device_carrier_id", deviceCarrierId); - return request; - } - - private boolean uploadToLineage(JSONObject json) throws IOException { - final Uri uri = Uri.parse(getString(R.string.stats_lineage_url)); - URL url = new URL(uri.toString()); - HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); - try { - urlConnection.setInstanceFollowRedirects(true); - urlConnection.setDoOutput(true); - urlConnection.setDoInput(true); - urlConnection.setRequestProperty("Content-Type", "application/json; charset=UTF-8"); - - OutputStream os = urlConnection.getOutputStream(); - os.write(json.toString().getBytes(StandardCharsets.UTF_8)); - os.close(); - - final int responseCode = urlConnection.getResponseCode(); - if (DEBUG) Log.d(TAG, "lineage server response code=" + responseCode); - final boolean success = responseCode == HttpURLConnection.HTTP_OK; - if (!success) { - Log.w(TAG, "failed sending, server returned: " + getResponse(urlConnection)); - } - return success; - } finally { - urlConnection.disconnect(); - } - - } - - private String getResponse(HttpURLConnection httpUrlConnection) - throws IOException { - InputStream responseStream = new BufferedInputStream(httpUrlConnection.getErrorStream()); - - BufferedReader responseStreamReader = new BufferedReader( - new InputStreamReader(responseStream)); - String line = ""; - StringBuilder stringBuilder = new StringBuilder(); - while ((line = responseStreamReader.readLine()) != null) { - stringBuilder.append(line).append("\n"); - } - responseStreamReader.close(); - responseStream.close(); - - return stringBuilder.toString(); - } - -} diff --git a/src/org/lineageos/lineageparts/lineagestats/Utilities.java b/src/org/lineageos/lineageparts/lineagestats/Utilities.java deleted file mode 100644 index ce155c69..00000000 --- a/src/org/lineageos/lineageparts/lineagestats/Utilities.java +++ /dev/null @@ -1,105 +0,0 @@ -/* - * SPDX-FileCopyrightText: 2012 The CyanogenMod Project - * SPDX-FileCopyrightText: 2021-2022 The LineageOS Project - * SPDX-License-Identifier: Apache-2.0 - */ - -package org.lineageos.lineageparts.lineagestats; - -import android.content.Context; -import android.os.Build; -import android.os.SystemProperties; -import android.provider.Settings; -import android.telephony.TelephonyManager; -import android.text.TextUtils; - -import lineageos.providers.LineageSettings; - -import java.math.BigInteger; -import java.security.MessageDigest; -import java.util.Locale; - -public class Utilities { - public static String getUniqueID(Context context) { - final String id = Settings.Secure.getString(context.getContentResolver(), - Settings.Secure.ANDROID_ID); - return digest(context.getPackageName() + id); - } - - public static String getCarrier(Context context) { - TelephonyManager tm = context.getSystemService(TelephonyManager.class); - String carrier = tm.getNetworkOperatorName(); - if (TextUtils.isEmpty(carrier)) { - String simOperator = tm.getSimOperatorName(); - if (!TextUtils.isEmpty(simOperator)) { - carrier = simOperator; - } else { - carrier = "Unknown"; - } - } - return carrier; - } - - public static String getCarrierId(Context context) { - TelephonyManager tm = context.getSystemService(TelephonyManager.class); - String carrierId = tm.getNetworkOperator(); - if (TextUtils.isEmpty(carrierId)) { - carrierId = "0"; - } - return carrierId; - } - - public static String getCountryCode(Context context) { - TelephonyManager tm = context.getSystemService(TelephonyManager.class); - String countryCode = tm.getNetworkCountryIso().toUpperCase(); - if (TextUtils.isEmpty(countryCode) || isCdmaPhone(tm)) { - String localeCountryCode = Locale.getDefault().getCountry(); - if (localeCountryCode.length() == 2) { - countryCode = localeCountryCode; - } else { - countryCode = "Unknown"; - } - } - return countryCode; - } - - public static String getDevice() { - return SystemProperties.get("ro.lineage.device", Build.PRODUCT); - } - - public static String getModVersion() { - return SystemProperties.get("ro.lineage.version", Build.DISPLAY); - } - - public static String digest(String input) { - try { - MessageDigest md = MessageDigest.getInstance("SHA-256"); - return new BigInteger(1, md.digest(input.getBytes())).toString(16).toUpperCase(); - } catch (Exception e) { - return null; - } - } - - /** - * Check to see if global stats are enabled. - * @return Whether or not stats collection is enabled. - */ - public static boolean isStatsCollectionEnabled(Context context) { - return LineageSettings.Secure.getInt(context.getContentResolver(), - LineageSettings.Secure.STATS_COLLECTION, 1) != 0; - } - - /** - * Enabled or disable stats collection - * @param enabled Boolean that sets collection being enabled. - */ - public static void setStatsCollectionEnabled(Context context, boolean enabled) { - int enable = (enabled) ? 1 : 0; - LineageSettings.Secure.putInt(context.getContentResolver(), - LineageSettings.Secure.STATS_COLLECTION, enable); - } - - private static boolean isCdmaPhone(TelephonyManager tm) { - return tm != null && tm.getPhoneType() == TelephonyManager.PHONE_TYPE_CDMA; - } -} -- GitLab From e300a2b72561d3846167e5b9ea13f79ff54a2da2 Mon Sep 17 00:00:00 2001 From: Yash Garg Date: Mon, 24 Oct 2022 07:11:23 +0000 Subject: [PATCH 06/12] Remove split screen option from recents long press actions (S) --- res/values/arrays.xml | 2 -- src/org/lineageos/lineageparts/input/ButtonSettings.java | 3 +-- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/res/values/arrays.xml b/res/values/arrays.xml index 265ca28e..a8b03e57 100644 --- a/res/values/arrays.xml +++ b/res/values/arrays.xml @@ -71,7 +71,6 @@ @string/hardware_keys_action_launch_camera @string/hardware_keys_action_sleep @string/hardware_keys_action_last_app - @string/hardware_keys_action_split_screen @string/hardware_keys_action_kill_app @@ -85,7 +84,6 @@ 6 7 8 - 9 10 diff --git a/src/org/lineageos/lineageparts/input/ButtonSettings.java b/src/org/lineageos/lineageparts/input/ButtonSettings.java index 473ef405..57eddd8d 100644 --- a/src/org/lineageos/lineageparts/input/ButtonSettings.java +++ b/src/org/lineageos/lineageparts/input/ButtonSettings.java @@ -213,8 +213,7 @@ public class ButtonSettings extends SettingsPreferenceFragment org.lineageos.platform.internal.R.integer.config_longPressOnHomeBehavior)); Action defaultHomeDoubleTapAction = Action.fromIntSafe(res.getInteger( org.lineageos.platform.internal.R.integer.config_doubleTapOnHomeBehavior)); - Action defaultAppSwitchLongPressAction = Action.fromIntSafe(res.getInteger( - org.lineageos.platform.internal.R.integer.config_longPressOnAppSwitchBehavior)); + Action defaultAppSwitchLongPressAction = Action.fromIntSafe(0); Action backLongPressAction = Action.fromSettings(resolver, LineageSettings.System.KEY_BACK_LONG_PRESS_ACTION, defaultBackLongPressAction); -- GitLab From ea52f5cff781725a2e20fe6485f644090d4f752d Mon Sep 17 00:00:00 2001 From: Yash Garg Date: Fri, 11 Nov 2022 12:49:15 +0000 Subject: [PATCH 07/12] ButtonSettings: use config_longPressOnAppSwitchBehavior key for default action (S) --- src/org/lineageos/lineageparts/input/ButtonSettings.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/org/lineageos/lineageparts/input/ButtonSettings.java b/src/org/lineageos/lineageparts/input/ButtonSettings.java index 57eddd8d..473ef405 100644 --- a/src/org/lineageos/lineageparts/input/ButtonSettings.java +++ b/src/org/lineageos/lineageparts/input/ButtonSettings.java @@ -213,7 +213,8 @@ public class ButtonSettings extends SettingsPreferenceFragment org.lineageos.platform.internal.R.integer.config_longPressOnHomeBehavior)); Action defaultHomeDoubleTapAction = Action.fromIntSafe(res.getInteger( org.lineageos.platform.internal.R.integer.config_doubleTapOnHomeBehavior)); - Action defaultAppSwitchLongPressAction = Action.fromIntSafe(0); + Action defaultAppSwitchLongPressAction = Action.fromIntSafe(res.getInteger( + org.lineageos.platform.internal.R.integer.config_longPressOnAppSwitchBehavior)); Action backLongPressAction = Action.fromSettings(resolver, LineageSettings.System.KEY_BACK_LONG_PRESS_ACTION, defaultBackLongPressAction); -- GitLab From f38e3368e978a8029de134e8a4b0b2de976c04ba Mon Sep 17 00:00:00 2001 From: Yash Garg Date: Thu, 1 Dec 2022 10:09:40 +0000 Subject: [PATCH 08/12] Set app switch action to nothing if it's set to split screen (S) --- src/org/lineageos/lineageparts/BootReceiver.java | 1 + .../lineageos/lineageparts/input/ButtonSettings.java | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/src/org/lineageos/lineageparts/BootReceiver.java b/src/org/lineageos/lineageparts/BootReceiver.java index b490e2cd..a27ab791 100644 --- a/src/org/lineageos/lineageparts/BootReceiver.java +++ b/src/org/lineageos/lineageparts/BootReceiver.java @@ -37,6 +37,7 @@ public class BootReceiver extends BroadcastReceiver { setRestoredTunable(ctx); } + ButtonSettings.setLongPressActionToNothing(ctx); ButtonSettings.restoreKeySwapper(ctx); TouchscreenGestureSettings.restoreTouchscreenGestureStates(ctx); diff --git a/src/org/lineageos/lineageparts/input/ButtonSettings.java b/src/org/lineageos/lineageparts/input/ButtonSettings.java index 473ef405..d340836d 100644 --- a/src/org/lineageos/lineageparts/input/ButtonSettings.java +++ b/src/org/lineageos/lineageparts/input/ButtonSettings.java @@ -827,6 +827,18 @@ public class ButtonSettings extends SettingsPreferenceFragment preferences.getBoolean(KEY_SWAP_CAPACITIVE_KEYS, false)); } + public static void setLongPressActionToNothing(Context context) { + final int action = LineageSettings.System.getIntForUser(context.getContentResolver(), + LineageSettings.System.KEY_APP_SWITCH_LONG_PRESS_ACTION, context.getResources().getInteger( + org.lineageos.platform.internal.R.integer.config_longPressOnAppSwitchBehavior), + UserHandle.USER_CURRENT); + + if (action == Action.SPLIT_SCREEN.ordinal()) { + LineageSettings.System.putInt(context.getContentResolver(), + LineageSettings.System.KEY_APP_SWITCH_LONG_PRESS_ACTION, Action.NOTHING.ordinal()); + } + } + @Override public boolean onPreferenceTreeClick(Preference preference) { if (preference == mSwapVolumeButtons) { -- GitLab From 2bc6612b55bdbfc3f27e021932418f5ee3dbb40b Mon Sep 17 00:00:00 2001 From: Mohammed Althaf Thayyil Date: Fri, 30 Jun 2023 05:41:36 +0000 Subject: [PATCH 09/12] LineageParts: Set sentry user id on boot --- .../lineageos/lineageparts/BootReceiver.java | 4 ++ .../lineageos/lineageparts/utils/EUtils.java | 38 +++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 src/org/lineageos/lineageparts/utils/EUtils.java diff --git a/src/org/lineageos/lineageparts/BootReceiver.java b/src/org/lineageos/lineageparts/BootReceiver.java index a27ab791..7e77e9b6 100644 --- a/src/org/lineageos/lineageparts/BootReceiver.java +++ b/src/org/lineageos/lineageparts/BootReceiver.java @@ -18,6 +18,7 @@ import androidx.preference.PreferenceManager; import org.lineageos.lineageparts.contributors.ContributorsCloudFragment; import org.lineageos.lineageparts.gestures.TouchscreenGestureSettings; import org.lineageos.lineageparts.input.ButtonSettings; +import org.lineageos.lineageparts.utils.EUtils; public class BootReceiver extends BroadcastReceiver { @@ -31,6 +32,9 @@ public class BootReceiver extends BroadcastReceiver { return; } + // Set sentry id on boot + EUtils.loadSentryID(ctx); + if (!hasRestoredTunable(ctx)) { /* Restore the hardware tunable values */ ButtonSettings.restoreKeyDisabler(ctx); diff --git a/src/org/lineageos/lineageparts/utils/EUtils.java b/src/org/lineageos/lineageparts/utils/EUtils.java new file mode 100644 index 00000000..73ce5d4f --- /dev/null +++ b/src/org/lineageos/lineageparts/utils/EUtils.java @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2023 MURENA SAS + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package org.lineageos.lineageparts.utils; + +import android.content.Context; +import android.os.UserHandle; +import android.provider.Settings; + +import java.util.UUID; + + +public class EUtils { + + public static void loadSentryID(Context context) { + String sentryId = Settings.Secure.getStringForUser( + context.getContentResolver(), Settings.Secure.SENTRY_USERID, + UserHandle.USER_CURRENT); + if (sentryId == null) { + UUID uuid = UUID.randomUUID(); + Settings.Secure.putStringForUser(context.getContentResolver(), + Settings.Secure.SENTRY_USERID, uuid.toString(), + UserHandle.USER_CURRENT); + } + } +} -- GitLab From 286354af16bccf275eee9fc006b2dd906be9d11f Mon Sep 17 00:00:00 2001 From: Mohammed Althaf Thayyil Date: Thu, 28 Mar 2024 05:45:38 +0000 Subject: [PATCH 10/12] LineageParts: Enable long press for torch by-default --- res/xml/button_settings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/res/xml/button_settings.xml b/res/xml/button_settings.xml index 99e1af8b..1e49cb98 100644 --- a/res/xml/button_settings.xml +++ b/res/xml/button_settings.xml @@ -109,7 +109,7 @@ android:key="torch_long_press_power_gesture" android:title="@string/torch_long_press_power_gesture_title" android:summary="@string/torch_long_press_power_gesture_desc" - android:defaultValue="false" + android:defaultValue="true" lineage:requiresConfig="@*android:bool/config_supportLongPressPowerWhenNonInteractive" /> Date: Thu, 13 Jun 2024 16:03:01 +0000 Subject: [PATCH 11/12] Parts: Disable advance reboot for parental control --- .../lineageparts/input/PowerMenuActions.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/org/lineageos/lineageparts/input/PowerMenuActions.java b/src/org/lineageos/lineageparts/input/PowerMenuActions.java index b7259448..c3d63cc7 100644 --- a/src/org/lineageos/lineageparts/input/PowerMenuActions.java +++ b/src/org/lineageos/lineageparts/input/PowerMenuActions.java @@ -10,6 +10,7 @@ import android.Manifest; import android.content.Context; import android.content.pm.UserInfo; import android.os.Bundle; +import android.os.SystemProperties; import android.os.UserHandle; import android.os.UserManager; import android.provider.Settings; @@ -30,6 +31,7 @@ import org.lineageos.lineageparts.utils.TelephonyUtils; import java.util.List; import lineageos.app.LineageGlobalActions; +import lineageos.providers.LineageSettings; import static org.lineageos.internal.util.PowerMenuConstants.*; @@ -37,8 +39,10 @@ public class PowerMenuActions extends SettingsPreferenceFragment { final static String TAG = "PowerMenuActions"; private static final String CATEGORY_POWER_MENU_ITEMS = "power_menu_items"; + private static final String CATEGORY_ADVANCED_ITEMS = "advanced"; private PreferenceCategory mPowerMenuItemsCategory; + private PreferenceCategory mAdvancedItemsCategory; private CheckBoxPreference mScreenshotPref; private CheckBoxPreference mAirplanePref; @@ -67,6 +71,13 @@ public class PowerMenuActions extends SettingsPreferenceFragment { mEmergencyAffordanceManager = new EmergencyAffordanceManager(mContext); mPowerMenuItemsCategory = findPreference(CATEGORY_POWER_MENU_ITEMS); + mAdvancedItemsCategory = findPreference(CATEGORY_ADVANCED_ITEMS); + + boolean isMdmActive = SystemProperties.getInt("persist.sys.mdm_active", 0) == 1; + if (isMdmActive && getPreferenceScreen() != null) { + LineageSettings.Secure.putInt(getContentResolver(), LineageSettings.Secure.ADVANCED_REBOOT, 0); + getPreferenceScreen().removePreference(mAdvancedItemsCategory); + } for (String action : PowerMenuConstants.getAllActions()) { if (action.equals(GLOBAL_ACTION_KEY_SCREENSHOT)) { -- GitLab From 3cc246ac9c9554c90f6155262cc48011509c757c Mon Sep 17 00:00:00 2001 From: Nishith Khanna Date: Wed, 24 Jul 2024 14:12:48 +0530 Subject: [PATCH 12/12] Port translations from Android 13 --- res/values-de/e_strings.xml | 23 +++++++++++++++++++++++ res/values-fr/e_strings.xml | 22 ++++++++++++++++++++++ res/values-is/e_strings.xml | 24 ++++++++++++++++++++++++ res/values-ja/e_strings.xml | 9 +++++++++ res/values-nl/e_strings.xml | 24 ++++++++++++++++++++++++ res/values-ru/e_strings.xml | 24 ++++++++++++++++++++++++ res/values-sv/e_strings.xml | 9 +++++++++ res/values-uk/e_strings.xml | 9 +++++++++ res/values/e_strings.xml | 30 ++++++++++++++++++++++++++++++ res/values/strings.xml | 14 -------------- 10 files changed, 174 insertions(+), 14 deletions(-) create mode 100644 res/values-de/e_strings.xml create mode 100644 res/values-fr/e_strings.xml create mode 100644 res/values-is/e_strings.xml create mode 100644 res/values-ja/e_strings.xml create mode 100644 res/values-nl/e_strings.xml create mode 100644 res/values-ru/e_strings.xml create mode 100644 res/values-sv/e_strings.xml create mode 100644 res/values-uk/e_strings.xml create mode 100644 res/values/e_strings.xml diff --git a/res/values-de/e_strings.xml b/res/values-de/e_strings.xml new file mode 100644 index 00000000..a6f47d00 --- /dev/null +++ b/res/values-de/e_strings.xml @@ -0,0 +1,23 @@ + + + OpenKeychain + microG + LineageOS Mitwirkende + /e/ Unterstützer + /e/ Mitwirkende + Sicherheits-Patches werden monatlich von Google in Zusammenarbeit mit SoC-Anbietern veröffentlicht, um Schwachstellen zu beheben, die von bösartigen Apps ausgenutzt werden könnten, um Sicherheitseinschränkungen zu umgehen und das Gerät dauerhaft zu beschädigen. Die von Google zur Verfügung gestellten Patches werden jeden Monat auf alle unterstützten Geräte aufgespielt, aber Patches für proprietären Code können nur vom Hersteller deines Geräts aufgespielt werden. Um dein Gerät zu schützen, solltest du sicherstellen, dass dein /e/-OS-Build immer auf dem neuesten Stand ist, und (falls zutreffend) dass dein Hersteller-Image auf die neueste von /e/OS empfohlene Version aktualisiert ist. + \ No newline at end of file diff --git a/res/values-fr/e_strings.xml b/res/values-fr/e_strings.xml new file mode 100644 index 00000000..9f60099f --- /dev/null +++ b/res/values-fr/e_strings.xml @@ -0,0 +1,22 @@ + + + + Contributeurs LineageOS + Les correctifs de sécurité sont publiés chaque mois par Google, en coopération avec les fabricants de puces SoC (System On a Chip). Ils permettent de corriger des failles que des applications malveillantes sont susceptibles d\'exploiter pour contourner les restrictions de sécurité et endommager votre appareil de façon définitive. Les correctifs fournis par Google sont appliqués chaque mois à tous les appareils compatibles, mais ceux concernant le code propriétaire ne peuvent l\'être que par le fabricant de votre appareil. Pour garantir la sécurité de votre appareil, veillez à toujours utiliser la dernière version de /e/OS et, le cas échéant, mettez à jour votre fichier vendor.img afin qu\'il corresponde à la dernière version recommandée par /e/OS. + OpenKeychain + microG + \ No newline at end of file diff --git a/res/values-is/e_strings.xml b/res/values-is/e_strings.xml new file mode 100644 index 00000000..ece112a9 --- /dev/null +++ b/res/values-is/e_strings.xml @@ -0,0 +1,24 @@ + + + + Google gefur út öryggisplástra mánaðarlega í sambandi við SoC-öryggissérfræðinga til að bæta úr göllum, sem óvinveitt forrit gætu nýtt sér til að komast framhjá öryggistakmörkunum og þannig valdið alvarlegum skemmdum á kerfinu þínu. Öryggisplástrar Google eru settir inn í hverjum mánuði á öll studd tæki, en öryggisplástra á séreignakóða getur einungis framleiðandi tækisins sett inn. Til að halda tækinu þinu öruggu ættirðu að sjá til þess að útgáfa þín af /e/ OS sé ávallt af nýjustu gerð og (ef við á) tryggja að kerfisdiskmynd framleiðanda sé uppfærð í þá nýjustu sem /e/ OS mælir með. + Þátttakendur í /e/ + Stuðningsaðilar /e/ + Aðstandendur LineageOS + microG + OpenKeychain + \ No newline at end of file diff --git a/res/values-ja/e_strings.xml b/res/values-ja/e_strings.xml new file mode 100644 index 00000000..bc0fa764 --- /dev/null +++ b/res/values-ja/e_strings.xml @@ -0,0 +1,9 @@ + + + microG + OpenKeychain + /e/ 貢献者 + セキュリティーパッチは、システム・オン・チップ(System On a Chip)のベンダーと協力して、Googleにより毎月リリースされます。これは悪意あるアプリが、セキュリティー上の制限を回避し、端末に永続的なダメージを与えようとして使用する可能性がある不具合を修正することを狙いとしています。パッチはGoogleにより、毎月、サポートされている全ての端末に対して提供されますが、プロプライエタリーなコードに関するパッチについては、あなたの端末の製造元しかこれを適用することができません。端末の安全性を維持するためには、あなたの/e/ OSを常に最新のバージョンに保ち、可能であれば、ベンダーイメージを/e/ OSの推奨する最新のバージョンにアップデートしてください。 + /e/ サポーター + LineageOSの貢献者 + \ No newline at end of file diff --git a/res/values-nl/e_strings.xml b/res/values-nl/e_strings.xml new file mode 100644 index 00000000..6ce37231 --- /dev/null +++ b/res/values-nl/e_strings.xml @@ -0,0 +1,24 @@ + + + + OpenKeychain + microG + LineageOS medewerkers + /e/ ondersteuners + /e/ medewerkers + Veiligheidsupdates worden maandelijks vrijgegeven door Google in samenwerking met SoC fabrikanten om gebreken te verbeteren die kunnen misbruikt worden door schadelijke apps om veiligheidsrestricties te omzeilen en je toestel permanent te beschadigen. Veiligheidsupdates van Google worden maandelijks toegepast op alle ondersteunde toestellen, maar updates voor propriëtaire code kunnen enkel toegepast worden door de fabrikant van jouw toestel. Om de veiligheid op je toestel te garanderen, hou je /e/ OS altijd up-to-date, en (indien van toepassing) zorg er voor dat de vendor-image is bijgewerkt tot de laatste versie, aangeraden door /e/ OS. + \ No newline at end of file diff --git a/res/values-ru/e_strings.xml b/res/values-ru/e_strings.xml new file mode 100644 index 00000000..cb44d471 --- /dev/null +++ b/res/values-ru/e_strings.xml @@ -0,0 +1,24 @@ + + + + участники проекта /e/ + Исправления безопасности ежемесячно выпускаются Google в сотрудничестве с производителями SoC для устранения недостатков, которые могут быть использованы вредоносными приложениями для обхода ограничений безопасности и нанесения постоянного ущерба вашему устройству. Исправления, выпускаемые Google, применяются каждый месяц на всех поддерживаемых устройствах, но исправления для собственного кода могут быть применены только производителем вашего устройства. Для обеспечения безопасности вашего устройства убедитесь, что сборка /e/ OS всегда актуальна, и (если это применимо) убедитесь, что образ производителя обновлен до последней версии, рекомендованной /e/ OS. + OpenKeychain + Поддерживающие проект /e/ люди + microG + Участники проекта LineageOS + \ No newline at end of file diff --git a/res/values-sv/e_strings.xml b/res/values-sv/e_strings.xml new file mode 100644 index 00000000..43368edc --- /dev/null +++ b/res/values-sv/e_strings.xml @@ -0,0 +1,9 @@ + + + OpenKeychain + /e/ bidragsgivare + Säkerhetsprogramfixar släpps månadsvis av Google i samarbete med SoC-leverantörer för att adressera fel som kan utnyttjas av skadliga appar för att gå runt säkerhetsrestriktioner och göra permanent skada på din enhet. Programfixar som gjorts tillgängliga av Google appliceras varje månad på alla enheter som stöds. Programfixar för proprietär kod kan endast appliceras av din enhets tillverkare. Se till att ditt bygge av /e/ OS alltid är uppdaterat för att hålla din enhet säker, och (om möjligt) säkerställ att din leverantörsavbild är uppdaterad till den senaste avbilden som rekommenderas av /e/ OS. + microG + LineageOS bidragsgivare + /e/ anhängare + \ No newline at end of file diff --git a/res/values-uk/e_strings.xml b/res/values-uk/e_strings.xml new file mode 100644 index 00000000..1bf4bec6 --- /dev/null +++ b/res/values-uk/e_strings.xml @@ -0,0 +1,9 @@ + + + Розробники /e/ + Google щомісяця випускає патчі безпеки у співпраці з виробниками SoC, щоб усунути недоліки, які можуть бути використані зловмисними застосунками для обходу обмежень безпеки та завдати незворотної шкоди вашому пристрою. Випущені Google виправлення встановлюються щомісяця на всіх підтримуваних пристроях, але виправлення для пропрієтарного коду можуть бути встановлені лише виробником вашого пристрою. Щоб захистити свій пристрій, переконайтеся, що ваша збірка /e/ OS завжди актуальна, і (якщо це можливо) переконайтеся, що ваш образ вендора оновлений до останньої версії, яка відповідає рекомендаціям /e/ OS. + OpenKeychain + microG + Розробники LineageOS + Підтримують /e/ OS + \ No newline at end of file diff --git a/res/values/e_strings.xml b/res/values/e_strings.xml new file mode 100644 index 00000000..f80abcfb --- /dev/null +++ b/res/values/e_strings.xml @@ -0,0 +1,30 @@ + + + + Security patches are released monthly by Google in cooperation with SoC vendors to address flaws which could be exploited by malicious apps to bypass security restrictions and cause permanent damage to your device. Patches made available by Google are applied every month on all supported devices, but patches to proprietary code can only be applied by your device\'s manufacturer. To keep your device safe make sure your /e/ OS build is always up-to-date, and (if applicable) ensure your vendor image is updated to the latest one recommended by /e/ OS. + + + /e/ contributors + /e/ supporters + LineageOS contributors + + + microG + + + OpenKeychain + \ No newline at end of file diff --git a/res/values/strings.xml b/res/values/strings.xml index 2a7c1ba9..edad29ed 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -634,7 +634,6 @@ A few months out of date Out of date Security patches are released monthly by Google in cooperation with SoC vendors to address flaws which could be exploited by malicious apps to bypass security restrictions and cause permanent damage to your device. Patches made available by Google are applied every month on all supported devices, but patches to proprietary code can only be applied by your device\'s manufacturer. To keep your device safe make sure your LineageOS build is always up-to-date, and (if applicable) ensure your vendor image is updated to the latest one recommended by LineageOS. - Security patches are released monthly by Google in cooperation with SoC vendors to address flaws which could be exploited by malicious apps to bypass security restrictions and cause permanent damage to your device. Patches made available by Google are applied every month on all supported devices, but patches to proprietary code can only be applied by your device\'s manufacturer. To keep your device safe make sure your /e/ OS build is always up-to-date, and (if applicable) ensure your vendor image is updated to the latest one recommended by /e/ OS. Encryption Enabled Needs a secure lock screen @@ -661,17 +660,4 @@ Apps can send %s messages in 1 minute before requiring confirmation Apps are not allowed to send any messages without confirmation Always confirm - - - - - /e/ contributors - /e/ supporters - LineageOS contributors - - - microG - - - OpenKeychain
-- GitLab