Skip to content

[nl.rijksoverheid.en] Enabling exposure notifications (GAEN) should enable bluetooth and location #1306

@matthijskooijman

Description

@matthijskooijman

Affected app
Name: Coronamelder
Package id: nl.rijksoverheid.en

Describe the bug
Exposure notifications do not actually work unless bluetooth and location services are enabled. The Google Play Services implementation apparently enables bluetooth and location services when the exposure notification service is enabled (possible after asking for confirmation) and some apps (in particular the Dutch Coronamelder) seem to rely on this happening. Additionally, Google Play Services apparently shows a notification when bluetooth or location services are disabled when GAEN is enabled to remind the user that tracking is disabled.

To Reproduce
Steps to reproduce the behavior:

  1. Install the Coronamelder app
  2. Disable bluetooth or location services
  3. Click through the setup wizard, click the "Turn on" button
  4. Microg asks to enable GAEN, confirm
  5. Coronamelder keeps showing "App is not active", because it checks for bluetooth and location status.

Expected behavior
When you click the "Turn on" button and Coronamelder requests to enable the GAEN framework, microg should (ask to) enable bluetooth and location services too, so that tapping "Turn on" actually results in the Coronamelder showing an active status afterwards.

Note that this should probably also happen when tapping the "Turn on" button when GAEN is already enabled but bluetooth and/or location is not (iow, if a request to enable GAEN is received when it is already enabled, bluetooth and location should still be (asked to) enabled).

Implementing the same notifications when you turn off bluetooth or location services while GAEN is enabled would also be helfpful.

System
Android Version: 7.1.2
Custom ROM: Fairphone Open

microG
microG Core version: 0.2.14.204215
microG Self-Check results: All ticked

Additional context
See minvws/nl-covid19-notification-app-android#31 for the related issue on the CoronaMelder repo.

I also tried CoronaMelder on Google Play Services device, where I found that:

  • When you click "Turn on" when first enabling GAEN, it shows a popup like microg does now. Google Play Services then automatically (without asking) enables bluetooth and asks to enable location:
    image
  • When you later disable bluetooth, CoronaMelder shows the "Turn on" button again. When you click it, Play Services shows the original "Turn on EN" popup again, and if you allow that, enables bluetooth.
  • When you later disble location services, CoronaMelder shows the "Turn on" button again. When you click it, the Android location settings window is shown where you can enable location settings (this happens both with Play Services and microg, so I suspect that CoronaMelder maybe handles this without involving GEAN).
  • When you later disable bluetooth and/or location services, a notification is shown indicating you need to enable on or both (depending on which is disabled):
    image
  • When you click that notification, you end up in the Play Services GEAN settings:
    image
  • When you click "turn on" in the GEAN settings, Play Services enables location and bluetooth without further prompts.

Here's some logcat output from using CoronaMelder with microg on my FP2, which hopefully make it clearer what the app does exactly when the "Turn on" button is pressed. Note that there are some exceptions in here, but I think they would not be causing this (but correct me if I'm wrong or these need further investigation). I also tried to make some logcat captures on the Play Services device, but that spewed so much unrelated output that I gave up. If it would be helpful to have some (specific) output from there, let me know and I'll try harder.

On the Fairphone, clicking "Turn on" in Coronamelder for the first time shows a microg popup asking to enable GAEN and logcat shows:

