OSDN Git Service

Merge tag 'android-8.1.0_r74' into oreo-x86 android-x86-8.1-r4
authorChih-Wei Huang <cwhuang@linux.org.tw>
Mon, 16 Mar 2020 10:39:20 +0000 (18:39 +0800)
committerChih-Wei Huang <cwhuang@linux.org.tw>
Mon, 16 Mar 2020 10:39:20 +0000 (18:39 +0800)
Android 8.1.0 release 74

106 files changed:
Android.mk
AndroidManifest.xml
proguard.flags
res/values-af/strings.xml
res/values-am/strings.xml
res/values-ar/strings.xml
res/values-az/strings.xml
res/values-b+sr+Latn/strings.xml
res/values-be/strings.xml
res/values-bg/strings.xml
res/values-bn/strings.xml
res/values-bs/strings.xml
res/values-ca/strings.xml
res/values-cs/strings.xml
res/values-da/strings.xml
res/values-de/strings.xml
res/values-el/strings.xml
res/values-en-rAU/strings.xml
res/values-en-rGB/strings.xml
res/values-en-rIN/strings.xml
res/values-es-rUS/strings.xml
res/values-es/strings.xml
res/values-et/strings.xml
res/values-eu/strings.xml
res/values-fa/strings.xml
res/values-fi/strings.xml
res/values-fr-rCA/strings.xml
res/values-fr/strings.xml
res/values-gl/strings.xml
res/values-gu/strings.xml
res/values-hi/strings.xml
res/values-hr/strings.xml
res/values-hu/strings.xml
res/values-hy/strings.xml
res/values-in/strings.xml
res/values-is/strings.xml
res/values-it/strings.xml
res/values-iw/strings.xml
res/values-ja/strings.xml
res/values-ka/strings.xml
res/values-kk/strings.xml
res/values-km/strings.xml
res/values-kn/strings.xml
res/values-ko/strings.xml
res/values-ky/strings.xml
res/values-lo/strings.xml
res/values-lt/strings.xml
res/values-lv/strings.xml
res/values-mk/strings.xml
res/values-ml/strings.xml
res/values-mn/strings.xml
res/values-mr/strings.xml
res/values-ms/strings.xml
res/values-my/strings.xml
res/values-nb/strings.xml
res/values-ne/strings.xml
res/values-nl/strings.xml
res/values-pa/strings.xml
res/values-pl/strings.xml
res/values-pt-rBR/strings.xml
res/values-pt-rPT/strings.xml
res/values-pt/strings.xml
res/values-ro/strings.xml
res/values-ru/strings.xml
res/values-si/strings.xml
res/values-sk/strings.xml
res/values-sl/strings.xml
res/values-sq/strings.xml
res/values-sr/strings.xml
res/values-sv/strings.xml
res/values-sw/strings.xml
res/values-ta/strings.xml
res/values-te/strings.xml
res/values-th/strings.xml
res/values-tl/strings.xml
res/values-tr/strings.xml
res/values-uk/strings.xml
res/values-ur/strings.xml
res/values-uz/strings.xml
res/values-vi/strings.xml
res/values-zh-rCN/strings.xml
res/values-zh-rHK/strings.xml
res/values-zh-rTW/strings.xml
res/values-zu/strings.xml
res/values/cm_arrays.xml [new file with mode: 0644]
res/values/cm_strings.xml [new file with mode: 0644]
res/values/strings.xml
res/xml/android_x86_options.xml [new file with mode: 0644]
res/xml/development_prefs.xml
res/xml/device_info_settings.xml
src/com/android/settings/AndroidX86DashboardFragment.java [new file with mode: 0644]
src/com/android/settings/DeviceInfoSettings.java
src/com/android/settings/DownloadCompleteReceiver.java [new file with mode: 0644]
src/com/android/settings/Settings.java
src/com/android/settings/SettingsActivity.java
src/com/android/settings/core/gateway/SettingsGateway.java
src/com/android/settings/cyanogenmod/superuser/MultitaskSuRequestActivity.java [new file with mode: 0644]
src/com/android/settings/cyanogenmod/superuser/NotifyActivity.java [new file with mode: 0644]
src/com/android/settings/cyanogenmod/superuser/PolicyNativeFragment.java [new file with mode: 0644]
src/com/android/settings/cyanogenmod/superuser/RequestActivity.java [new file with mode: 0644]
src/com/android/settings/cyanogenmod/superuser/SuReceiver.java [new file with mode: 0644]
src/com/android/settings/development/DevelopmentSettings.java
src/com/android/settings/deviceinfo/DeviceManufacturerPreferenceController.java [new file with mode: 0644]
src/com/android/settings/deviceinfo/OpenGLVersionPreferenceController.java [new file with mode: 0644]
src/com/android/settings/wfd/WifiDisplaySettings.java
tests/robotests/src/com/android/settings/wfd/WifiDisplaySettingsTest.java

index eeaad0c..fd0b4ca 100644 (file)
@@ -17,7 +17,9 @@ LOCAL_PRIVILEGED_MODULE := true
 LOCAL_MODULE_TAGS := optional
 LOCAL_USE_AAPT2 := true
 
-LOCAL_SRC_FILES := $(call all-java-files-under, src)
+LOCAL_SRC_FILES := $(call all-java-files-under, src) \
+    $(call all-java-files-under,../../../external/koush/Widgets/Widgets/src) \
+    $(call all-java-files-under,../../../external/koush/Superuser/Superuser/src)
 
 LOCAL_STATIC_ANDROID_LIBRARIES := \
     android-support-v4 \
@@ -40,6 +42,15 @@ LOCAL_STATIC_JAVA_LIBRARIES := \
 
 LOCAL_PROGUARD_FLAG_FILES := proguard.flags
 
+LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res \
+    external/koush/Widgets/Widgets/res \
+    external/koush/Superuser/Superuser/res
+
+LOCAL_AAPT_INCLUDE_ALL_RESOURCES := true
+
+LOCAL_AAPT_FLAGS := --auto-add-overlay \
+    --extra-packages com.koushikdutta.superuser:com.koushikdutta.widgets
+
 ifneq ($(INCREMENTAL_BUILDS),)
     LOCAL_PROGUARD_ENABLED := disabled
     LOCAL_JACK_ENABLED := incremental
index 591a132..df25fee 100644 (file)
     <uses-permission android:name="android.permission.READ_PRINT_SERVICES" />
     <uses-permission android:name="android.permission.NETWORK_SETTINGS" />
 
+    <permission
+        android:name="android.permission.REQUEST_SUPERUSER"
+        android:protectionLevel="signature" />
+
+    <permission
+        android:name="android.permission.REPORT_SUPERUSER"
+        android:protectionLevel="signature" />
+
+    <permission-group
+        android:name="android.permission-group.SUPERUSER"
+        android:description="@string/superuser_description_more"
+        android:icon="@drawable/ic_action_permission"
+        android:label="@string/superuser"
+        android:priority="10000" />
+
+    <permission
+        android:name="android.permission.ACCESS_SUPERUSER"
+        android:description="@string/superuser_description_more"
+        android:icon="@drawable/ic_action_permission"
+        android:label="@string/superuser_description"
+        android:logo="@drawable/ic_action_permission"
+        android:permissionGroup="android.permission-group.SUPERUSER"
+        android:protectionLevel="dangerous" />
+
     <application android:label="@string/settings_label"
             android:icon="@drawable/ic_launcher_settings"
             android:taskAffinity=""
             android:defaultToDeviceProtectedStorage="true"
             android:directBootAware="true">
 
+        <!-- Only system/su can open this activity -->
+        <!-- This activity will then call the MultitaskSuRequestActivity to create a new task stack -->
+        <activity
+            android:name=".cyanogenmod.superuser.RequestActivity"
+            android:configChanges="keyboardHidden|orientation|screenSize"
+            android:label="@string/superuser"
+            android:launchMode="singleTask"
+            android:excludeFromRecents="true"
+            android:permission="android.permission.REQUEST_SUPERUSER"
+            android:process=":superuser"
+            android:taskAffinity="com.android.settings.superuser"
+            android:theme="@style/RequestThemeDark" />
+        <!-- Only system/su can open this activity -->
+        <!-- This is activity is started in multiuser mode when the user invoking su -->
+        <!-- is not the device owner (user id 0). -->
+        <activity
+            android:name=".cyanogenmod.superuser.NotifyActivity"
+            android:configChanges="keyboardHidden|orientation|screenSize"
+            android:label="@string/superuser"
+            android:launchMode="singleTask"
+            android:excludeFromRecents="true"
+            android:permission="android.permission.REQUEST_SUPERUSER"
+            android:process=":superuser"
+            android:taskAffinity="com.android.settings.superuser"
+            android:theme="@style/RequestThemeDark" />
+
+        <!-- Multiple instances of this activity can be running for multiple su requests -->
+        <activity
+            android:name=".cyanogenmod.superuser.MultitaskSuRequestActivity"
+            android:configChanges="keyboardHidden|orientation|screenSize"
+            android:excludeFromRecents="true"
+            android:exported="false"
+            android:label="@string/request"
+            android:process=":superuser"
+            android:taskAffinity="com.android.settings.superuser"
+            android:theme="@style/RequestThemeDark" />
+
+        <receiver
+            android:name=".cyanogenmod.superuser.SuReceiver"
+            android:permission="android.permission.REPORT_SUPERUSER" />
+
         <!-- Settings -->
 
         <activity android:name="Settings"
                 android:value="com.android.settings.print.PrintJobSettingsFragment" />
         </activity>
 
+        <activity android:name="Settings$SuperuserActivity"
+                android:label="@string/superuser"
+                android:icon="@drawable/ic_action_permission"
+                android:taskAffinity="com.android.settings"
+                android:parentActivityName="Settings$UserAndAccountDashboardActivity">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+            <intent-filter android:priority="3">
+                <action android:name="com.android.settings.action.SETTINGS" />
+            </intent-filter>
+            <meta-data android:name="com.android.settings.summary"
+                android:resource="@string/superuser_description"/>
+            <meta-data android:name="com.android.settings.category"
+                android:value="com.android.settings.category.ia.accounts" />
+            <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
+                android:value="com.android.settings.cyanogenmod.superuser.PolicyNativeFragment" />
+            <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
+                android:value="true" />
+        </activity>
+
         <activity android:name=".development.AppPicker"
                   android:label="@string/select_application"
                   android:theme="@android:style/Theme.DeviceDefault.Light.Dialog" />
                        android:resource="@string/app_and_notification_dashboard_summary"/>
         </activity>
 
+        <activity android:name=".Settings$AndroidX86DashboardActivity"
+                android:label="@string/android_x86_options_title"
+               android:icon="@drawable/ic_settings_applications">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+            <intent-filter android:priority="6">
+                <action android:name="com.android.settings.action.SETTINGS" />
+            </intent-filter>
+            <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
+                android:value="com.android.settings.AndroidX86DashboardFragment" />
+            <meta-data android:name="com.android.settings.category"
+                android:value="com.android.settings.category.ia.homepage" />
+            <meta-data android:name="com.android.settings.summary"
+                       android:resource="@string/android_x86_dashboard_summary"/>
+            <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
+                android:value="true" />
+        </activity>
+
+        <receiver android:name=".DownloadCompleteReceiver">
+            <intent-filter>
+                <action android:name="android.intent.action.DOWNLOAD_COMPLETE" />
+            </intent-filter>
+        </receiver>
+
         <activity android:name=".Settings$UserAndAccountDashboardActivity"
                   android:label="@string/account_dashboard_title"
                   android:icon="@drawable/ic_settings_accounts">
index d644f47..398b776 100644 (file)
@@ -3,6 +3,8 @@
 
 # Keep all Fragments in this package, which are used by reflection.
 -keep public class com.android.settings.** extends android.app.Fragment
