@@ -37,34 +37,6 @@ class MainActivity : Activity() {
3737
3838 companion object {
3939 val WIDEVINE_UUID = UUID (- 0x121074568629b532L , - 0x5c37d8232ae2de13L )
40- val TESTKEY =
41- " -----BEGIN CERTIFICATE-----\n " +
42- " MIIEqDCCA5CgAwIBAgIJAJNurL4H8gHfMA0GCSqGSIb3DQEBBQUAMIGUMQswCQYD\n " +
43- " VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4g\n " +
44- " VmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UE\n " +
45- " AxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbTAe\n " +
46- " Fw0wODAyMjkwMTMzNDZaFw0zNTA3MTcwMTMzNDZaMIGUMQswCQYDVQQGEwJVUzET\n " +
47- " MBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4G\n " +
48- " A1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9p\n " +
49- " ZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbTCCASAwDQYJKoZI\n " +
50- " hvcNAQEBBQADggENADCCAQgCggEBANaTGQTexgskse3HYuDZ2CU+Ps1s6x3i/waM\n " +
51- " qOi8qM1r03hupwqnbOYOuw+ZNVn/2T53qUPn6D1LZLjk/qLT5lbx4meoG7+yMLV4\n " +
52- " wgRDvkxyGLhG9SEVhvA4oU6Jwr44f46+z4/Kw9oe4zDJ6pPQp8PcSvNQIg1QCAcy\n " +
53- " 4ICXF+5qBTNZ5qaU7Cyz8oSgpGbIepTYOzEJOmc3Li9kEsBubULxWBjf/gOBzAzU\n " +
54- " RNps3cO4JFgZSAGzJWQTT7/emMkod0jb9WdqVA2BVMi7yge54kdVMxHEa5r3b97s\n " +
55- " zI5p58ii0I54JiCUP5lyfTwE/nKZHZnfm644oLIXf6MdW2r+6R8CAQOjgfwwgfkw\n " +
56- " HQYDVR0OBBYEFEhZAFY9JyxGrhGGBaR0GawJyowRMIHJBgNVHSMEgcEwgb6AFEhZ\n " +
57- " AFY9JyxGrhGGBaR0GawJyowRoYGapIGXMIGUMQswCQYDVQQGEwJVUzETMBEGA1UE\n " +
58- " CBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMH\n " +
59- " QW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAG\n " +
60- " CSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbYIJAJNurL4H8gHfMAwGA1Ud\n " +
61- " EwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAHqvlozrUMRBBVEY0NqrrwFbinZa\n " +
62- " J6cVosK0TyIUFf/azgMJWr+kLfcHCHJsIGnlw27drgQAvilFLAhLwn62oX6snb4Y\n " +
63- " LCBOsVMR9FXYJLZW2+TcIkCRLXWG/oiVHQGo/rWuWkJgU134NDEFJCJGjDbiLCpe\n " +
64- " +ZTWHdcwauTJ9pUbo8EvHRkU3cYfGmLaLfgn9gP+pWA7LFQNvXwBnDa6sppCccEX\n " +
65- " 31I828XzgXpJ4O+mDL1/dBd+ek8ZPUP0IgdyZm5MTYPhvVqGCHzzTy3sIeJFymwr\n " +
66- " sBbmg2OAUNLEMO6nwmocSdN2ClirfxqCzJOLSDE4QyS9BAH6EhY6UFcOaE0=\n " +
67- " -----END CERTIFICATE-----"
6840 }
6941
7042 private lateinit var titleTextView: TextView
@@ -144,9 +116,6 @@ class MainActivity : Activity() {
144116 if (Build .VERSION .SDK_INT >= 30 ) {
145117 window.setDecorFitsSystemWindows(false )
146118 }
147- if (Build .VERSION .SDK_INT >= 26 ) {
148- window.colorMode = COLOR_MODE_WIDE_COLOR_GAMUT
149- }
150119 setContentView(R .layout.activity_main)
151120
152121 val topAppBar = findViewById<MaterialToolbar >(R .id.topAppBar)
@@ -196,6 +165,10 @@ class MainActivity : Activity() {
196165 val securityVerifiedBootStateTextView = findViewById<TextView >(R .id.security_verified_boot_state)
197166 val securityAndroidSignatureTextView = findViewById<TextView >(R .id.security_system_signature)
198167
168+ val universalityTrebleTextView = findViewById<TextView >(R .id.universality_treble_support)
169+ val universalityGSITextView = findViewById<TextView >(R .id.universality_gsi_support)
170+ val universalityDSUTextView = findViewById<TextView >(R .id.universality_dsu_support)
171+
199172 val abnormalitiesFrame = findViewById<MaterialCardView >(R .id.abnormal_frame)
200173 val abnormalitiesRecyclerView = findViewById<RecyclerView >(R .id.abnormal_recyclerview)
201174 abnormalitiesRecyclerView.layoutManager = LinearLayoutManager (this @MainActivity)
@@ -240,18 +213,30 @@ class MainActivity : Activity() {
240213 " ${getString(R .string.basic_build_fingerprint)} - $basicFingerprint "
241214
242215 // Set up widevine info
243- val widevineKeyDrm = MediaDrm (WIDEVINE_UUID )
244- val drmLevel = widevineKeyDrm.getPropertyString(" securityLevel" )
245- val drmVersion = widevineKeyDrm.getPropertyString(PROPERTY_VERSION )
246- val drmVendorLevel = widevineKeyDrm.getPropertyString(PROPERTY_VENDOR )
247- val drmDesc = widevineKeyDrm.getPropertyString(PROPERTY_DESCRIPTION )
248- val drmAlgo = widevineKeyDrm.getPropertyString(PROPERTY_ALGORITHMS )
249-
250- widevineLevelTextView.text = " ${getString(R .string.drm_security_level)} - $drmLevel "
251- widevineVersionLevelTextView.text = " ${getString(R .string.drm_version)} - $drmVersion "
252- widevineVendorLevelTextView.text = " ${getString(R .string.drm_vendor)} - $drmVendorLevel "
253- widevineDescTextView.text = " ${getString(R .string.drm_desc)} - $drmDesc "
254- widevineAlgoTextView.text = " ${getString(R .string.drm_algo)} - $drmAlgo "
216+ val widevineVersionQueryJob = CoroutineScope (Dispatchers .Default ).async {
217+ val widevineKeyDrm = MediaDrm (WIDEVINE_UUID )
218+ val drmLevel = widevineKeyDrm.getPropertyString(" securityLevel" )
219+ val drmVersion = widevineKeyDrm.getPropertyString(PROPERTY_VERSION )
220+ val drmVendorLevel = widevineKeyDrm.getPropertyString(PROPERTY_VENDOR )
221+ val drmDesc = widevineKeyDrm.getPropertyString(PROPERTY_DESCRIPTION )
222+ val drmAlgo = widevineKeyDrm.getPropertyString(PROPERTY_ALGORITHMS )
223+
224+ val isDrmPassing =
225+ if (drmLevel == " L1" ) 0 else if (drmLevel == " L2" ) 1 else if (drmLevel == " L3" ) 2 else 3
226+
227+ if (isDrmPassing != 0 ) {
228+ abnormalitiesList.add(getString(R .string.abnormalities_widevine))
229+ if (securityLevel == 0 ) securityLevel = 1
230+ }
231+
232+ withContext(Dispatchers .Main ) {
233+ widevineLevelTextView.text = " ${getString(R .string.drm_security_level)} - $drmLevel "
234+ widevineVersionLevelTextView.text = " ${getString(R .string.drm_version)} - $drmVersion "
235+ widevineVendorLevelTextView.text = " ${getString(R .string.drm_vendor)} - $drmVendorLevel "
236+ widevineDescTextView.text = " ${getString(R .string.drm_desc)} - $drmDesc "
237+ widevineAlgoTextView.text = " ${getString(R .string.drm_algo)} - $drmAlgo "
238+ }
239+ }
255240
256241 // Set up radio info
257242 val connectivityRadioVersion = Build .getRadioVersion().substringAfterLast(' ,' )
@@ -366,7 +351,7 @@ class MainActivity : Activity() {
366351 }
367352 }
368353 val securityAndroidSigningKeyQueryJob = CoroutineScope (Dispatchers .Default ).async {
369- val buildTags = SystemProperties .get(" ro.build.tags " , " undefined" )
354+ val buildTags = SystemProperties .get(" ro.system. build.fingerprint " , " undefined" )
370355 var keyType: Int
371356
372357 var signingkey = " undefined"
@@ -395,14 +380,26 @@ class MainActivity : Activity() {
395380 }
396381 }
397382
398- // Get abnormalities
399- val isDrmPassing =
400- if (drmLevel == " L1" ) 0 else if (drmLevel == " L2" ) 1 else if (drmLevel == " L3" ) 2 else 3
401-
402- if (isDrmPassing != 0 ) {
403- abnormalitiesList.add(getString(R .string.abnormalities_widevine))
404- if (securityLevel == 0 ) securityLevel = 1
383+ // Set up universality info
384+ val universalityTrebleQueryJob = CoroutineScope (Dispatchers .Default ).async {
385+ val isTrebleSupported = SystemProperties .get(" ro.treble.enabled" , " false" )
386+ withContext(Dispatchers .Main ) {
387+ universalityTrebleTextView.text =
388+ " ${getString(R .string.universality_treble_support)} - $isTrebleSupported "
389+ universalityGSITextView.text =
390+ if (isTrebleSupported == " true" )
391+ " ${getString(R .string.universality_gsi_compatibility)} - ${getString(R .string.available)} (Treble)"
392+ else
393+ " ${getString(R .string.universality_gsi_compatibility)} - ${getString(R .string.unavailable)} "
394+ }
405395 }
396+ universalityDSUTextView.text =
397+ if (Build .VERSION .SDK_INT >= 31 )
398+ " ${getString(R .string.universality_dsu_status)} - ${getString(R .string.available)} "
399+ else
400+ " ${getString(R .string.universality_dsu_status)} - ${getString(R .string.unavailable)} "
401+
402+ // Get abnormalities
406403 if (connectivityRadioVersion == " unknown" ) {
407404 abnormalitiesList.add(getString(R .string.abnormalities_baseband_broken))
408405 securityLevel = 2
@@ -413,7 +410,9 @@ class MainActivity : Activity() {
413410 connectivityGNSSQueryJob,
414411 securitySELinuxQueryJob,
415412 securityVerifiedBootStateQueryJob,
416- securityAndroidSigningKeyQueryJob
413+ securityAndroidSigningKeyQueryJob,
414+ universalityTrebleQueryJob,
415+ widevineVersionQueryJob
417416 )
418417 withContext(Dispatchers .Main ) {
419418 changeTitleStatus(securityLevel)
0 commit comments