12-09 19:33:03.361 20220 20253 D ExposureNotification: Created instance 108315189 of database for ExposureNotificationService
12-09 19:33:03.409 20220 20253 D ExposureNotification: Created instance 141608342 of database for ExposureNotificationService
12-09 19:33:03.419 20220 20253 D ExposureNotification: Pending: Intent { act=org.microg.gms.nearby.exposurenotification.CONFIRM pkg=com.google.android.gms cmp=com.google.android.gms/org.microg.gms.nearby.core.ui.ExposureNotificationsConfirmActivity (has extras) }
12-09 19:33:03.420 20220 20253 D ExposureNotification: Pending: PendingIntent{d6ba522: android.os.BinderProxy@d71dbb3}
12-09 19:33:03.425  6835  8352 I ActivityManager: START u0 {act=org.microg.gms.nearby.exposurenotification.CONFIRM pkg=com.google.android.gms cmp=com.google.android.gms/org.microg.gms.nearby.core.ui.ExposureNotificationsConfirmActivity (has extras)} from uid 10221 on display 0
12-09 19:33:03.461  6835  8352 D ActivityTrigger: activityStartTrigger: Activity is Triggerred in full screen ApplicationInfo{d8014ee com.google.android.gms}
12-09 19:33:03.461  6835  8352 E ActivityTrigger: activityStartTrigger: not whiteListedcom.google.android.gms/org.microg.gms.nearby.core.ui.ExposureNotificationsConfirmActivity/204215028
12-09 19:33:03.462  6835  8352 D CompatibilityInfo: mCompatibilityFlags - 0
12-09 19:33:03.462  6835  8352 D CompatibilityInfo: applicationDensity - 480
12-09 19:33:03.462  6835  8352 D CompatibilityInfo: applicationScale - 1.0
12-09 19:33:03.469  6835  8352 D ActivityTrigger: activityResumeTrigger: The activity in ApplicationInfo{d8014ee com.google.android.gms} is now in focus and seems to be in full-screen mode
12-09 19:33:03.470  6835  8352 E ActivityTrigger: activityResumeTrigger: not whiteListedcom.google.android.gms/org.microg.gms.nearby.core.ui.ExposureNotificationsConfirmActivity/204215028
12-09 19:33:03.470  6835  8352 D ActivityTrigger: ActivityTrigger activityPauseTrigger
12-09 19:33:03.478  6835 24087 D ActivityTrigger: activityResumeTrigger: The activity in ApplicationInfo{d8014ee com.google.android.gms} is now in focus and seems to be in full-screen mode
12-09 19:33:03.478  6835 24087 E ActivityTrigger: activityResumeTrigger: not whiteListedcom.google.android.gms/org.microg.gms.nearby.core.ui.ExposureNotificationsConfirmActivity/204215028
12-09 19:33:03.493  6835 24087 I ActivityManager: Start proc 20916:com.google.android.gms:ui/u0a221 for activity com.google.android.gms/org.microg.gms.nearby.core.ui.ExposureNotificationsConfirmActivity
12-09 19:33:03.493  6835 24087 W System  : ClassLoader referenced unknown path: /system/framework/QPerformance.jar
12-09 19:33:03.494  6835 24087 E BoostFramework: BoostFramework() : Exception_1 = java.lang.ClassNotFoundException: Didn't find class "com.qualcomm.qti.Performance" on path: DexPathList[[],nativeLibraryDirectories=[/system/lib, /vendor/lib]]
12-09 19:33:03.495  6835 24087 E BoostFramework: Exception java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[])' on a null object reference
12-09 19:33:03.515  6835 27784 D CompatibilityInfo: mCompatibilityFlags - 0
12-09 19:33:03.515  6835 27784 D CompatibilityInfo: applicationDensity - 480
12-09 19:33:03.515  6835 27784 D CompatibilityInfo: applicationScale - 1.0
12-09 19:33:03.525  6835 27784 D CompatibilityInfo: mCompatibilityFlags - 0
12-09 19:33:03.525  6835 27784 D CompatibilityInfo: applicationDensity - 480
12-09 19:33:03.525  6835 27784 D CompatibilityInfo: applicationScale - 1.0
12-09 19:33:03.578  6835 20498 I Xposed  : FakeGApps: returning fake signature to com.google.android.gms
12-09 19:33:03.599 20916 20916 I MultiDex: VM with version 2.1.0 has multidex support
12-09 19:33:03.613 20916 20916 I MultiDex: Installing application
12-09 19:33:03.613 20916 20916 I MultiDex: VM has multidex support, MultiDex support library is disabled.
12-09 19:33:03.797 20916 20916 W art     : Before Android 4.1, method android.graphics.PorterDuffColorFilter androidx.vectordrawable.graphics.drawable.VectorDrawableCompat.updateTintFilter(android.graphics.PorterDuffColorFilter, android.content.res.ColorStateList, android.graphics.PorterDuff$Mode) would have incorrectly overridden the package-private method in android.graphics.drawable.Drawable
12-09 19:33:03.846 20916 20916 I art     : Rejecting re-init on previously-failed class java.lang.Class<androidx.core.view.ViewCompat$2>: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/view/View$OnUnhandledKeyEventListener;
12-09 19:33:03.846 20916 20916 I art     :   at void androidx.core.view.ViewCompat.setOnApplyWindowInsetsListener(android.view.View, androidx.core.view.OnApplyWindowInsetsListener) (ViewCompat.java:2463)
12-09 19:33:03.846 20916 20916 I art     :   at android.view.ViewGroup androidx.appcompat.app.AppCompatDelegateImpl.createSubDecor() (AppCompatDelegateImpl.java:938)
12-09 19:33:03.846 20916 20916 I art     :   at void androidx.appcompat.app.AppCompatDelegateImpl.ensureSubDecor() (AppCompatDelegateImpl.java:806)
12-09 19:33:03.846 20916 20916 I art     :   at void androidx.appcompat.app.AppCompatDelegateImpl.setContentView(int) (AppCompatDelegateImpl.java:693)
12-09 19:33:03.846 20916 20916 I art     :   at void androidx.appcompat.app.AppCompatActivity.setContentView(int) (AppCompatActivity.java:170)
12-09 19:33:03.846 20916 20916 I art     :   at void org.microg.gms.nearby.core.ui.ExposureNotificationsConfirmActivity.onCreate(android.os.Bundle) (ExposureNotificationsConfirmActivity.kt:35)
12-09 19:33:03.846 20916 20916 I art     :   at void android.app.Activity.performCreate(android.os.Bundle) (Activity.java:6723)
12-09 19:33:03.846 20916 20916 I art     :   at void android.app.Instrumentation.callActivityOnCreate(android.app.Activity, android.os.Bundle) (Instrumentation.java:1119)
12-09 19:33:03.846 20916 20916 I art     :   at android.app.Activity android.app.ActivityThread.performLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent) (ActivityThread.java:2619)
12-09 19:33:03.846 20916 20916 I art     :   at void android.app.ActivityThread.handleLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:2727)
12-09 19:33:03.846 20916 20916 I art     :   at void android.app.ActivityThread.-wrap12(android.app.ActivityThread, android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:-1)
12-09 19:33:03.846 20916 20916 I art     :   at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:1478)
12-09 19:33:03.846 20916 20916 I art     :   at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:102)
12-09 19:33:03.846 20916 20916 I art     :   at void android.os.Looper.loop() (Looper.java:154)
12-09 19:33:03.846 20916 20916 I art     :   at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6128)
12-09 19:33:03.846 20916 20916 I art     :   at java.lang.Object java.lang.reflect.Method.invoke!(java.lang.Object, java.lang.Object[]) (Method.java:-2)
12-09 19:33:03.846 20916 20916 I art     :   at void com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run() (ZygoteInit.java:889)
12-09 19:33:03.846 20916 20916 I art     :   at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:779)
12-09 19:33:03.846 20916 20916 I art     :   at void de.robv.android.xposed.XposedBridge.main(java.lang.String[]) (XposedBridge.java:107)
12-09 19:33:03.846 20916 20916 I art     : Caused by: java.lang.ClassNotFoundException: Didn't find class "android.view.View$OnUnhandledKeyEventListener" on path: DexPathList[[zip file "/system/framework/com.android.location.provider.jar", zip file "/data/app/com.google.android.gms-1/base.apk"],nativeLibraryDirectories=[/data/app/com.google.android.gms-1/lib/arm, /data/app/com.google.android.gms-1/base.apk!/lib/armeabi-v7a, /system/lib, /vendor/lib]]
12-09 19:33:03.846 20916 20916 I art     :   at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:56)
12-09 19:33:03.846 20916 20916 I art     :   at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:380)
12-09 19:33:03.846 20916 20916 I art     :   at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
12-09 19:33:03.846 20916 20916 I art     :   at void androidx.core.view.ViewCompat.setOnApplyWindowInsetsListener(android.view.View, androidx.core.view.OnApplyWindowInsetsListener) (ViewCompat.java:2463)
12-09 19:33:03.846 20916 20916 I art     :   at android.view.ViewGroup androidx.appcompat.app.AppCompatDelegateImpl.createSubDecor() (AppCompatDelegateImpl.java:938)
12-09 19:33:03.846 20916 20916 I art     :   at void androidx.appcompat.app.AppCompatDelegateImpl.ensureSubDecor() (AppCompatDelegateImpl.java:806)
12-09 19:33:03.846 20916 20916 I art     :   at void androidx.appcompat.app.AppCompatDelegateImpl.setContentView(int) (AppCompatDelegateImpl.java:693)
12-09 19:33:03.846 20916 20916 I art     :   at void androidx.appcompat.app.AppCompatActivity.setContentView(int) (AppCompatActivity.java:170)
12-09 19:33:03.846 20916 20916 I art     :   at void org.microg.gms.nearby.core.ui.ExposureNotificationsConfirmActivity.onCreate(android.os.Bundle) (ExposureNotificationsConfirmActivity.kt:35)
12-09 19:33:03.846 20916 20916 I art     :   at void android.app.Activity.performCreate(android.os.Bundle) (Activity.java:6723)
12-09 19:33:03.846 20916 20916 I art     :   at void android.app.Instrumentation.callActivityOnCreate(android.app.Activity, android.os.Bundle) (Instrumentation.java:1119)
12-09 19:33:03.846 20916 20916 I art     :   at android.app.Activity android.app.ActivityThread.performLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent) (ActivityThread.java:2619)
12-09 19:33:03.846 20916 20916 I art     :   at void android.app.ActivityThread.handleLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:2727)
12-09 19:33:03.846 20916 20916 I art     :   at void android.app.ActivityThread.-wrap12(android.app.ActivityThread, android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:-1)
12-09 19:33:03.846 20916 20916 I art     :   at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:1478)
12-09 19:33:03.846 20916 20916 I art     :   at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:102)
12-09 19:33:03.846 20916 20916 I art     :   at void android.os.Looper.loop() (Looper.java:154)
12-09 19:33:03.846 20916 20916 I art     :   at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6128)
12-09 19:33:03.846 20916 20916 I art     :   at java.lang.Object java.lang.reflect.Method.invoke!(java.lang.Object, java.lang.Object[]) (Method.java:-2)
12-09 19:33:03.846 20916 20916 I art     :   at void com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run() (ZygoteInit.java:889)
12-09 19:33:03.846 20916 20916 I art     :   at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:779)
12-09 19:33:03.846 20916 20916 I art     :   at void de.robv.android.xposed.XposedBridge.main(java.lang.String[]) (XposedBridge.java:107)
12-09 19:33:03.846 20916 20916 I art     :
12-09 19:33:03.931 20916 20916 W ResourceType: ResTable_typeSpec entry count inconsistent: given 222, previously 226
12-09 19:33:03.931 20916 20916 W ResourceType: ResTable_typeSpec entry count inconsistent: given 179, previously 744
12-09 19:33:03.999 20916 20936 I Adreno-EGL: <qeglDrvAPI_eglInitialize:379>: QUALCOMM Build: 06/17/16, f19e6a9, I9e7a63e7c4
12-09 19:33:04.005 20916 20936 I OpenGLRenderer: Initialized EGL, version 1.4
12-09 19:33:04.006 20916 20936 D OpenGLRenderer: Swap behavior 1
12-09 19:33:04.025  6835  6967 D CompatibilityInfo: mCompatibilityFlags - 0
12-09 19:33:04.025  6835  6967 D CompatibilityInfo: applicationDensity - 480
12-09 19:33:04.025  6835  6967 D CompatibilityInfo: applicationScale - 1.0
12-09 19:33:04.077 20916 20921 I art     : Do partial code cache collection, code=356B, data=28KB
12-09 19:33:04.078 20916 20921 I art     : After code cache collection, code=356B, data=28KB
12-09 19:33:04.078 20916 20921 I art     : Increasing code cache capacity to 128KB
12-09 19:33:04.078  6835  6859 I ActivityManager: Displayed com.google.android.gms/org.microg.gms.nearby.core.ui.ExposureNotificationsConfirmActivity: +600ms