+-keep public class com.android.settings.cyanogenmod.superuser.**
+-keep public class com.koushikdutta.**
 
 # We want to keep methods in Activity that could be used in the XML attribute onClick.
 -keepclassmembers class * extends android.app.Activity {
index 7af1d22..7772cb2 100644 (file)
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
     <string name="firmware_version" msgid="4801135784886859972">"Android-weergawe"</string>
     <string name="security_patch" msgid="8438384045870296634">"Android-sekuriteitregstelling-vlak"</string>
+    <string name="device_manufacturer" msgid="3516742885166545865">"Vervaardiger"</string>
     <string name="model_info" msgid="1952009518045740889">"Model"</string>
     <string name="hardware_info" msgid="2605080746512527805">"Model en hardeware"</string>
     <string name="hardware_revision" msgid="8893547686367095527">"Hardewareweergawe"</string>
index d424c85..bd06794 100644 (file)
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
     <string name="firmware_version" msgid="4801135784886859972">"Android ሥሪት"</string>
     <string name="security_patch" msgid="8438384045870296634">"የAndroid ደህነንት መጠገኛ ደረጃ"</string>
+    <string name="device_manufacturer" msgid="3516742885166545865">"አምራች"</string>
     <string name="model_info" msgid="1952009518045740889">"ሞዴል"</string>
     <string name="hardware_info" msgid="2605080746512527805">"ሞዴል እና ሃርድዌር"</string>
     <string name="hardware_revision" msgid="8893547686367095527">"የሃርድዌር ስሪት"</string>
index bfa4f0a..db9f6a1 100644 (file)
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
     <string name="firmware_version" msgid="4801135784886859972">"‏إصدار Android"</string>
     <string name="security_patch" msgid="8438384045870296634">"‏مستوى رمز تصحيح أمان Android"</string>
+    <string name="device_manufacturer" msgid="3516742885166545865">"جهة التصنيع"</string>
     <string name="model_info" msgid="1952009518045740889">"الطراز"</string>
     <string name="hardware_info" msgid="2605080746512527805">"الطراز والأجهزة"</string>
     <string name="hardware_revision" msgid="8893547686367095527">"إصدار الأجهزة"</string>
index 346f00f..c0aaa13 100644 (file)
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
     <string name="firmware_version" msgid="4801135784886859972">"Android versiyası"</string>
     <string name="security_patch" msgid="8438384045870296634">"Android təhlükəsizlik yamaq səviyyəsi"</string>
+    <string name="device_manufacturer" msgid="3516742885166545865">"İstehsalçı"</string>
     <string name="model_info" msgid="1952009518045740889">"Model"</string>
     <string name="hardware_info" msgid="2605080746512527805">"Model və avadanlıq"</string>
     <string name="hardware_revision" msgid="8893547686367095527">"Avadanlıq versiyası"</string>
index 7c7b22c..f2dd0df 100644 (file)
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
     <string name="firmware_version" msgid="4801135784886859972">"Android verzija"</string>
     <string name="security_patch" msgid="8438384045870296634">"Nivo bezbednosne zakrpe za Android"</string>
+    <string name="device_manufacturer" msgid="3516742885166545865">"Proizvođač"</string>
     <string name="model_info" msgid="1952009518045740889">"Model"</string>
     <string name="hardware_info" msgid="2605080746512527805">"Model i hardver"</string>
     <string name="hardware_revision" msgid="8893547686367095527">"Verzija hardvera"</string>
index 5d178ee..f3bb269 100644 (file)
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
     <string name="firmware_version" msgid="4801135784886859972">"Версія Android"</string>
     <string name="security_patch" msgid="8438384045870296634">"Узровень патчу бяспекі Android"</string>
+    <string name="device_manufacturer" msgid="3516742885166545865">"Вытворца"</string>
     <string name="model_info" msgid="1952009518045740889">"Мадэль"</string>
     <string name="hardware_info" msgid="2605080746512527805">"Мадэль і апаратнае забеспячэнне"</string>
     <string name="hardware_revision" msgid="8893547686367095527">"Версія апаратнага забеспячэння"</string>
index 3948233..7820c02 100644 (file)
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
     <string name="firmware_version" msgid="4801135784886859972">"Версия на Android"</string>
     <string name="security_patch" msgid="8438384045870296634">"Ниво на корекцията на сигурността под Android"</string>
+    <string name="device_manufacturer" msgid="3516742885166545865">"Производител"</string>
     <string name="model_info" msgid="1952009518045740889">"Модел"</string>
     <string name="hardware_info" msgid="2605080746512527805">"Модел и хардуер"</string>
     <string name="hardware_revision" msgid="8893547686367095527">"Версия на хардуера"</string>
index 6c5b0a8..7371da1 100644 (file)
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
     <string name="firmware_version" msgid="4801135784886859972">"Android ভার্সন"</string>
     <string name="security_patch" msgid="8438384045870296634">"Android সুরক্ষার প্যাচ লেবেল"</string>
+    <string name="device_manufacturer" msgid="3516742885166545865">"প্রস্তুতকারক"</string>
     <string name="model_info" msgid="1952009518045740889">"মডেল"</string>
     <string name="hardware_info" msgid="2605080746512527805">"মডেল ও হার্ডওয়্যার"</string>
     <string name="hardware_revision" msgid="8893547686367095527">"হার্ডওয়্যার ভার্সন"</string>
index b25dd37..09ed94e 100644 (file)
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
     <string name="firmware_version" msgid="4801135784886859972">"Verzija Androida"</string>
     <string name="security_patch" msgid="8438384045870296634">"Nivo sigurnosne zakrpe Androida"</string>
+    <string name="device_manufacturer" msgid="3516742885166545865">"Proizvođač"</string>
     <string name="model_info" msgid="1952009518045740889">"Model"</string>
     <string name="hardware_info" msgid="2605080746512527805">"Model i hardver"</string>
     <string name="hardware_revision" msgid="8893547686367095527">"Verzija hardvera"</string>
index c74d217..cc34966 100644 (file)
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
     <string name="firmware_version" msgid="4801135784886859972">"Versió d\'Android"</string>
     <string name="security_patch" msgid="8438384045870296634">"Nivell de pedaç de seguretat d\'Android"</string>
+    <string name="device_manufacturer" msgid="3516742885166545865">"Fabricant"</string>
     <string name="model_info" msgid="1952009518045740889">"Model"</string>
     <string name="hardware_info" msgid="2605080746512527805">"Model i maquinari"</string>
     <string name="hardware_revision" msgid="8893547686367095527">"Versió del maquinari"</string>
index cd0bb68..7dd50f4 100644 (file)
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
     <string name="firmware_version" msgid="4801135784886859972">"Verze systému Android"</string>
     <string name="security_patch" msgid="8438384045870296634">"Úroveň opravy zabezpečení Android"</string>
+    <string name="device_manufacturer" msgid="3516742885166545865">"Výrobce"</string>
     <string name="model_info" msgid="1952009518045740889">"Model"</string>
     <string name="hardware_info" msgid="2605080746512527805">"Model a hardware"</string>
     <string name="hardware_revision" msgid="8893547686367095527">"Verze hardwaru"</string>
index 6bd335c..c5b8be7 100644 (file)
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
     <string name="firmware_version" msgid="4801135784886859972">"Android-version"</string>
     <string name="security_patch" msgid="8438384045870296634">"Niveau for sikkerhedsrettelse på Android"</string>
+    <string name="device_manufacturer" msgid="3516742885166545865">"Producent"</string>
     <string name="model_info" msgid="1952009518045740889">"Model"</string>
     <string name="hardware_info" msgid="2605080746512527805">"Model og hardware"</string>
     <string name="hardware_revision" msgid="8893547686367095527">"Hardwareversion"</string>
index 184b8c0..1b62fe9 100644 (file)
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
     <string name="firmware_version" msgid="4801135784886859972">"Android-Version"</string>
     <string name="security_patch" msgid="8438384045870296634">"Stand der Sicherheitsupdates"</string>
+    <string name="device_manufacturer" msgid="3516742885166545865">"Hersteller"</string>
     <string name="model_info" msgid="1952009518045740889">"Modell"</string>
     <string name="hardware_info" msgid="2605080746512527805">"Modell und Hardware"</string>
     <string name="hardware_revision" msgid="8893547686367095527">"Hardwareversion"</string>
index 6bb177d..c9a47b3 100644 (file)
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
     <string name="firmware_version" msgid="4801135784886859972">"Έκδοση Android"</string>
     <string name="security_patch" msgid="8438384045870296634">"Επίπεδο ενημέρωσης κώδικα ασφαλείας Android"</string>
+    <string name="device_manufacturer" msgid="3516742885166545865">"Κατασκευαστής"</string>
     <string name="model_info" msgid="1952009518045740889">"Μοντέλο"</string>
     <string name="hardware_info" msgid="2605080746512527805">"Μοντέλο και εξοπλισμός"</string>
     <string name="hardware_revision" msgid="8893547686367095527">"Έκδοση εξοπλισμού"</string>
index 54dcc39..45bd7ea 100644 (file)
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
     <string name="firmware_version" msgid="4801135784886859972">"Android version"</string>
     <string name="security_patch" msgid="8438384045870296634">"Android security patch level"</string>
+    <string name="device_manufacturer" msgid="3516742885166545865">"Manufacturer"</string>
     <string name="model_info" msgid="1952009518045740889">"Model"</string>
     <string name="hardware_info" msgid="2605080746512527805">"Model &amp; hardware"</string>
     <string name="hardware_revision" msgid="8893547686367095527">"Hardware version"</string>
index 54dcc39..45bd7ea 100644 (file)
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
     <string name="firmware_version" msgid="4801135784886859972">"Android version"</string>
     <string name="security_patch" msgid="8438384045870296634">"Android security patch level"</string>
+    <string name="device_manufacturer" msgid="3516742885166545865">"Manufacturer"</string>
     <string name="model_info" msgid="1952009518045740889">"Model"</string>
     <string name="hardware_info" msgid="2605080746512527805">"Model &amp; hardware"</string>
     <string name="hardware_revision" msgid="8893547686367095527">"Hardware version"</string>
index 54dcc39..45bd7ea 100644 (file)
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
     <string name="firmware_version" msgid="4801135784886859972">"Android version"</string>
     <string name="security_patch" msgid="8438384045870296634">"Android security patch level"</string>
+    <string name="device_manufacturer" msgid="3516742885166545865">"Manufacturer"</string>
     <string name="model_info" msgid="1952009518045740889">"Model"</string>
     <string name="hardware_info" msgid="2605080746512527805">"Model &amp; hardware"</string>
     <string name="hardware_revision" msgid="8893547686367095527">"Hardware version"</string>
index 8dfdc59..f135429 100644 (file)
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
     <string name="firmware_version" msgid="4801135784886859972">"Versión de Android"</string>
     <string name="security_patch" msgid="8438384045870296634">"Nivel de parche de seguridad de Android"</string>
+    <string name="device_manufacturer" msgid="3516742885166545865">"Fabricante"</string>
     <string name="model_info" msgid="1952009518045740889">"Modelo"</string>
     <string name="hardware_info" msgid="2605080746512527805">"Modelo y hardware"</string>
     <string name="hardware_revision" msgid="8893547686367095527">"Versión de hardware"</string>
index 7429f20..80fdc3d 100644 (file)
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
     <string name="firmware_version" msgid="4801135784886859972">"Versión de Android"</string>
     <string name="security_patch" msgid="8438384045870296634">"Nivel de parche de seguridad de Android"</string>
+    <string name="device_manufacturer" msgid="3516742885166545865">"Fabricante"</string>
     <string name="model_info" msgid="1952009518045740889">"Modelo"</string>
     <string name="hardware_info" msgid="2605080746512527805">"Modelo y hardware"</string>
     <string name="hardware_revision" msgid="8893547686367095527">"Versión de hardware"</string>
index 7022c82..dbc8904 100644 (file)
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
     <string name="firmware_version" msgid="4801135784886859972">"Androidi versioon"</string>
     <string name="security_patch" msgid="8438384045870296634">"Androidi turvapaiga tase"</string>
+    <string name="device_manufacturer" msgid="3516742885166545865">"Tootja"</string>
     <string name="model_info" msgid="1952009518045740889">"Mudel"</string>
     <string name="hardware_info" msgid="2605080746512527805">"Mudel ja riistvara"</string>
     <string name="hardware_revision" msgid="8893547686367095527">"Riistvara versioon"</string>
index e555acf..47404db 100644 (file)
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
     <string name="firmware_version" msgid="4801135784886859972">"Android bertsioa"</string>
     <string name="security_patch" msgid="8438384045870296634">"Android segurtasunaren adabaki-maila"</string>
+    <string name="device_manufacturer" msgid="3516742885166545865">"Fabrikatzailea"</string>
     <string name="model_info" msgid="1952009518045740889">"Modeloa"</string>
     <string name="hardware_info" msgid="2605080746512527805">"Modeloa eta hardwarea"</string>
     <string name="hardware_revision" msgid="8893547686367095527">"Hardware bertsioa"</string>
index e5a9a72..7e663be 100644 (file)
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
     <string name="firmware_version" msgid="4801135784886859972">"‏نسخهٔ Android"</string>
     <string name="security_patch" msgid="8438384045870296634">"‏سطح وصله امنیتی Android"</string>
+    <string name="device_manufacturer" msgid="3516742885166545865">"سازنده"</string>
     <string name="model_info" msgid="1952009518045740889">"مدل"</string>
     <string name="hardware_info" msgid="2605080746512527805">"مدل و سخت‌افزار"</string>
     <string name="hardware_revision" msgid="8893547686367095527">"نسخه سخت‌افزار"</string>
index 6fe10cd..6c6e031 100644 (file)
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
     <string name="firmware_version" msgid="4801135784886859972">"Android-versio"</string>
     <string name="security_patch" msgid="8438384045870296634">"Android-tietoturvakorjauksen taso"</string>
+    <string name="device_manufacturer" msgid="3516742885166545865">"Valmistaja"</string>
     <string name="model_info" msgid="1952009518045740889">"Malli"</string>
     <string name="hardware_info" msgid="2605080746512527805">"Malli ja laitteisto"</string>
     <string name="hardware_revision" msgid="8893547686367095527">"Laitteistoversio"</string>
index 4084835..4bbfb38 100644 (file)
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
     <string name="firmware_version" msgid="4801135784886859972">"Version d\'Android"</string>
     <string name="security_patch" msgid="8438384045870296634">"Niveau du correctif de sécurité Android"</string>
+    <string name="device_manufacturer" msgid="3516742885166545865">"Fabricant"</string>
     <string name="model_info" msgid="1952009518045740889">"Modèle"</string>
     <string name="hardware_info" msgid="2605080746512527805">"Modèle et matériel"</string>
     <string name="hardware_revision" msgid="8893547686367095527">"Version du matériel"</string>
index b2a62b4..f82de8b 100644 (file)
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
     <string name="firmware_version" msgid="4801135784886859972">"Version d\'Android"</string>
     <string name="security_patch" msgid="8438384045870296634">"Mise à jour du correctif de sécurité Android"</string>
+    <string name="device_manufacturer" msgid="3516742885166545865">"Fabricant"</string>
     <string name="model_info" msgid="1952009518045740889">"Modèle"</string>
     <string name="hardware_info" msgid="2605080746512527805">"Modèle et matériel"</string>
     <string name="hardware_revision" msgid="8893547686367095527">"Version du matériel"</string>
index 1dcb1ad..5cdcf59 100644 (file)
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
     <string name="firmware_version" msgid="4801135784886859972">"Versión de Android"</string>
     <string name="security_patch" msgid="8438384045870296634">"Nivel de parche de seguranza de Android"</string>
+    <string name="device_manufacturer" msgid="3516742885166545865">"Fabricante"</string>
     <string name="model_info" msgid="1952009518045740889">"Modelo"</string>
     <string name="hardware_info" msgid="2605080746512527805">"Modelo e hardware"</string>
     <string name="hardware_revision" msgid="8893547686367095527">"Versión de hardware"</string>
index 13085ef..feae63e 100644 (file)
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
     <string name="firmware_version" msgid="4801135784886859972">"Android સંસ્કરણ"</string>
     <string name="security_patch" msgid="8438384045870296634">"Android સુરક્ષા પૅચ સ્તર"</string>
+    <string name="device_manufacturer" msgid="3516742885166545865">"નિર્માતા"</string>
     <string name="model_info" msgid="1952009518045740889">"મોડલ"</string>
     <string name="hardware_info" msgid="2605080746512527805">"મૉડલ અને હાર્ડવેર"</string>
     <string name="hardware_revision" msgid="8893547686367095527">"હાર્ડવેર સંસ્કરણ"</string>
index e43683a..9637bdd 100644 (file)
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
     <string name="firmware_version" msgid="4801135784886859972">"Android वर्शन"</string>
     <string name="security_patch" msgid="8438384045870296634">"Android सुरक्षा पैच का स्‍तर"</string>
+    <string name="device_manufacturer" msgid="3516742885166545865">"निर्माता"</string>
     <string name="model_info" msgid="1952009518045740889">"मॉडल"</string>
     <string name="hardware_info" msgid="2605080746512527805">"मॉडल और हार्डवेयर"</string>
     <string name="hardware_revision" msgid="8893547686367095527">"हार्डवेयर वर्शन"</string>
index 74f2d73..dae6f35 100644 (file)
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
     <string name="firmware_version" msgid="4801135784886859972">"Verzija sustava Android"</string>
     <string name="security_patch" msgid="8438384045870296634">"Razina Androidove sigurnosne zakrpe"</string>
+    <string name="device_manufacturer" msgid="3516742885166545865">"Proizvođač"</string>
     <string name="model_info" msgid="1952009518045740889">"Model"</string>
     <string name="hardware_info" msgid="2605080746512527805">"Model i hardver"</string>
     <string name="hardware_revision" msgid="8893547686367095527">"Verzija hardvera"</string>
index 7e3a837..bb6d6b8 100644 (file)
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
     <string name="firmware_version" msgid="4801135784886859972">"Android verziója"</string>
     <string name="security_patch" msgid="8438384045870296634">"Androidos biztonsági hibajavító csomag szintje"</string>
+    <string name="device_manufacturer" msgid="3516742885166545865">"Gyártó"</string>
     <string name="model_info" msgid="1952009518045740889">"Modell"</string>
     <string name="hardware_info" msgid="2605080746512527805">"Modell és hardver"</string>
     <string name="hardware_revision" msgid="8893547686367095527">"Hardververzió"</string>
index 4c99793..4e1e215 100644 (file)
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
     <string name="firmware_version" msgid="4801135784886859972">"Android-ի տարբերակը"</string>
     <string name="security_patch" msgid="8438384045870296634">"Android-ի խոցելիության շտկման մակարդակը"</string>
+    <string name="device_manufacturer" msgid="3516742885166545865">"Արտադրող"</string>
     <string name="model_info" msgid="1952009518045740889">"Մոդելը"</string>
     <string name="hardware_info" msgid="2605080746512527805">"Մոդելը և սարքակազմը"</string>
     <string name="hardware_revision" msgid="8893547686367095527">"Սարքակազմի տարբերակը"</string>
index 1652894..9563d56 100644 (file)
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
     <string name="firmware_version" msgid="4801135784886859972">"Versi Android"</string>
     <string name="security_patch" msgid="8438384045870296634">"Tingkat patch keamanan Android"</string>
+    <string name="device_manufacturer" msgid="3516742885166545865">"Produsen"</string>
     <string name="model_info" msgid="1952009518045740889">"Model"</string>
     <string name="hardware_info" msgid="2605080746512527805">"Model &amp; hardware"</string>
     <string name="hardware_revision" msgid="8893547686367095527">"Versi hardware"</string>
index b35c858..4c23cb8 100644 (file)
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
     <string name="firmware_version" msgid="4801135784886859972">"Android útgáfa"</string>
     <string name="security_patch" msgid="8438384045870296634">"Stig Android öryggisplásturs"</string>
+    <string name="device_manufacturer" msgid="3516742885166545865">"Framleiðandi"</string>
     <string name="model_info" msgid="1952009518045740889">"Gerð"</string>
     <string name="hardware_info" msgid="2605080746512527805">"Gerð og vélbúnaður"</string>
     <string name="hardware_revision" msgid="8893547686367095527">"Vélbúnaðarútgáfa"</string>
index 66c5d8a..7b41ad6 100644 (file)
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
     <string name="firmware_version" msgid="4801135784886859972">"Versione di Android"</string>
     <string name="security_patch" msgid="8438384045870296634">"Livello patch di sicurezza Android"</string>
+    <string name="device_manufacturer" msgid="3516742885166545865">"Produttore"</string>
     <string name="model_info" msgid="1952009518045740889">"Modello"</string>
     <string name="hardware_info" msgid="2605080746512527805">"Modello e hardware"</string>
     <string name="hardware_revision" msgid="8893547686367095527">"Versione hardware"</string>
index 7597e44..27db3dd 100644 (file)
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
     <string name="firmware_version" msgid="4801135784886859972">"‏גרסת Android"</string>
     <string name="security_patch" msgid="8438384045870296634">"‏רמת תיקון האבטחה ב-Android"</string>
+    <string name="device_manufacturer" msgid="3516742885166545865">"יצרן"</string>
     <string name="model_info" msgid="1952009518045740889">"דגם"</string>
     <string name="hardware_info" msgid="2605080746512527805">"דגם וחומרה"</string>
     <string name="hardware_revision" msgid="8893547686367095527">"גרסת חומרה"</string>
index b4095d1..7791c50 100644 (file)
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
     <string name="firmware_version" msgid="4801135784886859972">"Androidバージョン"</string>
     <string name="security_patch" msgid="8438384045870296634">"Androidセキュリティパッチレベル"</string>
+    <string name="device_manufacturer" msgid="3516742885166545865">"メーカー"</string>
     <string name="model_info" msgid="1952009518045740889">"モデル"</string>
     <string name="hardware_info" msgid="2605080746512527805">"モデルとハードウェア"</string>
     <string name="hardware_revision" msgid="8893547686367095527">"ハードウェア バージョン"</string>
index 1330072..2358071 100644 (file)
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
     <string name="firmware_version" msgid="4801135784886859972">"Android-ის ვერსია"</string>
     <string name="security_patch" msgid="8438384045870296634">"Android-ის უსაფრთხოების ნაწილაკის დონე"</string>
+    <string name="device_manufacturer" msgid="3516742885166545865">"მწარმოებელი"</string>
     <string name="model_info" msgid="1952009518045740889">"მოდელი"</string>
     <string name="hardware_info" msgid="2605080746512527805">"მოდელი და აპარატურა"</string>
     <string name="hardware_revision" msgid="8893547686367095527">"აპარატურის ვერსია"</string>
index 0799f20..cfd4a8e 100644 (file)
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
     <string name="firmware_version" msgid="4801135784886859972">"Android нұсқасы"</string>
     <string name="security_patch" msgid="8438384045870296634">"Android қауіпсіздік түзетуінің деңгейі"</string>
+    <string name="device_manufacturer" msgid="3516742885166545865">"Өндіруші"</string>
     <string name="model_info" msgid="1952009518045740889">"Үлгісі"</string>
     <string name="hardware_info" msgid="2605080746512527805">"Үлгі және жабдық"</string>
     <string name="hardware_revision" msgid="8893547686367095527">"Жабдық нұсқасы"</string>
index 1e3fa34..e412fc2 100644 (file)
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
     <string name="firmware_version" msgid="4801135784886859972">"កំណែ Android"</string>
     <string name="security_patch" msgid="8438384045870296634">"កម្រិតនៃការដោះស្រាយសុវត្ថិភាព Android"</string>
+    <string name="device_manufacturer" msgid="3516742885166545865">"ក្រុមហ៊ុនផលិត"</string>
     <string name="model_info" msgid="1952009518045740889">"គំរូ"</string>
     <string name="hardware_info" msgid="2605080746512527805">"ម៉ូដែល និង​ផ្នែករឹង"</string>
     <string name="hardware_revision" msgid="8893547686367095527">"កំណែ​ផ្នែករឹង"</string>
index c86e559..ba371d4 100644 (file)
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
     <string name="firmware_version" msgid="4801135784886859972">"Android ಆವೃತ್ತಿ"</string>
     <string name="security_patch" msgid="8438384045870296634">"Android ಭದ್ರತೆ ಪ್ಯಾಚ್ ಮಟ್ಟ"</string>
+    <string name="device_manufacturer" msgid="3516742885166545865">"ತಯಾರಕರು"</string>
     <string name="model_info" msgid="1952009518045740889">"ಮಾಡೆಲ್"</string>
     <string name="hardware_info" msgid="2605080746512527805">"ಮಾಡೆಲ್ ಮತ್ತು ಹಾರ್ಡ್‌ವೇರ್"</string>
     <string name="hardware_revision" msgid="8893547686367095527">"ಹಾರ್ಡ್‌ವೇರ್ ಆವೃತ್ತಿ"</string>
index 048fe7c..1fe4e5d 100644 (file)
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
     <string name="firmware_version" msgid="4801135784886859972">"Android 버전"</string>
     <string name="security_patch" msgid="8438384045870296634">"Android 보안 패치 수준"</string>
+    <string name="device_manufacturer" msgid="3516742885166545865">"제조업체"</string>
     <string name="model_info" msgid="1952009518045740889">"모델"</string>
     <string name="hardware_info" msgid="2605080746512527805">"모델 및 하드웨어"</string>
     <string name="hardware_revision" msgid="8893547686367095527">"하드웨어 버전"</string>
index 8f1a014..d0c1e10 100644 (file)
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
     <string name="firmware_version" msgid="4801135784886859972">"Android версиясы"</string>
     <string name="security_patch" msgid="8438384045870296634">"Коопсуздук тутуму качан жаңыртылды"</string>
+    <string name="device_manufacturer" msgid="3516742885166545865">"Өндүрүүчү"</string>
     <string name="model_info" msgid="1952009518045740889">"Үлгүсү"</string>
     <string name="hardware_info" msgid="2605080746512527805">"Түзмөктүн үлгүсү/аппараттык камсыздалышы"</string>
     <string name="hardware_revision" msgid="8893547686367095527">"Аппараттык камсыздоонун версиясы"</string>
index 32e6f10..5214a6a 100644 (file)
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
     <string name="firmware_version" msgid="4801135784886859972">"ເວີຊັນຂອງ Android"</string>
     <string name="security_patch" msgid="8438384045870296634">"ລະ​ດັບ​ບ່ອນ​ຄວາມ​ປອດ​ໄພ Android"</string>
+    <string name="device_manufacturer" msgid="3516742885166545865">"ຜູ້ຜະລິດ"</string>
     <string name="model_info" msgid="1952009518045740889">"ໂມເດວ"</string>
     <string name="hardware_info" msgid="2605080746512527805">"ໂມເດວ ແລະ ຮາດແວ"</string>
     <string name="hardware_revision" msgid="8893547686367095527">"ເວີຊັນຂອງຮາດແວ"</string>
index 6a04b7b..232b1fb 100644 (file)
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
     <string name="firmware_version" msgid="4801135784886859972">"„Android“ versija"</string>
     <string name="security_patch" msgid="8438384045870296634">"„Android“ saugos pataisos lygis"</string>
+    <string name="device_manufacturer" msgid="3516742885166545865">"Gamintojas"</string>
     <string name="model_info" msgid="1952009518045740889">"Modelis"</string>
     <string name="hardware_info" msgid="2605080746512527805">"Modelis ir aparatinė įranga"</string>
     <string name="hardware_revision" msgid="8893547686367095527">"Aparatinės įrangos versija"</string>
index a42515f..f1037f4 100644 (file)
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
     <string name="firmware_version" msgid="4801135784886859972">"Android versija"</string>
     <string name="security_patch" msgid="8438384045870296634">"Android drošības ielāpa līmenis"</string>
+    <string name="device_manufacturer" msgid="3516742885166545865">"Ražotājs"</string>
     <string name="model_info" msgid="1952009518045740889">"Modelis"</string>
     <string name="hardware_info" msgid="2605080746512527805">"Modelis un aparatūra"</string>
     <string name="hardware_revision" msgid="8893547686367095527">"Aparatūras versija"</string>
index 03cd830..bc767a7 100644 (file)
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
     <string name="firmware_version" msgid="4801135784886859972">"Верзија на Android"</string>
     <string name="security_patch" msgid="8438384045870296634">"Ниво на безбедносна лепенка на Android"</string>
+    <string name="device_manufacturer" msgid="3516742885166545865">"Производителот"</string>
     <string name="model_info" msgid="1952009518045740889">"Модел"</string>
     <string name="hardware_info" msgid="2605080746512527805">"Модел и хардвер"</string>
     <string name="hardware_revision" msgid="8893547686367095527">"Верзија на хардвер"</string>
index abf10fd..34bbdae 100644 (file)
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
     <string name="firmware_version" msgid="4801135784886859972">"Android പതിപ്പ്"</string>
     <string name="security_patch" msgid="8438384045870296634">"Android സുരക്ഷാ പാച്ച് നില"</string>
+    <string name="device_manufacturer" msgid="3516742885166545865">"നിർമ്മാതാവ്"</string>
     <string name="model_info" msgid="1952009518045740889">"മോഡല്‍"</string>
     <string name="hardware_info" msgid="2605080746512527805">"മോഡലും ഹാർഡ്‌വെയറും"</string>
     <string name="hardware_revision" msgid="8893547686367095527">"ഹാർഡ്‌വെയർ പതിപ്പ്"</string>
index bfbdf51..52eda60 100644 (file)
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
     <string name="firmware_version" msgid="4801135784886859972">"Андройд хувилбар"</string>
     <string name="security_patch" msgid="8438384045870296634">"Android аюулгүй байдлын засварын түвшин"</string>
+    <string name="device_manufacturer" msgid="3516742885166545865">"Үйлдвэрлэгч"</string>
     <string name="model_info" msgid="1952009518045740889">"Загвар"</string>
     <string name="hardware_info" msgid="2605080746512527805">"Загвар, техник хангамж"</string>
     <string name="hardware_revision" msgid="8893547686367095527">"Техник хангамжийн хувилбар"</string>
index a7e5703..d8012d8 100644 (file)
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
     <string name="firmware_version" msgid="4801135784886859972">"Android आवृत्ती"</string>
     <string name="security_patch" msgid="8438384045870296634">"Android सुरक्षितता पॅच दर्जा"</string>
+    <string name="device_manufacturer" msgid="3516742885166545865">"निर्माता"</string>
     <string name="model_info" msgid="1952009518045740889">"मॉडेल"</string>
     <string name="hardware_info" msgid="2605080746512527805">"मॉडेल &amp; हार्डवेअर"</string>
     <string name="hardware_revision" msgid="8893547686367095527">"हार्डवेअर आवृत्‍ती"</string>
index a201661..9af413e 100644 (file)
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
     <string name="firmware_version" msgid="4801135784886859972">"Versi Android"</string>
     <string name="security_patch" msgid="8438384045870296634">"Tahap tampung keselamatan Android"</string>
+    <string name="device_manufacturer" msgid="3516742885166545865">"Pengeluar"</string>
     <string name="model_info" msgid="1952009518045740889">"Model"</string>
     <string name="hardware_info" msgid="2605080746512527805">"Model &amp; perkakasan"</string>
     <string name="hardware_revision" msgid="8893547686367095527">"Versi perkakasan"</string>
index 4f87096..f5b13f1 100644 (file)
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
     <string name="firmware_version" msgid="4801135784886859972">"Android ဗားရှင်း"</string>
     <string name="security_patch" msgid="8438384045870296634">"Android လုံခြုံမှု ပက်ခ်ျ အဆင့်"</string>
+    <string name="device_manufacturer" msgid="3516742885166545865">"ထုတ်လုပ်သူ"</string>
     <string name="model_info" msgid="1952009518045740889">"မော်ဒယ်"</string>
     <string name="hardware_info" msgid="2605080746512527805">"မော်ဒယ်နှင့် စက်ပစ္စည်း"</string>
     <string name="hardware_revision" msgid="8893547686367095527">"စက်ပစ္စည်းဗားရှင်း"</string>
index b831a9c..3d826f7 100644 (file)
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
     <string name="firmware_version" msgid="4801135784886859972">"Android-versjon"</string>
     <string name="security_patch" msgid="8438384045870296634">"Nivå av sikkerhetsoppdatering i Android"</string>
+    <string name="device_manufacturer" msgid="3516742885166545865">"Produsent"</string>
     <string name="model_info" msgid="1952009518045740889">"Modell"</string>
     <string name="hardware_info" msgid="2605080746512527805">"Modell og maskinvare"</string>
     <string name="hardware_revision" msgid="8893547686367095527">"Maskinvareversjon"</string>
index 07d73ac..e169f05 100644 (file)
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
     <string name="firmware_version" msgid="4801135784886859972">"एन्ड्रोइड संस्करण"</string>
     <string name="security_patch" msgid="8438384045870296634">"Android सुरक्षा प्याच चरण"</string>
+    <string name="device_manufacturer" msgid="3516742885166545865">"निर्माता"</string>
     <string name="model_info" msgid="1952009518045740889">"मोडेल"</string>
     <string name="hardware_info" msgid="2605080746512527805">"मोडेल तथा हार्डवेयर"</string>
     <string name="hardware_revision" msgid="8893547686367095527">"हार्डवेयरको संस्करण"</string>
index c8d7931..4c048de 100644 (file)
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
     <string name="firmware_version" msgid="4801135784886859972">"Android-versie"</string>
     <string name="security_patch" msgid="8438384045870296634">"Niveau van Android-beveiligingspatch"</string>
+    <string name="device_manufacturer" msgid="3516742885166545865">"Fabrikant"</string>
     <string name="model_info" msgid="1952009518045740889">"Model"</string>
     <string name="hardware_info" msgid="2605080746512527805">"Model en hardware"</string>
     <string name="hardware_revision" msgid="8893547686367095527">"Hardwareversie"</string>
index 54ecf4a..87edad6 100644 (file)
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
     <string name="firmware_version" msgid="4801135784886859972">"Android ਵਰਜਨ"</string>
     <string name="security_patch" msgid="8438384045870296634">"Android ਸੁਰੱਖਿਆ ਪੈਚ ਪੱਧਰ"</string>
+    <string name="device_manufacturer" msgid="3516742885166545865">"ਨਿਰਮਾਤਾ"</string>
     <string name="model_info" msgid="1952009518045740889">"ਮਾਡਲ"</string>
     <string name="hardware_info" msgid="2605080746512527805">"ਮਾਡਲ ਅਤੇ ਹਾਰਡਵੇਅਰ"</string>
     <string name="hardware_revision" msgid="8893547686367095527">"ਹਾਰਡਵੇਅਰ ਵਰਜਨ"</string>
index 5413da8..e242069 100644 (file)
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
     <string name="firmware_version" msgid="4801135784886859972">"Wersja Androida"</string>
     <string name="security_patch" msgid="8438384045870296634">"Stan aktualizacji zabezpieczeń"</string>
+    <string name="device_manufacturer" msgid="3516742885166545865">"Producent"</string>
     <string name="model_info" msgid="1952009518045740889">"Model"</string>
     <string name="hardware_info" msgid="2605080746512527805">"Model i sprzęt"</string>
     <string name="hardware_revision" msgid="8893547686367095527">"Wersja sprzętu"</string>
index 1c4741c..74f7b58 100644 (file)
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
     <string name="firmware_version" msgid="4801135784886859972">"Versão do Android"</string>
     <string name="security_patch" msgid="8438384045870296634">"Nível do patch de segurança do Android"</string>
+    <string name="device_manufacturer" msgid="3516742885166545865">"Fabricante"</string>
     <string name="model_info" msgid="1952009518045740889">"Modelo"</string>
     <string name="hardware_info" msgid="2605080746512527805">"Modelo e hardware"</string>
     <string name="hardware_revision" msgid="8893547686367095527">"Versão do hardware"</string>
index 1735ed3..49c7bac 100644 (file)
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
     <string name="firmware_version" msgid="4801135784886859972">"Versão do Android"</string>
     <string name="security_patch" msgid="8438384045870296634">"Nível do patch de segurança do Android"</string>
+    <string name="device_manufacturer" msgid="3516742885166545865">"Fabricante"</string>
     <string name="model_info" msgid="1952009518045740889">"Modelo"</string>
     <string name="hardware_info" msgid="2605080746512527805">"Modelo e hardware"</string>
     <string name="hardware_revision" msgid="8893547686367095527">"Versão do hardware"</string>
index 1c4741c..74f7b58 100644 (file)
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
     <string name="firmware_version" msgid="4801135784886859972">"Versão do Android"</string>
     <string name="security_patch" msgid="8438384045870296634">"Nível do patch de segurança do Android"</string>
+    <string name="device_manufacturer" msgid="3516742885166545865">"Fabricante"</string>
     <string name="model_info" msgid="1952009518045740889">"Modelo"</string>
     <string name="hardware_info" msgid="2605080746512527805">"Modelo e hardware"</string>
     <string name="hardware_revision" msgid="8893547686367095527">"Versão do hardware"</string>
index d9bf3ce..793f7c7 100644 (file)
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
     <string name="firmware_version" msgid="4801135784886859972">"Versiune Android"</string>
     <string name="security_patch" msgid="8438384045870296634">"Nivelul corecției de securitate Android"</string>
+    <string name="device_manufacturer" msgid="3516742885166545865">"Producător"</string>
     <string name="model_info" msgid="1952009518045740889">"Model"</string>
     <string name="hardware_info" msgid="2605080746512527805">"Model și hardware"</string>
     <string name="hardware_revision" msgid="8893547686367095527">"Versiune de hardware"</string>
index 5fb3763..b3d6af3 100644 (file)
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
     <string name="firmware_version" msgid="4801135784886859972">"Версия Android"</string>
     <string name="security_patch" msgid="8438384045870296634">"Последнее обновление системы безопасности"</string>
+    <string name="device_manufacturer" msgid="3516742885166545865">"Производитель"</string>
     <string name="model_info" msgid="1952009518045740889">"Модель"</string>
     <string name="hardware_info" msgid="2605080746512527805">"Модель и оборудование"</string>
     <string name="hardware_revision" msgid="8893547686367095527">"Версия аппаратного обеспечения"</string>
index 6338986..049f284 100644 (file)
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
     <string name="firmware_version" msgid="4801135784886859972">"Android අනුවාදය"</string>
     <string name="security_patch" msgid="8438384045870296634">"Android ආරක්ෂණ පැච් මට්ටම"</string>
+    <string name="device_manufacturer" msgid="3516742885166545865">"නිෂ්පාදකයා"</string>
     <string name="model_info" msgid="1952009518045740889">"මාදිලිය"</string>
     <string name="hardware_info" msgid="2605080746512527805">"මාදිලිය සහ දෘඨාංග"</string>
     <string name="hardware_revision" msgid="8893547686367095527">"දෘඨාංග අනුවාදය"</string>
index ab1acdc..a4a6805 100644 (file)
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
     <string name="firmware_version" msgid="4801135784886859972">"Verzia systému Android"</string>
     <string name="security_patch" msgid="8438384045870296634">"Úroveň opráv zabezpečenia systému"</string>
+    <string name="device_manufacturer" msgid="3516742885166545865">"Výrobca"</string>
     <string name="model_info" msgid="1952009518045740889">"Model"</string>
     <string name="hardware_info" msgid="2605080746512527805">"Model a hardvér"</string>
     <string name="hardware_revision" msgid="8893547686367095527">"Hardvérová verzia"</string>
index 26fae55..55208fd 100644 (file)
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
     <string name="firmware_version" msgid="4801135784886859972">"Različica sistema Android"</string>
     <string name="security_patch" msgid="8438384045870296634">"Raven popravkov za varnost v Androidu"</string>
+    <string name="device_manufacturer" msgid="3516742885166545865">"Proizvajalec"</string>
     <string name="model_info" msgid="1952009518045740889">"Model"</string>
     <string name="hardware_info" msgid="2605080746512527805">"Model in strojna oprema"</string>
     <string name="hardware_revision" msgid="8893547686367095527">"Različica strojne opreme"</string>
index 2a80fa3..3899e92 100644 (file)
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
     <string name="firmware_version" msgid="4801135784886859972">"Versioni i Android-it"</string>
     <string name="security_patch" msgid="8438384045870296634">"Niveli i korrigjimit të sigurisë së Android"</string>
+    <string name="device_manufacturer" msgid="3516742885166545865">"Prodhuesi"</string>
     <string name="model_info" msgid="1952009518045740889">"Modeli"</string>
     <string name="hardware_info" msgid="2605080746512527805">"Modeli dhe hardueri"</string>
     <string name="hardware_revision" msgid="8893547686367095527">"Versioni i harduerit"</string>
index b60aa02..db20480 100644 (file)
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
     <string name="firmware_version" msgid="4801135784886859972">"Android верзија"</string>
     <string name="security_patch" msgid="8438384045870296634">"Ниво безбедносне закрпе за Android"</string>
+    <string name="device_manufacturer" msgid="3516742885166545865">"Произвођач"</string>
     <string name="model_info" msgid="1952009518045740889">"Модел"</string>
     <string name="hardware_info" msgid="2605080746512527805">"Модел и хардвер"</string>
     <string name="hardware_revision" msgid="8893547686367095527">"Верзија хардвера"</string>
index 17e81e3..e7da77a 100644 (file)
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
     <string name="firmware_version" msgid="4801135784886859972">"Android-version"</string>
     <string name="security_patch" msgid="8438384045870296634">"Nivå av säkerhetskorrigering för Android"</string>
+    <string name="device_manufacturer" msgid="3516742885166545865">"Tillverkare"</string>
     <string name="model_info" msgid="1952009518045740889">"Modell"</string>
     <string name="hardware_info" msgid="2605080746512527805">"Modell och maskinvara"</string>
     <string name="hardware_revision" msgid="8893547686367095527">"Maskinvaruversion"</string>
index bf316ba..ab49d4f 100644 (file)
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
     <string name="firmware_version" msgid="4801135784886859972">"Toleo la Android"</string>
     <string name="security_patch" msgid="8438384045870296634">"Kiwango cha kuzuia athari za usalama kwenye Android"</string>
+    <string name="device_manufacturer" msgid="3516742885166545865">"Mtengenezaji"</string>
     <string name="model_info" msgid="1952009518045740889">"Muundo"</string>
     <string name="hardware_info" msgid="2605080746512527805">"Muundo na maunzi"</string>
     <string name="hardware_revision" msgid="8893547686367095527">"Toleo la maunzi"</string>
index 8c8d35c..6daa3e4 100644 (file)
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
     <string name="firmware_version" msgid="4801135784886859972">"Android பதிப்பு"</string>
     <string name="security_patch" msgid="8438384045870296634">"Android பாதுகாப்பின் இணைப்புநிரல் நிலை"</string>
+    <string name="device_manufacturer" msgid="3516742885166545865">"உற்பத்தியாளர்"</string>
     <string name="model_info" msgid="1952009518045740889">"மாடல்"</string>
     <string name="hardware_info" msgid="2605080746512527805">"மாடல் &amp; வன்பொருள்"</string>
     <string name="hardware_revision" msgid="8893547686367095527">"வன்பொருள் பதிப்பு"</string>
index 92be065..ef9fbe2 100644 (file)
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
     <string name="firmware_version" msgid="4801135784886859972">"Android వెర్షన్"</string>
     <string name="security_patch" msgid="8438384045870296634">"Android భద్రతా అతికింపు స్థాయి"</string>
+    <string name="device_manufacturer" msgid="3516742885166545865">"తయారీదారు"</string>
     <string name="model_info" msgid="1952009518045740889">"మోడల్"</string>
     <string name="hardware_info" msgid="2605080746512527805">"మోడల్ &amp; హార్డ్‌వేర్"</string>
     <string name="hardware_revision" msgid="8893547686367095527">"హార్డ్‌వేర్ వెర్షన్"</string>
index b0890f9..0c07424 100644 (file)
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
     <string name="firmware_version" msgid="4801135784886859972">"เวอร์ชันของ Android"</string>
     <string name="security_patch" msgid="8438384045870296634">"ระดับแพตช์ความปลอดภัยของ Android"</string>
+    <string name="device_manufacturer" msgid="3516742885166545865">"ผู้ผลิต"</string>
     <string name="model_info" msgid="1952009518045740889">"โมเดล"</string>
     <string name="hardware_info" msgid="2605080746512527805">"โมเดลและฮาร์ดแวร์"</string>
     <string name="hardware_revision" msgid="8893547686367095527">"เวอร์ชันฮาร์ดแวร์"</string>
index ad9e837..5864543 100644 (file)
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
     <string name="firmware_version" msgid="4801135784886859972">"Bersyon ng Android"</string>
     <string name="security_patch" msgid="8438384045870296634">"Antas ng patch ng seguridad ng Android"</string>
+    <string name="device_manufacturer" msgid="3516742885166545865">"Manufacturer"</string>
     <string name="model_info" msgid="1952009518045740889">"Modelo"</string>
     <string name="hardware_info" msgid="2605080746512527805">"Modelo at hardware"</string>
     <string name="hardware_revision" msgid="8893547686367095527">"Bersyon ng hardware"</string>
index c6ab8a6..2d2a1cc 100644 (file)
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
     <string name="firmware_version" msgid="4801135784886859972">"Android sürümü"</string>
     <string name="security_patch" msgid="8438384045870296634">"Android güvenlik yaması düzeyi"</string>
+    <string name="device_manufacturer" msgid="3516742885166545865">"Üretici"</string>
     <string name="model_info" msgid="1952009518045740889">"Model"</string>
     <string name="hardware_info" msgid="2605080746512527805">"Model ve donanım"</string>
     <string name="hardware_revision" msgid="8893547686367095527">"Donanım sürümü"</string>
index 5fb0dca..611a129 100644 (file)
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
     <string name="firmware_version" msgid="4801135784886859972">"Версія Android"</string>
     <string name="security_patch" msgid="8438384045870296634">"Останнє виправлення системи безпеки Android"</string>
+    <string name="device_manufacturer" msgid="3516742885166545865">"Виробник"</string>
     <string name="model_info" msgid="1952009518045740889">"Модель"</string>
     <string name="hardware_info" msgid="2605080746512527805">"Модель і апаратне забезпечення"</string>
     <string name="hardware_revision" msgid="8893547686367095527">"Версія апаратного забезпечення"</string>
index f41c5b9..e6cf930 100644 (file)
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
     <string name="firmware_version" msgid="4801135784886859972">"‏Android ورژن"</string>
     <string name="security_patch" msgid="8438384045870296634">"‏Android سیکیورٹی پیچ کی سطح"</string>
+    <string name="device_manufacturer" msgid="3516742885166545865">"مینوفیکچرر"</string>
     <string name="model_info" msgid="1952009518045740889">"ماڈل"</string>
     <string name="hardware_info" msgid="2605080746512527805">"ماڈل اور ہارڈ ویئر"</string>
     <string name="hardware_revision" msgid="8893547686367095527">"ہارڈ ویئر کا ورژن"</string>
index e93a002..eab7fd9 100644 (file)
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
     <string name="firmware_version" msgid="4801135784886859972">"Android versiyasi"</string>
     <string name="security_patch" msgid="8438384045870296634">"Tizim xavfsizligi uchun yangilanish"</string>
+    <string name="device_manufacturer" msgid="3516742885166545865">"Ishlab chiqaruvchi"</string>
     <string name="model_info" msgid="1952009518045740889">"Model"</string>
     <string name="hardware_info" msgid="2605080746512527805">"Model va apparat ta’minoti"</string>
     <string name="hardware_revision" msgid="8893547686367095527">"Apparat versiyasi"</string>
index 17df30a..bcb9526 100644 (file)
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
     <string name="firmware_version" msgid="4801135784886859972">"Phiên bản Android"</string>
     <string name="security_patch" msgid="8438384045870296634">"Mức bản vá bảo mật của Android"</string>
+    <string name="device_manufacturer" msgid="3516742885166545865">"Nhà sản xuất"</string>
     <string name="model_info" msgid="1952009518045740889">"Kiểu máy"</string>
     <string name="hardware_info" msgid="2605080746512527805">"Kiểu máy và phần cứng"</string>
     <string name="hardware_revision" msgid="8893547686367095527">"Phiên bản phần cứng"</string>
index 74ea27f..d334b01 100644 (file)
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
     <string name="firmware_version" msgid="4801135784886859972">"Android 版本"</string>
     <string name="security_patch" msgid="8438384045870296634">"Android 安全补丁程序级别"</string>
+    <string name="device_manufacturer" msgid="3516742885166545865">"制造商"</string>
     <string name="model_info" msgid="1952009518045740889">"型号"</string>
     <string name="hardware_info" msgid="2605080746512527805">"型号和硬件"</string>
     <string name="hardware_revision" msgid="8893547686367095527">"硬件版本"</string>
     <string name="fcc_equipment_id" msgid="149114368246356737">"设备 ID"</string>
     <string name="baseband_version" msgid="1848990160763524801">"基带版本"</string>
     <string name="kernel_version" msgid="9192574954196167602">"内核版本"</string>
+    <string name="opengl_version">"Open GL 驱动版本"</string>
     <string name="build_number" msgid="3075795840572241758">"版本号"</string>
     <string name="selinux_status" msgid="6212165375172061672">"SELinux 状态"</string>
     <string name="device_info_not_available" msgid="8062521887156825182">"无法获取"</string>
     <string name="runningservicedetails_stop_dlg_title" msgid="4253292537154337233">"要停止系统服务吗?"</string>
     <string name="runningservicedetails_stop_dlg_text" product="tablet" msgid="3371302398335665793">"如果停止此服务,您平板电脑上的某些功能也将随之停止工作,并在您将平板电脑关机然后再重新打开后才能使用。"</string>
     <string name="runningservicedetails_stop_dlg_text" product="default" msgid="3920243762189484756">"如果停止此服务,您手机上的某些功能也将随之停止工作,并在您将手机关机然后再重新打开后才能使用。"</string>
+    <string name="android_x86_options_title">"安卓X86设置"</string>
+    <string name="android_x86_dashboard_summary">兼容模式、统计</string>
+    <string name="nativebridge_toggle_title">"兼容模式"</string>
+    <string name="nativebridge_toggle_summary">"可兼容於使用 arm 庫的应用"</string>
+    <string name="collect_hw_info_title">收集匿名的硬件信息</string>
+    <string name="collect_hw_info_summary">收集本机的硬件信息并传送给 Android-x86 项目做统计</string>
+    <string name="collect_apps_usage_title">收集匿名的应用信息</string>
+    <string name="collect_apps_usage_summary">收集应用的开启信息并传送给 Android-x86 项目做统计</string>
     <string name="language_input_gesture_title" msgid="8749227808244881255">"语言、输入法和手势"</string>
     <string name="language_input_gesture_summary_on_with_assist" msgid="7219895055450633449"></string>
     <string name="language_input_gesture_summary_on_non_assist" msgid="756147879200943161"></string>
index ff2690a..abdf64e 100644 (file)
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
     <string name="firmware_version" msgid="4801135784886859972">"Android 版本"</string>
     <string name="security_patch" msgid="8438384045870296634">"Android 安全性修補程式級別"</string>
+    <string name="device_manufacturer" msgid="3516742885166545865">"製造商"</string>
     <string name="model_info" msgid="1952009518045740889">"型號"</string>
     <string name="hardware_info" msgid="2605080746512527805">"型號和硬件"</string>
     <string name="hardware_revision" msgid="8893547686367095527">"硬件版本"</string>
     <string name="runningservicedetails_stop_dlg_title" msgid="4253292537154337233">"停止系統服務?"</string>
     <string name="runningservicedetails_stop_dlg_text" product="tablet" msgid="3371302398335665793">"如果您停用這項服務,您平板電腦上的某些功能可能會停止正常運作,待您重新開機後才會恢復正常。"</string>
     <string name="runningservicedetails_stop_dlg_text" product="default" msgid="3920243762189484756">"如果您停用這項服務,您手機上的某些功能可能會停止正常運作,待您重新開機後才會恢復正常。"</string>
+    <string name="android_x86_options_title">"Android-x86 設定"</string>
+    <string name="android_x86_dashboard_summary">原生相容模式、統計</string>
+    <string name="nativebridge_toggle_title">"原生相容模式"</string>
+    <string name="nativebridge_toggle_summary">"可相容於使用 arm 原生函式庫的應用程式"</string>
+    <string name="collect_hw_info_title">收集匿名的硬體資訊</string>
+    <string name="collect_hw_info_summary">收集本機的硬體資訊並傳送給 Android-x86 計劃以便統計</string>
+    <string name="collect_apps_usage_title">收集匿名的應用程式資訊</string>
+    <string name="collect_apps_usage_summary">收集應用程式的開啟資料並傳送給 Android-x86 計劃以便統計</string>
     <string name="language_input_gesture_title" msgid="8749227808244881255">"語言、輸入和手勢"</string>
     <string name="language_input_gesture_summary_on_with_assist" msgid="7219895055450633449"></string>
     <string name="language_input_gesture_summary_on_non_assist" msgid="756147879200943161"></string>
index 87c1815..2c283ed 100644 (file)
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
     <string name="firmware_version" msgid="4801135784886859972">"Android 版本"</string>
     <string name="security_patch" msgid="8438384045870296634">"Android 安全性修補程式等級"</string>
+    <string name="device_manufacturer" msgid="3516742885166545865">"製造商"</string>
     <string name="model_info" msgid="1952009518045740889">"型號"</string>
     <string name="hardware_info" msgid="2605080746512527805">"型號與硬體"</string>
     <string name="hardware_revision" msgid="8893547686367095527">"硬體版本"</string>
     <string name="fcc_equipment_id" msgid="149114368246356737">"設備 ID"</string>
     <string name="baseband_version" msgid="1848990160763524801">"基頻版本"</string>
     <string name="kernel_version" msgid="9192574954196167602">"核心版本"</string>
+    <string name="opengl_version">"Open GL 驅動版本"</string>
     <string name="build_number" msgid="3075795840572241758">"版本號碼"</string>
     <string name="selinux_status" msgid="6212165375172061672">"SELinux 狀態"</string>
     <string name="device_info_not_available" msgid="8062521887156825182">"無法取得"</string>
     <string name="runningservicedetails_stop_dlg_title" msgid="4253292537154337233">"停止系統服務?"</string>
     <string name="runningservicedetails_stop_dlg_text" product="tablet" msgid="3371302398335665793">"如果你停用這項服務,你的平板電腦上的某些功能可能無法正常運作,待你重新開機後才會恢復正常。"</string>
     <string name="runningservicedetails_stop_dlg_text" product="default" msgid="3920243762189484756">"如果你停用這項服務,你的手機上的某些功能可能無法正常運作,待你重新開機後才會恢復正常。"</string>
+    <string name="android_x86_options_title">"Android-x86 設定"</string>
+    <string name="android_x86_dashboard_summary">原生相容模式、統計</string>
+    <string name="nativebridge_toggle_title">"原生相容模式"</string>
+    <string name="nativebridge_toggle_summary">"可相容於使用 arm 原生函式庫的應用程式"</string>
+    <string name="collect_hw_info_title">收集匿名的硬體資訊</string>
+    <string name="collect_hw_info_summary">收集本機的硬體資訊並傳送給 Android-x86 計劃以便統計</string>
+    <string name="collect_apps_usage_title">收集匿名的應用程式資訊</string>
+    <string name="collect_apps_usage_summary">收集應用程式的開啟資料並傳送給 Android-x86 計劃以便統計</string>
     <string name="language_input_gesture_title" msgid="8749227808244881255">"語言、輸入和手勢"</string>
     <string name="language_input_gesture_summary_on_with_assist" msgid="7219895055450633449"></string>
     <string name="language_input_gesture_summary_on_non_assist" msgid="756147879200943161"></string>
index 577ad64..bf82208 100644 (file)
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
     <string name="firmware_version" msgid="4801135784886859972">"Inguqulo ye-Android"</string>
     <string name="security_patch" msgid="8438384045870296634">"Ileveli yokuvikeleka ye-Android"</string>
+    <string name="device_manufacturer" msgid="3516742885166545865">"Umkhiqizi"</string>
     <string name="model_info" msgid="1952009518045740889">"Imodeli"</string>
     <string name="hardware_info" msgid="2605080746512527805">"Imodeli nezingxenyekazi zekhompuyutha"</string>
     <string name="hardware_revision" msgid="8893547686367095527">"Inguqulo yezingxenyekazi zekhompuyutha"</string>
diff --git a/res/values/cm_arrays.xml b/res/values/cm_arrays.xml
new file mode 100644 (file)
index 0000000..8de9c59
--- /dev/null
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2012-2014 The CyanogenMod Project
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+<resources>
+    <!-- Arrays for root access capability -->
+    <string-array name="root_access_entries">
+        <item>@string/root_access_none</item>
+        <item>@string/root_access_apps</item>
+        <item>@string/root_access_adb</item>
+        <item>@string/root_access_all</item>
+    </string-array>
+
+    <string-array name="root_access_values">
+        <item>0</item>
+        <item>1</item>
+        <item>2</item>
+        <item>3</item>
+    </string-array>
+</resources>
diff --git a/res/values/cm_strings.xml b/res/values/cm_strings.xml
new file mode 100644 (file)
index 0000000..9cbd4d9
--- /dev/null
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2012-2014 The CyanogenMod Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- Setting checkbox title for root access -->
+    <string name="root_access">Root access</string>
+    <string name="root_access_warning_title">Allow root access?</string>
+    <string name="root_access_warning_message">Allowing applications to request root access is very dangerous and could compromise the security of your system!</string>
+    <string name="root_access_none">Disabled</string>
+    <string name="root_access_apps">Apps only</string>
+    <string name="root_access_adb">ADB only</string>
+    <string name="root_access_all">Apps and ADB</string>
+</resources>
index 4bc1f62..4ad3977 100644 (file)
     <!-- About phone screen, status item label  [CHAR LIMIT=60] -->
     <string name="security_patch">Android security patch level</string>
     <!-- About phone screen, status item label  [CHAR LIMIT=40] -->
+    <string name="device_manufacturer">Manufacturer</string>
+    <!-- About phone screen, status item label  [CHAR LIMIT=40] -->
     <string name="model_info">Model</string>
     <!-- About phone screen, dialog title for showing hardware information such as model, serial number, etc.[CHAR LIMIT=60] -->
     <string name="hardware_info">Model &amp; hardware</string>
     <!-- About phone screen,  setting option name  [CHAR LIMIT=40] -->
     <string name="kernel_version">Kernel version</string>
     <!-- About phone screen,  setting option name  [CHAR LIMIT=40] -->
+    <string name="opengl_version">OpenGL driver version</string>
+    <!-- About phone screen,  setting option name  [CHAR LIMIT=40] -->
     <string name="build_number">Build number</string>
     <!-- About phone screen,  setting option name  [CHAR LIMIT=40] -->
     <string name="selinux_status">SELinux status</string>
         features of your phone may stop working correctly until you power it off
         and then on again.</string>
 
+    <!-- Android-x86 settings -->
+    <string name="android_x86_options_title">Android-x86 options</string>
+    <string name="android_x86_dashboard_summary">Native bridge, statistics</string>
+    <string name="nativebridge_toggle_title">Enable native bridge</string>
+    <string name="nativebridge_toggle_summary">To support apps with arm native libraries</string>
+    <string name="collect_hw_info_title">Collect anonymous hardware information</string>
+    <string name="collect_hw_info_summary">To collect the hardware information of this device and send to Android-x86 statistics</string>
+    <string name="collect_apps_usage_title">Collect anonymous apps usage</string>
+    <string name="collect_apps_usage_summary">To collect the apps usage information and send to Android-x86 statistics</string>
+
     <!-- Languages Settings --> <skip />
     <!-- Title of Language, input & gestures setting on main settings screen. -->
     <string name="language_input_gesture_title">Languages, input &amp; gestures</string>
diff --git a/res/xml/android_x86_options.xml b/res/xml/android_x86_options.xml
new file mode 100644 (file)
index 0000000..30d64de
--- /dev/null
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2015 The Android-x86 Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
+                  xmlns:settings="http://schemas.android.com/apk/res/com.android.settings"
+        android:title="@string/android_x86_options_title">
+
+    <SwitchPreference android:key="toggle_nb"
+        android:title="@string/nativebridge_toggle_title"
+        android:summary="@string/nativebridge_toggle_summary"
+        android:persistent="false" />
+
+    <SwitchPreference android:key="toggle_hw_info"
+        android:title="@string/collect_hw_info_title"
+        android:summary="@string/collect_hw_info_summary"
+        android:persistent="false" />
+
+    <SwitchPreference android:key="toggle_apps_usage"
+        android:title="@string/collect_apps_usage_title"
+        android:summary="@string/collect_apps_usage_summary"
+        android:persistent="false" />
+
+</PreferenceScreen>
index 147c5bc..f154fc9 100644 (file)
             android:targetClass="com.android.settings.qstile.DevelopmentTileConfigActivity" />
     </Preference>
 
+    <ListPreference
+        android:key="root_access"
+        android:title="@string/root_access"
+        android:persistent="false"
+        android:entries="@array/root_access_entries"
+        android:entryValues="@array/root_access_values" />
+
     <PreferenceCategory android:key="debug_debugging_category"
             android:title="@string/debug_debugging_category">
 
index b094175..8e12bdc 100644 (file)
         <Preference android:key="device_feedback"
                 android:title="@string/device_feedback" />
 
+        <!-- Device manufacturer -->
+        <Preference android:key="device_manufacturer"
+                android:title="@string/device_manufacturer"
+                android:summary="@string/device_info_default"/>
+
         <!-- Device hardware model -->
         <Preference
                 android:key="device_model"
                 android:title="@string/kernel_version"
                 android:summary="@string/summary_placeholder"/>
 
+        <!-- OpenGL Version -->
+       <Preference
+                android:key="opengl_version"
+                android:title="@string/opengl_version"
+                android:summary="@string/device_info_default"/>
+
         <!-- Detailed build version -->
         <Preference
                 android:key="build_number"
diff --git a/src/com/android/settings/AndroidX86DashboardFragment.java b/src/com/android/settings/AndroidX86DashboardFragment.java
new file mode 100644 (file)
index 0000000..f739aa3
--- /dev/null
@@ -0,0 +1,184 @@
+/*
+ * Copyright (C) 2018-2020 The Android-x86 Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings;
+
+import android.app.DownloadManager;
+import android.app.DownloadManager.Query;
+import android.app.DownloadManager.Request;
+import android.content.Context;
+import android.database.Cursor;
+import android.net.Uri;
+import android.os.Bundle;
+import android.os.Environment;
+import android.os.SystemProperties;
+import android.support.v7.preference.Preference;
+import android.support.v14.preference.SwitchPreference;
+import android.util.Log;
+import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
+import com.android.settings.SettingsPreferenceFragment;
+import dalvik.system.VMRuntime;
+import java.io.File;
+
+public class AndroidX86DashboardFragment extends SettingsPreferenceFragment {
+
+    private DownloadManager mDownloadManager;
+    private SwitchPreference mNativeBridgePreference;
+    private SwitchPreference mHwInfoPreference;
+    private SwitchPreference mAppsUsagePreference;
+
+    private static final String TAG = "Dl-NB";
+    private static final String KEY_TOGGLE_NB = "toggle_nb";
+    private static final String PROPERTY_NATIVEBRIDGE = "persist.sys.nativebridge";
+    private static final String KEY_TOGGLE_HW_INFO = "toggle_hw_info";
+    private static final String PROPERTY_HW_INFO = "persist.sys.hw_statistics";
+    private static final String KEY_TOGGLE_APPS_USAGE = "toggle_apps_usage";
+    private static final String PROPERTY_APPS_USAGE = "persist.sys.apps_statistics";
+    private static final String NB_LIBRARIES = "Native bridge libraries ";
+    private static long sDownloadId = -1;
+    private static int sDownloadStatus = -1;
+
+    @Override
+    public void onCreate(Bundle icicle) {
+        super.onCreate(icicle);
+
+        mDownloadManager = (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE);
+        addPreferencesFromResource(R.xml.android_x86_options);
+        mNativeBridgePreference = (SwitchPreference) findPreference(KEY_TOGGLE_NB);
+        checkNativeBridgeStatus();
+        mHwInfoPreference = (SwitchPreference) findPreference(KEY_TOGGLE_HW_INFO);
+        mHwInfoPreference.setChecked(SystemProperties.getBoolean(PROPERTY_HW_INFO, true));
+        mAppsUsagePreference = (SwitchPreference) findPreference(KEY_TOGGLE_APPS_USAGE);
+        mAppsUsagePreference.setChecked(SystemProperties.getBoolean(PROPERTY_APPS_USAGE, false));
+    }
+
+    @Override
+    public boolean onPreferenceTreeClick(Preference preference) {
+        if (preference == mNativeBridgePreference) {
+            setNativeBridge(mNativeBridgePreference.isChecked());
+        } else if (preference == mHwInfoPreference) {
+            SystemProperties.set(PROPERTY_HW_INFO, Boolean.toString(mHwInfoPreference.isChecked()));
+        } else if (preference == mAppsUsagePreference) {
+            SystemProperties.set(PROPERTY_APPS_USAGE, Boolean.toString(mAppsUsagePreference.isChecked()));
+        }
+        return super.onPreferenceTreeClick(preference);
+    }
+
+    @Override
+    public int getMetricsCategory() {
+        return MetricsEvent.APPLICATION;
+    }
+
+    private boolean isNativeBridgeAvailable() {
+        File file = new File("/system/lib/libhoudini.so");
+        return file.length() > 0;
+    }
+
+    private void checkNativeBridgeStatus() {
+        boolean nb = SystemProperties.getBoolean(PROPERTY_NATIVEBRIDGE, false);
+        if (!isNativeBridgeAvailable()) {
+            queryDownloading(mDownloadManager);
+            if (sDownloadStatus == DownloadManager.STATUS_RUNNING) {
+                nb = true;
+            } else if (nb) {
+                downloadNativeBridge();
+            }
+        }
+        mNativeBridgePreference.setChecked(nb);
+    }
+
+    private void setNativeBridge(boolean enabled) {
+        Log.d(TAG, "setNativeBridge: " + enabled);
+        if (isNativeBridgeAvailable()) {
+            setNativeBridgeProperty(enabled);
+        } else if (enabled) {
+            downloadNativeBridge();
+        } else if (sDownloadId != -1) {
+            mDownloadManager.remove(sDownloadId);
+            sDownloadId = -1;
+        }
+    }
+
+    private void downloadNativeBridge() {
+        String url, file;
+        if (VMRuntime.getRuntime().is64Bit()) {
+            url = "https://t.cn/RBJ7eml";
+            file = "houdini8_y.sfs";
+        } else {
+            url = "https://t.cn/RBJ7mfG";
+            file = "houdini8_x.sfs";
+        }
+
+        File path = Environment.getExternalStoragePublicDirectory("arm");
+        path.mkdirs();
+        File nb = new File(path, file);
+        if (nb.exists()) {
+            if (sDownloadId != -1) {
+                switch (sDownloadStatus) {
+                    case DownloadManager.STATUS_SUCCESSFUL:
+                        setNativeBridgeProperty(true); // fall through
+                    case DownloadManager.STATUS_RUNNING:
+                        return;
+                    default:
+                        break;
+                }
+            }
+            nb.delete();
+        }
+        mDownloadManager.remove(sDownloadId);
+
+        Request request = new Request(Uri.parse(url)).
+                              setDestinationUri(Uri.fromFile(nb)).
+                              setTitle(NB_LIBRARIES + file.substring(7, 10));
+
+        sDownloadId = mDownloadManager.enqueue(request);
+        Log.i(TAG, "downloading " + url);
+    }
+
+    private static void queryDownloading(DownloadManager dm) {
+        Query query = new Query().setFilterByString(NB_LIBRARIES);
+        Cursor c = null;
+        try {
+            c = dm.query(query);
+            if (c.moveToFirst()) {
+                sDownloadId = c.getInt(c.getColumnIndex(DownloadManager.COLUMN_ID));
+                sDownloadStatus = c.getInt(c.getColumnIndex(DownloadManager.COLUMN_STATUS));
+                Log.i(TAG, "id: " + sDownloadId + " status: " + sDownloadStatus);
+            }
+        } catch (Exception e) {
+            Log.w(TAG, "Exception: " + e);
+        } finally {
+            if (c != null) {
+                c.close();
+            }
+        }
+    }
+
+    private static void setNativeBridgeProperty(boolean enabled) {
+        SystemProperties.set(PROPERTY_NATIVEBRIDGE, enabled ? "1" : "0");
+    }
+
+    public static void onDownloadComplete(DownloadManager dm) {
+        queryDownloading(dm);
+        boolean success = sDownloadStatus == DownloadManager.STATUS_SUCCESSFUL;
+        if (success) {
+            Log.i(TAG, "download success, native bridge enabled");
+        } else {
+            Log.w(TAG, "download failed: " + sDownloadStatus);
+        }
+        setNativeBridgeProperty(success);
+    }
+}
index 7ca52e2..022c7f7 100644 (file)
@@ -28,12 +28,14 @@ import com.android.settings.dashboard.SummaryLoader;
 import com.android.settings.deviceinfo.AdditionalSystemUpdatePreferenceController;
 import com.android.settings.deviceinfo.BasebandVersionPreferenceController;
 import com.android.settings.deviceinfo.BuildNumberPreferenceController;
+import com.android.settings.deviceinfo.DeviceManufacturerPreferenceController;
 import com.android.settings.deviceinfo.DeviceModelPreferenceController;
 import com.android.settings.deviceinfo.FccEquipmentIdPreferenceController;
 import com.android.settings.deviceinfo.FeedbackPreferenceController;
 import com.android.settings.deviceinfo.FirmwareVersionPreferenceController;
 import com.android.settings.deviceinfo.KernelVersionPreferenceController;
 import com.android.settings.deviceinfo.ManualPreferenceController;
+import com.android.settings.deviceinfo.OpenGLVersionPreferenceController;
 import com.android.settings.deviceinfo.RegulatoryInfoPreferenceController;
 import com.android.settings.deviceinfo.SELinuxStatusPreferenceController;
 import com.android.settings.deviceinfo.SafetyInfoPreferenceController;
@@ -123,9 +125,11 @@ public class DeviceInfoSettings extends DashboardFragment implements Indexable {
         controllers.add(new ManualPreferenceController(context));
         controllers.add(new FeedbackPreferenceController(fragment, context));
         controllers.add(new KernelVersionPreferenceController(context));
+        controllers.add(new OpenGLVersionPreferenceController(context));
         controllers.add(new BasebandVersionPreferenceController(context));
         controllers.add(new FirmwareVersionPreferenceController(context, lifecycle));
         controllers.add(new RegulatoryInfoPreferenceController(context));
+        controllers.add(new DeviceManufacturerPreferenceController(context));
         controllers.add(new DeviceModelPreferenceController(context, fragment));
         controllers.add(new SecurityPatchPreferenceController(context));
         controllers.add(new FccEquipmentIdPreferenceController(context));
diff --git a/src/com/android/settings/DownloadCompleteReceiver.java b/src/com/android/settings/DownloadCompleteReceiver.java
new file mode 100644 (file)
index 0000000..711f5f7
--- /dev/null
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2020 The Android-x86 Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings;
+
+import android.app.DownloadManager;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+
+import static com.android.settings.AndroidX86DashboardFragment.onDownloadComplete;
+
+public final class DownloadCompleteReceiver extends BroadcastReceiver {
+    private static final String TAG = "Dl-Receiver";
+
+    @Override
+    public void onReceive(Context context, Intent intent) {
+        if (intent.getAction().equals(DownloadManager.ACTION_DOWNLOAD_COMPLETE)) {
+            DownloadManager dm = (DownloadManager) context.getSystemService(Context.DOWNLOAD_SERVICE);
+            onDownloadComplete(dm);
+        }
+    }
+}
index ee041e8..d2b14f7 100644 (file)
@@ -55,6 +55,7 @@ public class Settings extends SettingsActivity {
     public static class NightDisplaySuggestionActivity extends NightDisplaySettingsActivity { /* empty */ }
     public static class DeviceInfoSettingsActivity extends SettingsActivity { /* empty */ }
     public static class ApplicationSettingsActivity extends SettingsActivity { /* empty */ }
+    public static class AndroidX86DashboardActivity extends SettingsActivity { /* empty */ }
     public static class ManageApplicationsActivity extends SettingsActivity { /* empty */ }
     public static class ManageAssistActivity extends SettingsActivity { /* empty */ }
     public static class AllApplicationsActivity extends SettingsActivity { /* empty */ }
@@ -111,6 +112,7 @@ public class Settings extends SettingsActivity {
     public static class PaymentSettingsActivity extends SettingsActivity { /* empty */ }
     public static class PrintSettingsActivity extends SettingsActivity { /* empty */ }
     public static class PrintJobSettingsActivity extends SettingsActivity { /* empty */ }
+    public static class SuperuserActivity extends SettingsActivity { /* empty */ }
     public static class ZenModeSettingsActivity extends SettingsActivity { /* empty */ }
     public static class ZenModePrioritySettingsActivity extends SettingsActivity { /* empty */ }
     public static class ZenModeAutomationSettingsActivity extends SettingsActivity { /* empty */ }
index c0ffc19..777df85 100644 (file)
@@ -839,6 +839,11 @@ public class SettingsActivity extends SettingsDrawerActivity
                 pm.hasSystemFeature(PackageManager.FEATURE_PRINTING), isAdmin)
                 || somethingChanged;
 