Then, after clicking "Allow" or something in the microg popup:

12-09 19:33:08.325 20916 20916 W System  : ClassLoader referenced unknown path: /system/framework/QPerformance.jar
12-09 19:33:08.326 20916 20916 E BoostFramework: BoostFramework() : Exception_1 = java.lang.ClassNotFoundException: Didn't find class "com.qualcomm.qti.Performance" on path: DexPathList[[],nativeLibraryDirectories=[/system/lib, /vendor/lib]]
12-09 19:33:08.372  6835 27200 D ActivityTrigger: ActivityTrigger activityPauseTrigger
12-09 19:33:08.380  6835 32619 D ActivityTrigger: activityResumeTrigger: The activity in ApplicationInfo{c01a1b0 nl.rijksoverheid.en} is now in focus and seems to be in full-screen mode
12-09 19:33:08.380  6835 32619 E ActivityTrigger: activityResumeTrigger: not whiteListednl.rijksoverheid.en/nl.rijksoverheid.en.MainActivity/78961
12-09 19:33:08.380  6835 32619 D ActivityTrigger: activityResumeTrigger: The activity in ApplicationInfo{c01a1b0 nl.rijksoverheid.en} is now in focus and seems to be in full-screen mode
12-09 19:33:08.380  6835 32619 E ActivityTrigger: activityResumeTrigger: not whiteListednl.rijksoverheid.en/nl.rijksoverheid.en.MainActivity/78961
12-09 19:33:08.443 20220 20253 D ExposureNotification: Created instance 50258153 of database for ExposureNotificationService
12-09 19:33:08.488  6835  6852 D CompatibilityInfo: mCompatibilityFlags - 0
12-09 19:33:08.488  6835  6852 D CompatibilityInfo: applicationDensity - 480
12-09 19:33:08.489  6835  6852 D CompatibilityInfo: applicationScale - 1.0
12-09 19:33:08.490 20220 20220 D ExposureNotification: ServiceTrigger: Intent { flg=0x10 cmp=com.google.android.gms/org.microg.gms.nearby.exposurenotification.ServiceTrigger }
12-09 19:33:08.491 20220 20220 D ExposureNotification: Trigger class org.microg.gms.nearby.exposurenotification.ScannerService
12-09 19:33:08.494  6835  7503 D CompatibilityInfo: mCompatibilityFlags - 0
12-09 19:33:08.494  6835  7503 D CompatibilityInfo: applicationDensity - 480
12-09 19:33:08.494  6835  7503 D CompatibilityInfo: applicationScale - 1.0
12-09 19:33:08.495 20220 20220 D ExposureNotification: Trigger class org.microg.gms.nearby.exposurenotification.AdvertiserService
12-09 19:33:08.497  6835 20498 D CompatibilityInfo: mCompatibilityFlags - 0
12-09 19:33:08.497  6835 20498 D CompatibilityInfo: applicationDensity - 480
12-09 19:33:08.497  6835 20498 D CompatibilityInfo: applicationScale - 1.0
12-09 19:33:08.497 20916 20936 D OpenGLRenderer: endAllActiveAnimators on 0x94275500 (RippleDrawable) with handle 0x932d1190
12-09 19:33:08.506 20220 20220 D ExposureNotification: ScannerService.start: Intent { cmp=com.google.android.gms/org.microg.gms.nearby.exposurenotification.ScannerService }
12-09 19:33:08.509 20220 20253 D ExposureNotification: Created instance 240886437 of database for ExposureNotificationService
12-09 19:33:08.511 20220 20220 D ExposureNotification: AdvertisingService.start: Intent { cmp=com.google.android.gms/org.microg.gms.nearby.exposurenotification.AdvertiserService }
12-09 19:33:08.696  6478  6478 W SurfaceFlinger: couldn't log to binary event log: overflow.
12-09 19:33:08.711 20661 20661 I n.c.c.a.m0.a0: Provider GmsCore_OpenSSL not available