+        somethingChanged = setTileEnabled(new ComponentName(packageName,
+                         Settings.SuperuserActivity.class.getName()),
+                DevelopmentSettings.isRootForAppsEnabled(), isAdmin)
+                || somethingChanged;
+
         final boolean showDev = mDevelopmentPreferences.getBoolean(
                 DevelopmentSettings.PREF_SHOW, android.os.Build.TYPE.equals("eng"))
                 && !um.hasUserRestriction(UserManager.DISALLOW_DEBUGGING_FEATURES);
index 380c070..5dedc36 100644 (file)
@@ -18,6 +18,7 @@ package com.android.settings.core.gateway;
 
 import com.android.settings.ApnEditor;
 import com.android.settings.ApnSettings;
+import com.android.settings.AndroidX86DashboardFragment;
 import com.android.settings.CryptKeeperSettings;
 import com.android.settings.DateTimeSettings;
 import com.android.settings.DeviceAdminSettings;
@@ -60,6 +61,7 @@ import com.android.settings.applications.assist.ManageAssist;
 import com.android.settings.bluetooth.BluetoothDeviceDetailsFragment;
 import com.android.settings.bluetooth.BluetoothSettings;
 import com.android.settings.connecteddevice.ConnectedDeviceDashboardFragment;
+import com.android.settings.cyanogenmod.superuser.PolicyNativeFragment;
 import com.android.settings.dashboard.SupportFragment;
 import com.android.settings.datausage.DataPlanUsageSummary;
 import com.android.settings.datausage.DataUsageList;
@@ -194,6 +196,7 @@ public class SettingsGateway {
             SpecialAccessSettings.class.getName(),
             NotificationAccessSettings.class.getName(),
             ZenAccessSettings.class.getName(),
+            PolicyNativeFragment.class.getName(),
             PrintSettingsFragment.class.getName(),
             PrintJobSettingsFragment.class.getName(),
             TrustedCredentialsSettings.class.getName(),
@@ -247,6 +250,7 @@ public class SettingsGateway {
             NetworkDashboardFragment.class.getName(),
             ConnectedDeviceDashboardFragment.class.getName(),
             AppAndNotificationDashboardFragment.class.getName(),
+            AndroidX86DashboardFragment.class.getName(),
             UserAndAccountDashboardFragment.class.getName(),
             EnterprisePrivacySettings.class.getName(),
             WebViewAppPicker.class.getName(),
@@ -260,6 +264,7 @@ public class SettingsGateway {
             Settings.NetworkDashboardActivity.class.getName(),
             Settings.ConnectedDeviceDashboardActivity.class.getName(),
             Settings.AppAndNotificationDashboardActivity.class.getName(),
+            Settings.AndroidX86DashboardActivity.class.getName(),
             Settings.DisplaySettingsActivity.class.getName(),
             Settings.SoundSettingsActivity.class.getName(),
             Settings.StorageDashboardActivity.class.getName(),
diff --git a/src/com/android/settings/cyanogenmod/superuser/MultitaskSuRequestActivity.java b/src/com/android/settings/cyanogenmod/superuser/MultitaskSuRequestActivity.java
new file mode 100644 (file)
index 0000000..0103076
--- /dev/null
@@ -0,0 +1,4 @@
+package com.android.settings.cyanogenmod.superuser;
+
+public class MultitaskSuRequestActivity extends com.koushikdutta.superuser.MultitaskSuRequestActivity {
+}
\ No newline at end of file
diff --git a/src/com/android/settings/cyanogenmod/superuser/NotifyActivity.java b/src/com/android/settings/cyanogenmod/superuser/NotifyActivity.java
new file mode 100644 (file)
index 0000000..23aa6a7
--- /dev/null
@@ -0,0 +1,4 @@
+package com.android.settings.cyanogenmod.superuser;
+
+public class NotifyActivity extends com.koushikdutta.superuser.NotifyActivity {
+}
\ No newline at end of file
diff --git a/src/com/android/settings/cyanogenmod/superuser/PolicyNativeFragment.java b/src/com/android/settings/cyanogenmod/superuser/PolicyNativeFragment.java
new file mode 100644 (file)
index 0000000..1c74543
--- /dev/null
@@ -0,0 +1,4 @@
+package com.android.settings.cyanogenmod.superuser;
+
+public class PolicyNativeFragment extends com.koushikdutta.superuser.PolicyNativeFragment {
+}
\ No newline at end of file
diff --git a/src/com/android/settings/cyanogenmod/superuser/RequestActivity.java b/src/com/android/settings/cyanogenmod/superuser/RequestActivity.java
new file mode 100644 (file)
index 0000000..e6deca4
--- /dev/null
@@ -0,0 +1,4 @@
+package com.android.settings.cyanogenmod.superuser;
+
+public class RequestActivity extends com.koushikdutta.superuser.RequestActivity {
+}
\ No newline at end of file
diff --git a/src/com/android/settings/cyanogenmod/superuser/SuReceiver.java b/src/com/android/settings/cyanogenmod/superuser/SuReceiver.java
new file mode 100644 (file)
index 0000000..c4f9174
--- /dev/null
@@ -0,0 +1,4 @@
+package com.android.settings.cyanogenmod.superuser;
+
+public class SuReceiver extends com.koushikdutta.superuser.SuReceiver {
+}
\ No newline at end of file
index bfaed87..b706ea0 100644 (file)
@@ -225,6 +225,9 @@ public class DevelopmentSettings extends RestrictedSettingsFragment
 
     private static final String INACTIVE_APPS_KEY = "inactive_apps";
 
+    private static final String ROOT_ACCESS_KEY = "root_access";
+    private static final String ROOT_ACCESS_PROPERTY = "persist.sys.root_access";
+
     private static final String IMMEDIATELY_DESTROY_ACTIVITIES_KEY
             = "immediately_destroy_activities";
     private static final String APP_PROCESS_LIMIT_KEY = "app_process_limit";
@@ -344,6 +347,10 @@ public class DevelopmentSettings extends RestrictedSettingsFragment
 
     private SwitchPreference mColorTemperaturePreference;
 
+    private PreferenceScreen mProcessStats;
+    private ListPreference mRootAccess;
+    private Object mSelectedRootValue;
+
     private final ArrayList<Preference> mAllPrefs = new ArrayList<>();
 
     private final ArrayList<SwitchPreference> mResetSwitchPrefs = new ArrayList<>();
@@ -355,6 +362,7 @@ public class DevelopmentSettings extends RestrictedSettingsFragment
 
     private Dialog mAdbKeysDialog;
     private boolean mUnavailable;
+    private Dialog mRootDialog;
 
     private boolean mLogpersistCleared;
     private Dialog mLogpersistClearDialog;
@@ -591,6 +599,11 @@ public class DevelopmentSettings extends RestrictedSettingsFragment
             mColorTemperaturePreference = null;
         }
 
+        mRootAccess = (ListPreference) findPreference(ROOT_ACCESS_KEY);
+        mRootAccess.setOnPreferenceChangeListener(this);
+        if (!removeRootOptionsIfRequired()) {
+            mAllPrefs.add(mRootAccess);
+        }
         addDashboardCategoryPreferences();
     }
 
@@ -631,6 +644,18 @@ public class DevelopmentSettings extends RestrictedSettingsFragment
         return pref;
     }
 
+    private boolean removeRootOptionsIfRequired() {
+        // user builds don't get root, and eng always gets root
+        if (!(Build.IS_DEBUGGABLE || "eng".equals(Build.TYPE))) {
+            if (mRootAccess != null) {
+                getPreferenceScreen().removePreference(mRootAccess);
+                return true;
+            }
+        }
+
+        return false;
+    }
+
     @Override
     public void onActivityCreated(Bundle savedInstanceState) {
         super.onActivityCreated(savedInstanceState);
@@ -856,6 +881,7 @@ public class DevelopmentSettings extends RestrictedSettingsFragment
         updateBluetoothDisableAbsVolumeOptions();
         updateBluetoothEnableInbandRingingOptions();
         updateBluetoothA2dpConfigurationValues();
+        updateRootAccessOptions();
     }
 
     private void resetDangerousOptions() {
@@ -876,6 +902,7 @@ public class DevelopmentSettings extends RestrictedSettingsFragment
         resetDebuggerOptions();
         writeLogpersistOption(null, true);
         writeLogdSizeOption(null);
+        resetRootAccessOptions();
         writeAnimationScaleOption(0, mWindowAnimationScale, null);
         writeAnimationScaleOption(1, mTransitionAnimationScale, null);
         writeAnimationScaleOption(2, mAnimatorDurationScale, null);
@@ -891,6 +918,47 @@ public class DevelopmentSettings extends RestrictedSettingsFragment
         pokeSystemProperties();
     }
 
+    public static boolean isRootForAppsEnabled() {
+        int value = SystemProperties.getInt(ROOT_ACCESS_PROPERTY, 1);
+        boolean daemonState =
+                SystemProperties.get("init.svc.su_daemon", "absent").equals("running");
+        return daemonState && (value == 1 || value == 3);
+    }
+
+    private void updateRootAccessOptions() {
+        String value = SystemProperties.get(ROOT_ACCESS_PROPERTY, "1");
+        mRootAccess.setValue(value);
+        mRootAccess.setSummary(getResources()
+                .getStringArray(R.array.root_access_entries)[Integer.valueOf(value)]);
+    }
+
+    private void writeRootAccessOptions(Object newValue) {
+        String oldValue = SystemProperties.get(ROOT_ACCESS_PROPERTY, "1");
+        SystemProperties.set(ROOT_ACCESS_PROPERTY, newValue.toString());
+        if (Integer.valueOf(newValue.toString()) < 2 && !oldValue.equals(newValue)
+                && "1".equals(SystemProperties.get("service.adb.root", "0"))) {
+            SystemProperties.set("service.adb.root", "0");
+            Settings.Secure.putInt(getActivity().getContentResolver(),
+                    Settings.Secure.ADB_ENABLED, 0);
+            Settings.Secure.putInt(getActivity().getContentResolver(),
+                    Settings.Secure.ADB_ENABLED, 1);
+        }
+        updateRootAccessOptions();
+    }
+
+    private void resetRootAccessOptions() {
+        String oldValue = SystemProperties.get(ROOT_ACCESS_PROPERTY, "1");
+        SystemProperties.set(ROOT_ACCESS_PROPERTY, "1");
+        if (!oldValue.equals("1") && "1".equals(SystemProperties.get("service.adb.root", "0"))) {
+            SystemProperties.set("service.adb.root", "0");
+            Settings.Secure.putInt(getActivity().getContentResolver(),
+                    Settings.Secure.ADB_ENABLED, 0);
+            Settings.Secure.putInt(getActivity().getContentResolver(),
+                    Settings.Secure.ADB_ENABLED, 1);
+        }
+        updateRootAccessOptions();
+    }
+
     private void updateHdcpValues() {
         ListPreference hdcpChecking = (ListPreference) findPreference(HDCP_CHECKING_KEY);
         if (hdcpChecking != null) {
@@ -2652,6 +2720,25 @@ public class DevelopmentSettings extends RestrictedSettingsFragment
         } else if (preference == mSimulateColorSpace) {
             writeSimulateColorSpace(newValue);
             return true;
+        } else if (preference == mRootAccess) {
+            if ("0".equals(SystemProperties.get(ROOT_ACCESS_PROPERTY, "1"))
+                    && !"0".equals(newValue)) {
+                mSelectedRootValue = newValue;
+                mDialogClicked = false;
+                if (mRootDialog != null) {
+                    dismissDialogs();
+                }
+                mRootDialog = new AlertDialog.Builder(getActivity())
+                        .setMessage(getResources().getString(R.string.root_access_warning_message))
+                        .setTitle(R.string.root_access_warning_title)
+                        .setIcon(android.R.drawable.ic_dialog_alert)
+                        .setPositiveButton(android.R.string.yes, this)
+                        .setNegativeButton(android.R.string.no, this).show();
+                mRootDialog.setOnDismissListener(this);
+            } else {
+                writeRootAccessOptions(newValue);
+            }
+            return true;
         }
         return false;
     }
@@ -2670,6 +2757,10 @@ public class DevelopmentSettings extends RestrictedSettingsFragment
             mLogpersistClearDialog.dismiss();
             mLogpersistClearDialog = null;
         }
+        if (mRootDialog != null) {
+            mRootDialog.dismiss();
+            mRootDialog = null;
+        }
     }
 
     public void onClick(DialogInterface dialog, int which) {
@@ -2698,6 +2789,13 @@ public class DevelopmentSettings extends RestrictedSettingsFragment
             } else {
                 updateLogpersistValues();
             }
+        } else if (dialog == mRootDialog) {
+            if (which == DialogInterface.BUTTON_POSITIVE) {
+                writeRootAccessOptions(mSelectedRootValue);
+            } else {
+                // Reset the option
+                writeRootAccessOptions("0");
+            }
         }
     }
 
diff --git a/src/com/android/settings/deviceinfo/DeviceManufacturerPreferenceController.java b/src/com/android/settings/deviceinfo/DeviceManufacturerPreferenceController.java
new file mode 100644 (file)
index 0000000..dc9955a
--- /dev/null
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2017 The Android-x86 Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.settings.deviceinfo;
+
+import android.content.Context;
+import android.os.Build;
+import android.support.v7.preference.Preference;
+
+import com.android.settings.core.PreferenceControllerMixin;
+import com.android.settingslib.core.AbstractPreferenceController;
+
+public class DeviceManufacturerPreferenceController extends AbstractPreferenceController
+        implements PreferenceControllerMixin {
+
+    private static final String KEY_DEVICE_MANUFACTURER = "device_manufacturer";
+
+    public DeviceManufacturerPreferenceController(Context context) {
+        super(context);
+    }
+
+    @Override
+    public boolean isAvailable() {
+        return true;
+    }
+
+    @Override
+    public void updateState(Preference preference) {
+        super.updateState(preference);
+        preference.setSummary(Build.MANUFACTURER);
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return KEY_DEVICE_MANUFACTURER;
+    }
+}
diff --git a/src/com/android/settings/deviceinfo/OpenGLVersionPreferenceController.java b/src/com/android/settings/deviceinfo/OpenGLVersionPreferenceController.java
new file mode 100644 (file)
index 0000000..62c91d8
--- /dev/null
@@ -0,0 +1,116 @@
+/*
+ * Copyright (C) 2017 The Android-x86 Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.settings.deviceinfo;
+
+import android.content.Context;
+import android.graphics.SurfaceTexture;
+import android.opengl.EGL14;
+import android.opengl.GLES20;
+import android.opengl.GLSurfaceView.EGLConfigChooser;
+import android.support.v7.preference.Preference;
+import android.util.Log;
+import javax.microedition.khronos.egl.EGL10;
+import javax.microedition.khronos.egl.EGLConfig;
+import javax.microedition.khronos.egl.EGLContext;
+import javax.microedition.khronos.egl.EGLDisplay;
+import javax.microedition.khronos.egl.EGLSurface;
+
+import com.android.settings.core.PreferenceControllerMixin;
+import com.android.settingslib.core.AbstractPreferenceController;
+
+public class OpenGLVersionPreferenceController extends AbstractPreferenceController
+        implements PreferenceControllerMixin {
+
+    private static final String KEY_OPENGL_VERSION = "opengl_version";
+    private static final String LOG_TAG = KEY_OPENGL_VERSION;
+
+    public OpenGLVersionPreferenceController(Context context) {
+        super(context);
+    }
+
+    @Override
+    public boolean isAvailable() {
+        return true;
+    }
+
+    @Override
+    public void updateState(Preference preference) {
+        super.updateState(preference);
+
+        // Create an EGL Context
+        // References:
+        // [1] http://wlog.flatlib.jp/archive/1/2013-12-22
+        // [2] packages/apps/Camera2/src/com/android/camera/SurfaceTextureRenderer.java
+
+        EGL10 egl = (EGL10) EGLContext.getEGL();
+        EGLSurface eglSurface = null;
+        EGLContext eglContext = null;
+
+        // Initialize display
+        EGLDisplay eglDisplay = egl.eglGetDisplay(EGL10.EGL_DEFAULT_DISPLAY);
+        if (eglDisplay == EGL10.EGL_NO_DISPLAY) {
+            Log.w(LOG_TAG, "eglGetDisplay failed");
+        }
+        int[] iparam = new int[2];
+        if (!egl.eglInitialize(eglDisplay, iparam)) {
+            Log.w(LOG_TAG, "eglInitialize failed");
+        }
+
+        // Choose config
+        EGLConfig[] eglConfigs = new EGLConfig[1];
+        final int[] configSpec = { EGL10.EGL_RENDERABLE_TYPE, EGL14.EGL_OPENGL_ES2_BIT, EGL10.EGL_NONE };
+        if (egl.eglChooseConfig(eglDisplay, configSpec, eglConfigs, 1, iparam) && iparam[0] > 0) {
+            // create surface
+            SurfaceTexture surfaceTexture = new SurfaceTexture(0);
+            eglSurface = egl.eglCreateWindowSurface(
+                    eglDisplay, eglConfigs[0], surfaceTexture, null);
+            if (eglSurface == null || eglSurface == EGL10.EGL_NO_SURFACE) {
+                Log.w(LOG_TAG, "eglCreateWindowSurface failed");
+            } else {
+                // Create context
+                final int[] attribList = { EGL14.EGL_CONTEXT_CLIENT_VERSION, 2, EGL10.EGL_NONE };
+                eglContext = egl.eglCreateContext(
+                        eglDisplay, eglConfigs[0], EGL10.EGL_NO_CONTEXT, attribList);
+                if (eglContext == null || eglContext == EGL10.EGL_NO_CONTEXT) {
+                    Log.w(LOG_TAG, "eglCreateContext failed");
+                }
+
+                // Bind context
+                if (!egl.eglMakeCurrent(eglDisplay, eglSurface, eglSurface, eglContext)) {
+                    Log.w(LOG_TAG, "eglMakeCurrent failed");
+                }
+            }
+        } else {
+            Log.w(LOG_TAG, "eglChooseConfig failed");
+        }
+
+        preference.setSummary(
+                "GL Vendor: " + GLES20.glGetString(GLES20.GL_VENDOR) + "\n" +
+                "GL Renderer: " + GLES20.glGetString(GLES20.GL_RENDERER) + "\n" +
+                "GL Version: " + GLES20.glGetString(GLES20.GL_VERSION));
+
+        if (eglContext != null) {
+            egl.eglMakeCurrent(eglDisplay, EGL10.EGL_NO_SURFACE, EGL10.EGL_NO_SURFACE, EGL10.EGL_NO_CONTEXT);
+            egl.eglDestroyContext(eglDisplay, eglContext);
+            egl.eglDestroySurface(eglDisplay, eglSurface);
+        }
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return KEY_OPENGL_VERSION;
+    }
+}
index 0d6b4dc..3fe438f 100755 (executable)
@@ -36,6 +36,7 @@ import android.net.wifi.p2p.WifiP2pManager.Channel;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.Looper;
+import android.os.ServiceManager;
 import android.provider.Settings;
 import android.support.v14.preference.SwitchPreference;
 import android.support.v7.preference.ListPreference;
@@ -212,8 +213,13 @@ public final class WifiDisplaySettings extends SettingsPreferenceFragment {
     }
 
     public static boolean isAvailable(Context context) {
-        return context.getSystemService(Context.DISPLAY_SERVICE) != null
-                && context.getSystemService(Context.WIFI_P2P_SERVICE) != null;
+        try {
+            return context.getSystemService(Context.DISPLAY_SERVICE) != null
+                    && context.getSystemService(Context.WIFI_P2P_SERVICE) != null;
+        } catch (Exception e) {
+            // Service is not registered, so this is definitely not available.
+            return false;
+        }
     }
 
     private void scheduleUpdate(int changes) {
index df45ad5..7d8ee52 100644 (file)
 
 package com.android.settings.wfd;
 
+import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
 import android.app.Activity;
 import android.content.Context;
 import android.hardware.display.DisplayManager;
 import android.media.MediaRouter;
 import android.net.wifi.p2p.WifiP2pManager;
+import android.os.ServiceManager;
 
 import com.android.settings.R;
-import com.android.settings.testutils.SettingsRobolectricTestRunner;
 import com.android.settings.TestConfig;
 import com.android.settings.dashboard.SummaryLoader;
+import com.android.settings.testutils.SettingsRobolectricTestRunner;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -34,12 +41,6 @@ import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 import org.robolectric.annotation.Config;
 
-import static com.google.common.truth.Truth.assertThat;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
 @RunWith(SettingsRobolectricTestRunner.class)
 @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
 public class WifiDisplaySettingsTest {
@@ -89,7 +90,15 @@ public class WifiDisplaySettingsTest {
     public void isAvailable_noService_shouldReturnFalse() {
         assertThat(WifiDisplaySettings.isAvailable(mActivity))
                 .isFalse();
+    }
 
+    @Test
+    public void isAvailable_throwException_shouldReturnFalse() {
+        when(mActivity.getSystemService(Context.WIFI_P2P_SERVICE))
+                .thenThrow(new IllegalStateException());
+
+        assertThat(WifiDisplaySettings.isAvailable(mActivity))
+                .isFalse();
     }
 
     @Test