The "turn on" screen keeps showing.

Later, clicking "Turn on" again:

12-09 19:38:58.983  6835  7001 D WifiStateMachine: updateCapabilities for config:Jodocusfalse,false
12-09 19:38:59.723 20220 20253 D ExposureNotification: Created instance 262724006 of database for ExposureNotificationService
12-09 19:38:59.775 20220 20253 D ExposureNotification: Created instance 216560953 of database for ExposureNotificationService
12-09 19:38:59.799  6835  6852 D CompatibilityInfo: mCompatibilityFlags - 0
12-09 19:38:59.799  6835  6852 D CompatibilityInfo: applicationDensity - 480
12-09 19:38:59.799  6835  6852 D CompatibilityInfo: applicationScale - 1.0
12-09 19:38:59.800 20220 20220 D ExposureNotification: ServiceTrigger: Intent { flg=0x10 cmp=com.google.android.gms/org.microg.gms.nearby.exposurenotification.ServiceTrigger }
12-09 19:38:59.800 20220 20220 D ExposureNotification: Trigger class org.microg.gms.nearby.exposurenotification.ScannerService
12-09 19:38:59.802  6835 24087 D CompatibilityInfo: mCompatibilityFlags - 0
12-09 19:38:59.802  6835 24087 D CompatibilityInfo: applicationDensity - 480
12-09 19:38:59.802  6835 24087 D CompatibilityInfo: applicationScale - 1.0
12-09 19:38:59.803 20220 20220 D ExposureNotification: Trigger class org.microg.gms.nearby.exposurenotification.AdvertiserService
12-09 19:38:59.804  6835  8352 D CompatibilityInfo: mCompatibilityFlags - 0
12-09 19:38:59.804  6835  8352 D CompatibilityInfo: applicationDensity - 480
12-09 19:38:59.804  6835  8352 D CompatibilityInfo: applicationScale - 1.0
12-09 19:38:59.811 20220 20253 D ExposureNotification: Created instance 22162421 of database for ExposureNotificationService
12-09 19:38:59.813 20220 20220 D ExposureNotification: ScannerService.start: Intent { cmp=com.google.android.gms/org.microg.gms.nearby.exposurenotification.ScannerService }
12-09 19:38:59.815 20220 20220 D ExposureNotification: AdvertisingService.start: Intent { cmp=com.google.android.gms/org.microg.gms.nearby.exposurenotification.AdvertiserService }
12-09 19:38:59.874  6835  6967 D CompatibilityInfo: mCompatibilityFlags - 0
12-09 19:38:59.874  6835  6967 D CompatibilityInfo: applicationDensity - 480
12-09 19:38:59.874  6835  6967 D CompatibilityInfo: applicationScale - 1.0
12-09 19:38:59.921  6835  6967 D CompatibilityInfo: mCompatibilityFlags - 0
12-09 19:38:59.921  6835  6967 D CompatibilityInfo: applicationDensity - 480
12-09 19:38:59.921  6835  6967 D CompatibilityInfo: applicationScale - 1.0
12-09 19:38:59.965  6835  6967 D CompatibilityInfo: mCompatibilityFlags - 0
12-09 19:38:59.965  6835  6967 D CompatibilityInfo: applicationDensity - 480
12-09 19:38:59.965  6835  6967 D CompatibilityInfo: applicationScale - 1.0
12-09 19:38:59.996  6835  6835 D CompatibilityInfo: mCompatibilityFlags - 0
12-09 19:38:59.996  6835  6835 D CompatibilityInfo: applicationDensity - 480
12-09 19:38:59.996  6835  6835 D CompatibilityInfo: applicationScale - 1.0
12-09 19:39:00.006  7060  7060 D KeyguardUpdateMonitor: received broadcast android.intent.action.TIME_TICK
12-09 19:39:00.006  7060  7060 D KeyguardUpdateMonitor: handleTimeUpdate

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions