0/60

Threat

ph.staysafe.mobileapp

StaySafe

Analyzed on 2022-01-23T06:16:21.933756

6

permissions

12

activities

6

services

9

receivers

8

domains

File sums

MD5 69d0a7d9384f5c0aab27f6a6ebae677b
SHA1 9bcda06dda08420dda9774d7469680bf601fc3c5
SHA256 eb49953aa5466bcfac6d0d5b9f99dadebf24443dec2b3dfa140906b79ac99a2d
Size 6.77MB

APKiD

Information computed with APKiD.

/tmp/tmpf1bu6250!classes.dex
anti_vm
  • Build.FINGERPRINT check
  • Build.MANUFACTURER check
compiler
  • r8

SSdeep

Information computed with ssdeep.

APK file 196608:J27XSkuHQCZ0FDXMcGEKXlsWvjS+yNd9R5yLsXV:CXSECZC8cGFXru+yTzkLyV
Manifest 384:ht84RxcKE6X1SbAoTmRgmetyO7trX6fsl+TtrTFu0HQqxRs7Ur6KQspRjx9x5ju8:…
classes.dex 24576:fX15xz6I3HYM6WgHEF1qZxlz62uNWcpPexhOkoXVGtWgQDxp4iytf9XSIqBukVP…

Dexofuzzy

Information computed with Dexofuzzy.

APK file 3072:b1NnWDMeF4u7UfRw0TFzNz7SlyT6UmkZ4BfcaKR0KUSTuIWNpjPzMUKHE:byQeFP…
classes.dex 3072:b1NnWDMeF4u7UfRw0TFzNz7SlyT6UmkZ4BfcaKR0KUSTuIWNpjPzMUKHE:byQeFP…

APK details

Information computed with AndroGuard and Pithus.

Package ph.staysafe.mobileapp
App name StaySafe
Version name 3.0.12
Version code 61
SDK 23 - 29
UAID 727a468059572a6f82010866ca083c98b74597ab
Signature Signature V1 Signature V2 Signature V3
Frosting Not frosted
Blocks found within V2 signature:
  • 0x7109871a: Unknown
  • 0xf05368c0: Unknown
  • 0x6dff800d: Source stamp V2 X509 cert
  • 0x42726577: Verity padding

Certificate details

Information computed with AndroGuard.

MD5 d0c31af2c63f891ca0d67f499a9ac913
SHA1 137d10c1755a21284c3dc7905e11db265aaf25a9
SHA256 1a0e30b6d88ba9acfe5b9cdbf365b6b8cdd8f47af4a59a2d35ea74809271b67c
Issuer Common Name: Android, Organizational Unit: Android, Organization: Google Inc., Locality: Mountain View, State/Province: California, Country: US
Not before 2020-04-30T05:42:52+00:00
Not after 2050-04-30T05:42:52+00:00

File Analysis

Information computed with MobSF.

Findings Files
Certificate/Key files hardcoded inside the app. okhttp3/internal/publicsuffix/NOTICE
stamp-cert-sha256

Manifest analysis

Information computed with MobSF.

Medium Application Data can be Backed up[android:allowBackup=true]
This flag allows anyone to backup your application data via adb. It allows users who have enabled USB debugging to copy application data off of the device.
High Broadcast Receiver (ph.staysafe.mobileapp.broadcastreceivers.ExposureNotificationBroadcastReceiver) is Protected by a permission, but the protection level of the permission should be checked.
Permission: com.google.android.gms.nearby.exposurenotification.EXPOSURE_CALLBACK [android:exported=true]
A Broadcast Receiver is found to be shared with other apps on the device therefore leaving it accessible to any other application on the device. It is protected by a permission which is not defined in the analysed application. As a result, the protection level of the permission should be checked where it is defined. If it is set to normal or dangerous, a malicious application can request and obtain the permission and interact with the component. If it is set to signature, only applications signed with the same certificate can obtain the permission.
High Service (com.google.android.gms.nearby.exposurenotification.WakeUpService) is Protected by a permission, but the protection level of the permission should be checked.
Permission: com.google.android.gms.nearby.exposurenotification.EXPOSURE_CALLBACK [android:exported=true]
A Service is found to be shared with other apps on the device therefore leaving it accessible to any other application on the device. It is protected by a permission which is not defined in the analysed application. As a result, the protection level of the permission should be checked where it is defined. If it is set to normal or dangerous, a malicious application can request and obtain the permission and interact with the component. If it is set to signature, only applications signed with the same certificate can obtain the permission.
High Service (com.google.android.gms.auth.api.signin.RevocationBoundService) is Protected by a permission, but the protection level of the permission should be checked.
Permission: com.google.android.gms.auth.api.signin.permission.REVOCATION_NOTIFICATION [android:exported=true]
A Service is found to be shared with other apps on the device therefore leaving it accessible to any other application on the device. It is protected by a permission which is not defined in the analysed application. As a result, the protection level of the permission should be checked where it is defined. If it is set to normal or dangerous, a malicious application can request and obtain the permission and interact with the component. If it is set to signature, only applications signed with the same certificate can obtain the permission.
High Service (androidx.work.impl.background.systemjob.SystemJobService) is Protected by a permission, but the protection level of the permission should be checked.
Permission: android.permission.BIND_JOB_SERVICE [android:exported=true]
A Service is found to be shared with other apps on the device therefore leaving it accessible to any other application on the device. It is protected by a permission which is not defined in the analysed application. As a result, the protection level of the permission should be checked where it is defined. If it is set to normal or dangerous, a malicious application can request and obtain the permission and interact with the component. If it is set to signature, only applications signed with the same certificate can obtain the permission.
High Broadcast Receiver (androidx.work.impl.diagnostics.DiagnosticsReceiver) is Protected by a permission, but the protection level of the permission should be checked.
Permission: android.permission.DUMP [android:exported=true]
A Broadcast Receiver is found to be shared with other apps on the device therefore leaving it accessible to any other application on the device. It is protected by a permission which is not defined in the analysed application. As a result, the protection level of the permission should be checked where it is defined. If it is set to normal or dangerous, a malicious application can request and obtain the permission and interact with the component. If it is set to signature, only applications signed with the same certificate can obtain the permission.

Main Activity

Information computed with AndroGuard.

ph.staysafe.mobileapp.onboarding.OnboardingActivity

Activities

Information computed with AndroGuard.

ph.staysafe.mobileapp.exposurehelp.ExposureHelpActivity
ph.staysafe.mobileapp.tos.PrivacyPolicyActivity
ph.staysafe.mobileapp.webview.WebViewActivity
ph.staysafe.mobileapp.otp.OtpActivity
ph.staysafe.mobileapp.register.RegisterActivity
ph.staysafe.mobileapp.login.LoginActivity
ph.staysafe.mobileapp.tos.TermsActivity
ph.staysafe.mobileapp.onboarding.OnboardingActivity
ph.staysafe.mobileapp.MainActivity
splitties.permissions.internal.PermissionRequestFallbackActivity
com.google.android.gms.auth.api.signin.internal.SignInHubActivity
com.google.android.gms.common.api.GoogleApiActivity

Receivers

Information computed with AndroGuard.

ph.staysafe.mobileapp.broadcastreceivers.ExposureNotificationBroadcastReceiver
androidx.work.impl.utils.ForceStopRunnable$BroadcastReceiver
androidx.work.impl.background.systemalarm.ConstraintProxy$BatteryChargingProxy
androidx.work.impl.background.systemalarm.ConstraintProxy$BatteryNotLowProxy
androidx.work.impl.background.systemalarm.ConstraintProxy$StorageNotLowProxy
androidx.work.impl.background.systemalarm.ConstraintProxy$NetworkStateProxy
androidx.work.impl.background.systemalarm.RescheduleReceiver
androidx.work.impl.background.systemalarm.ConstraintProxyUpdateReceiver
androidx.work.impl.diagnostics.DiagnosticsReceiver

Services

Information computed with AndroGuard.

com.google.android.gms.nearby.exposurenotification.WakeUpService
com.google.android.gms.auth.api.signin.RevocationBoundService
androidx.work.impl.background.systemalarm.SystemAlarmService
androidx.work.impl.background.systemjob.SystemJobService
androidx.work.impl.foreground.SystemForegroundService
androidx.room.MultiInstanceInvalidationService

Sample timeline

Oldest file found in APK Jan. 1, 1981, 1:01 a.m.
Latest file found in APK Jan. 1, 1981, 1:01 a.m.
Certificate valid not before April 30, 2020, 5:42 a.m.
First submission on VT Nov. 23, 2021, 6:10 a.m.
Last submission on VT Nov. 23, 2021, 6:10 a.m.
Upload on Pithus Jan. 23, 2022, 6:16 a.m.
Certificate valid not after April 30, 2050, 5:42 a.m.

NIAP analysis

Information computed with MobSF.

FCS_RBG_EXT.1.1 The application invoke platform-provided DRBG functionality for its cryptographic operations.
Random Bit Generation Services
FCS_STO_EXT.1.1 The application does not store any credentials to non-volatile memory.
Storage of Credentials
FCS_CKM_EXT.1.1 The application generate no asymmetric cryptographic keys.
Cryptographic Key Generation Services
FDP_DEC_EXT.1.1 The application has access to ['bluetooth', 'network connectivity'].
Access to Platform Resources
FDP_DEC_EXT.1.2 The application has access to no sensitive information repositories.
Access to Platform Resources
FDP_NET_EXT.1.1 The application has user/application initiated network communications.
Network Communications
FDP_DAR_EXT.1.1 The application does not encrypt files in non-volatile memory.
Encryption Of Sensitive Application Data
FMT_MEC_EXT.1.1 The application invoke the mechanisms recommended by the platform vendor for storing and setting configuration options.
Supported Configuration Mechanism
FTP_DIT_EXT.1.1 The application does encrypt some transmitted data with HTTPS/TLS/SSH between itself and another trusted IT product.
Protection of Data in Transit
FCS_RBG_EXT.2.1
FCS_RBG_EXT.2.2
The application perform all deterministic random bit generation (DRBG) services in accordance with NIST Special Publication 800-90A using Hash_DRBG. The deterministic RBG is seeded by an entropy source that accumulates entropy from a platform-based DRBG and a software-based noise source, with a minimum of 256 bits of entropy at least equal to the greatest security strength (according to NIST SP 800-57) of the keys and hashes that it will generate.
Random Bit Generation from Application
FCS_COP.1.1(2) The application perform cryptographic hashing services in accordance with a specified cryptographic algorithm SHA-1/SHA-256/SHA-384/SHA-512 and message digest sizes 160/256/384/512 bits.
Cryptographic Operation - Hashing
FCS_COP.1.1(4) The application perform keyed-hash message authentication with cryptographic algorithm ['HMAC-SHA-256'] .
Cryptographic Operation - Keyed-Hash Message Authentication
FCS_HTTPS_EXT.1.2 The application implement HTTPS using TLS.
HTTPS Protocol
FCS_HTTPS_EXT.1.3 The application notify the user and not establish the connection or request application authorization to establish the connection if the peer certificate is deemed invalid.
HTTPS Protocol
FIA_X509_EXT.2.1 The application use X.509v3 certificates as defined by RFC 5280 to support authentication for HTTPS , TLS.
X.509 Certificate Authentication

Code analysis

Information computed with MobSF.

Low
CVSS:7.5
The App logs information. Sensitive information should never be logged.
MASVS: MSTG-STORAGE-3
CWE-532 Insertion of Sensitive Information into Log File
Files:
 y/b/h/y0.java
y/f/b/d.java
y/f/c/d.java
y/h/j/v.java
y/f/c/c.java
y/l/b/p.java
y/x/w/a.java
g0/a/a/k/i/a.java
d/f/a/a/b/d.java
d/f/a/a/b/e.java
d/f/a/a/b/k/c1.java
y/b/h/u.java
y/r/r.java
d/f/a/a/b/l/a.java
y/h/i/a.java
y/v/a/a/b.java
d/f/a/a/b/p.java
y/f/c/b.java
d/f/a/a/b/k/b.java
y/b/h/k0.java
y/b/h/i.java
y/l/b/r.java
y/h/j/b.java
d/f/a/a/b/j/k/k0.java
com/github/mikephil/charting/charts/BarChart.java
d/f/a/a/b/k/z.java
y/h/b/c.java
y/b/a.java
y/l/b/a.java
ph/staysafe/mobileapp/workers/StateUpdateWorker.java
d/f/a/a/f/a.java
d/f/a/a/b/w.java
y/b/c/h.java
d/e/a/a/l/g.java
i0/d/a.java
d/f/a/a/a/a/e/b/r.java
y/h/d/g.java
d/f/a/a/b/j/k/q0.java
y/h/d/d.java
d/f/a/b/w/a.java
y/o/b/c.java
y/x/e.java
d/f/a/a/b/k/q0.java
d/c/a/a/a.java
y/x/k.java
d/f/a/a/b/k/b1.java
y/t/a/g/b.java
d/f/a/b/o/f.java
d/f/a/b/c/g.java
d/f/a/a/b/j/k/f.java
y/h/j/q.java
y/l/b/v.java
y/h/d/f.java
g0/a/a/o/l.java
y/h/f/f.java
g0/a/a/d0/b.java
y/h/b/e.java
d/f/a/a/e/f/m.java
y/v/a/a/f.java
d/f/a/a/b/k/u0.java
y/b/c/e.java
y/h/c/b/h.java
d/f/a/a/b/j/k/m0.java
d/e/a/a/c/a.java
y/u/z.java
y/b/h/l0.java
y/f/b/h/e.java
g0/a/a/d0/a.java
y/h/d/e.java
y/r/m.java
d/e/a/a/i/a.java
ph/staysafe/mobileapp/broadcastreceivers/ExposureNotificationBroadcastReceiver.java
y/b/h/x0.java
d/f/a/a/b/h.java
y/h/j/f.java
d/a/a/h/c.java
ph/staysafe/mobileapp/workers/ProvideDiagnosisKeysWorker.java
d/f/a/a/b/k/e.java
y/b/c/p.java
y/t/a/c.java
d/f/a/a/b/k/m0.java
y/b/h/b1.java
y/o/b/a.java
d/f/a/b/s/c.java
y/l/b/x.java
y/j/b/e.java
y/h/d/c.java
y/b/h/i0.java
d/f/a/b/v/b.java
d/e/a/a/e/j.java
y/b/h/q0.java
d/f/a/a/b/j/k/y.java
y/b/g/i/g.java
y/b/g/i/d.java
y/h/b/d.java
y/h/j/a.java
g0/a/a/s/r/p.java
g0/a/a/o/g.java
d/b/a/f0/c.java
y/h/j/m.java
ph/staysafe/mobileapp/workers/OldProvideDiagnosisKeysWorker.java
y/b/g/f.java
y/b/h/p0.java
y/b/h/y.java
y/r/n.java
d/f/a/b/y/g.java
y/i/a/b.java
d0/m0/c.java
y/l/b/e.java
d/e/a/a/c/b.java
y/h/b/g.java
d/f/a/a/b/j/k/a0.java
d/f/a/a/b/k/x.java
High
CVSS:7.5
The App uses an insecure Random Number Generator.
MASVS: MSTG-CRYPTO-6
CWE-330 Use of Insufficiently Random Values
M5: Insufficient Cryptography
Files:
 b0/n/h.java
b0/t/d/a.java
e0/p.java
b0/t/a.java
d/f/a/a/e/f/x1.java
b0/n/b.java
b0/t/b.java
d/f/b/b/c.java
d/f/a/a/e/b/a.java
Info
CVSS:0
This App uses SSL certificate pinning to detect or prevent MITM attacks in secure communication channel.
MASVS: MSTG-NETWORK-4
Files:
 d0/m0/k/g.java
d0/m0/k/d.java
d0/m0/k/c.java
d0/m0/k/h.java
Low
CVSS:3.9
App can write to App Directory. Sensitive Information should be encrypted.
MASVS: MSTG-STORAGE-14
CWE-276 Incorrect Default Permissions
Files:
 ph/staysafe/mobileapp/StaySafeApplication.java
High
CVSS:5.5
App creates temp file. Sensitive information should never be written into a temp file.
MASVS: MSTG-STORAGE-2
CWE-276 Incorrect Default Permissions
M2: Insecure Data Storage
Files:
 y/r/r.java
High
CVSS:5.9
App uses SQLite Database and execute raw SQL query. Untrusted user input in raw SQL queries can cause SQL Injection. Also sensitive information should be encrypted and written to the database.
CWE-89 Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection')
M7: Client Code Quality
Files:
 y/t/a/g/a.java
Pygal Singapore: 100 United States: 600

Map computed by Pithus.

Domains analysis

Information computed with MobSF.

US accounts.google.com 142.250.186.77
US www.staysafe.ph 65.9.61.81
US www.doh.gov.ph 107.162.167.71
US storage.googleapis.com 142.250.186.176
SG ws2.staysafe.ph 13.229.170.91
US plus.google.com 142.250.185.110
schemas.android.com
US exposure-36ghqzmrtq-uc.a.run.app 216.239.32.53

URL analysis

Information computed with MobSF.

https://www.staysafe.ph/privacy-statement
Defined in ph/staysafe/mobileapp/tos/PrivacyPolicyActivity.java
https://storage.googleapis.com/exposure-notification-export-obubu/
Defined in ph/staysafe/mobileapp/workers/ProvideDiagnosisKeysWorker.java
http://schemas.android.com/apk/res/android
Defined in y/h/c/b/h.java
https://plus.google.com/
Defined in d/f/a/a/b/k/e1.java
https://accounts.google.com/o/oauth2/revoke?token=
Defined in d/f/a/a/a/a/e/b/f.java
https://exposure-36ghqzmrtq-uc.a.run.app
Defined in g0/a/a/k/i/a.java
https://storage.googleapis.com/exposure-notification-export-obubu/
Defined in g0/a/a/k/d/a.java
https://ws2.staysafe.ph/api/
Defined in g0/a/a/k/b/b.java
https://ws2.staysafe.ph/api/
Defined in g0/a/a/k/k/c/b.java
https://www.staysafe.ph/digital-logbook
Defined in defpackage/j.java
https://www.doh.gov.ph/covid19tracker
https://www.doh.gov.ph/about-us
Defined in defpackage/t.java
https://www.doh.gov.ph/covid19tracker
https://www.doh.gov.ph/about-us
Defined in defpackage/t.java
http://www.doh.gov.ph/sites/default/files/health-update/dm2020-0189.pdf
Defined in defpackage/n.java

Permissions analysis

Information computed with MobSF.

Low android.permission.INTERNET full Internet access
Allows an application to create network sockets.
Low android.permission.BLUETOOTH create Bluetooth connections
Allows applications to connect to paired bluetooth devices.
Low android.permission.ACCESS_NETWORK_STATE view network status
Allows an application to view the status of all networks.
Low android.permission.WAKE_LOCK prevent phone from sleeping
Allows an application to prevent the phone from going to sleep.
Low android.permission.RECEIVE_BOOT_COMPLETED automatically start at boot
Allows an application to start itself as soon as the system has finished booting. This can make it take longer to start the phone and allow the application to slow down the overall phone by always running.
Low android.permission.FOREGROUND_SERVICE Allows a regular application to use Service.startForeground

Threat analysis

Information computed with Quark-Engine.

Confidence:
100%
Check if the network is connected
Confidence:
100%
Load external class
Confidence:
100%
Implicit intent(view a web page, make a phone call, etc.)
Confidence:
100%
Find a method from given class name, usually for reflection
Confidence:
100%
Check the active network type
Confidence:
100%
Connect to a URL and receive input stream from the server
Confidence:
100%
Method reflection
Confidence:
100%
Connect to a URL and read data from it
Confidence:
100%
Load class from given class name
Confidence:
100%
Retrieve data from broadcast
Confidence:
100%
Read sensitive data(SMS, CALLLOG, etc)
Confidence:
100%
Open a file from given absolute path of the file
Confidence:
100%
Implicit intent(view a web page, make a phone call, etc.) via setData
Confidence:
100%
Connect to a URL and get the response code
Confidence:
100%
Send notification
Confidence:
100%
Monitor the broadcast action events (BOOT_COMPLETED)
Confidence:
100%
Get absolute path of the file and store in string
Confidence:
100%
Check the current active network type
Confidence:
100%
Check the network capabilities
Confidence:
100%
Get last known location of the device
Confidence:
100%
Get location of the device
Confidence:
100%
Create a secure socket connection to the proxy address
Confidence:
100%
Method reflection
Confidence:
100%
Hide the current app's icon
Confidence:
100%
Connect to the remote server through the given URL
Confidence:
100%
Check if the device is in data roaming mode
Confidence:
100%
Get the time of current location
Confidence:
100%
Initialize class object dynamically
Confidence:
100%
Read the input stream from given URL
Confidence:
100%
Connect to a URL and set request method
Confidence:
80%
Create a socket connection to the given host address
Confidence:
80%
Create a secure socket connection to the given host address
Confidence:
80%
Read file and put it into a stream
Confidence:
80%
Get declared method from given method name
Confidence:
80%
Create a socket connection to the proxy address
Confidence:
80%
Read file from assets directory
Confidence:
80%
Get calendar information
Confidence:
80%
Get resource file from res/raw directory

Behavior analysis

Information computed with MobSF.

Android notifications
       d/f/a/a/b/d.java
Base64 decode
       y/h/b/e.java
d/b/a/c0/l/d.java
Base64 encode
       d/f/a/a/a/a/e/b/g.java
y/h/g/a.java
d/f/a/a/e/b/e.java
Certificate handling
       d0/m0/k/d.java
d0/m0/g/i.java
d0/c0.java
d0/a.java
d0/m0/h/i.java
d0/m0/k/h.java
d0/m0/k/i/i.java
Content provider
       i0/b/a.java
Crypto
       g0/a/a/o/l.java
Gps location
       y/b/c/h.java
y/b/c/p.java
Get installed applications
       y/h/k/d.java
Get system service
       y/x/w/t/m.java
y/b/h/y0.java
d/f/a/b/b0/p.java
y/x/w/q/f/e.java
y/h/b/e.java
y/l/b/c.java
y/j/b/a.java
y/i/a/c.java
y/b/c/h.java
d/a/a/e.java
d/f/a/a/b/d.java
i0/d/a.java
d/f/a/a/a/a/e/b/r.java
y/b/h/z0.java
com/afollestad/materialdialogs/internal/main/DialogLayout.java
d/f/a/b/b0/h.java
y/x/w/t/i.java
y/x/w/l.java
y/h/j/m.java
y/x/w/p/c/b.java
y/b/g/c.java
ph/staysafe/mobileapp/workers/ProvideDiagnosisKeysWorker.java
y/b/h/v.java
y/r/n.java
y/b/g/i/l.java
y/x/w/p/b/a.java
Http connection
       d/b/a/d0/a.java
d/f/a/a/a/a/e/b/f.java
d/b/a/d0/b.java
Inter process communication
       d/f/a/a/e/f/r.java
x/a/a/b/a.java
d/f/a/a/g/b/c.java
d/f/a/a/b/k/k0.java
defpackage/j.java
y/x/w/q/f/e.java
y/h/b/k.java
d/f/a/a/e/b/f.java
d/f/a/a/g/b/b.java
d/f/a/a/b/d.java
d/f/a/a/b/k/s0.java
d/f/a/a/b/k/y.java
d/f/a/a/b/e.java
d/f/a/a/e/f/y0.java
x/a/a/b/b.java
d/f/a/a/b/p.java
d/f/a/a/a/a/e/b/g.java
y/x/w/p/b/e.java
d/f/a/a/e/a/i.java
d/f/a/a/b/k/b.java
y/b/g/i/o.java
d/f/a/a/b/j/k/k.java
d/f/a/a/a/a/e/b/s.java
d/f/a/a/e/f/e0.java
y/l/b/o.java
d/f/a/a/e/b/e.java
d/f/a/a/g/b/a.java
d/f/a/a/e/f/u.java
d/f/a/a/e/f/z0.java
g0/a/a/z/b.java
d/f/a/a/b/j/k/d0.java
y/x/w/q/f/b.java
d/f/a/a/b/k/z.java
d/f/a/a/e/f/e1.java
y/h/b/i.java
d/f/a/a/e/f/l0.java
ph/staysafe/mobileapp/webview/WebViewActivity.java
y/h/b/c.java
d/f/a/a/e/c/c.java
y/x/w/d.java
d/f/a/a/b/k/j0.java
defpackage/f.java
y/r/j.java
d/f/a/a/b/a.java
d/f/a/a/e/b/c.java
d/f/a/a/e/f/f0.java
d/f/a/a/b/q.java
y/b/c/h.java
d/f/a/a/e/f/s0.java
y/x/w/q/f/a.java
ph/staysafe/mobileapp/otp/OtpActivity.java
y/x/w/r/c.java
d/f/a/a/e/f/d1.java
d/f/a/a/e/f/t0.java
d/f/a/a/e/e/b.java
d/f/a/a/e/a/k.java
g0/a/a/s/r/b.java
d/f/a/a/e/f/a0.java
d/a/a/h/j.java
d/f/a/a/e/f/k1.java
g0/a/a/s/r/e.java
d/f/a/a/e/f/r1.java
d/f/a/a/b/k/q0.java
d/f/a/a/b/k/b1.java
d/f/a/a/e/a/a.java
ph/staysafe/mobileapp/tos/TermsActivity.java
d/f/a/a/b/j/k/f.java
d/f/a/a/e/f/x.java
defpackage/o.java
d/f/a/a/e/f/j1.java
d/f/a/a/e/e/a.java
d/f/a/a/e/f/a.java
d/f/a/a/e/f/d0.java
d/f/a/a/e/d/a.java
d/f/a/a/e/c/a.java
splitties/permissions/internal/PermissionRequestFallbackActivity.java
y/h/b/e.java
d/f/a/a/b/k/u0.java
d/f/a/a/e/f/w.java
y/b/c/e.java
d/f/a/a/e/f/g1.java
y/b/g/i/a.java
d/a/a/e.java
y/n/m.java
d/f/a/a/e/d/b.java
d/f/a/a/b/k/l0.java
d/f/a/a/b/k/z0.java
ph/staysafe/mobileapp/broadcastreceivers/ExposureNotificationBroadcastReceiver.java
d/f/a/a/g/b/g.java
d/f/a/a/b/k/u/e.java
y/x/w/p/b/b.java
ph/staysafe/mobileapp/workers/ProvideDiagnosisKeysWorker.java
d/f/a/a/e/f/m1.java
y/h/k/d.java
d/f/a/a/b/k/e.java
d/f/a/a/e/b/b.java
d/f/a/a/b/k/g1.java
y/b/g/i/i.java
d/f/a/a/e/f/b0.java
d/f/a/a/e/f/o0.java
d/f/a/a/b/k/m0.java
y/x/w/p/b/d.java
d/f/a/a/b/k/i.java
d/f/a/a/b/k/t0.java
d/f/a/a/e/f/i0.java
ph/staysafe/mobileapp/login/LoginActivity.java
d/f/a/a/e/f/p0.java
d/f/a/a/e/f/t.java
i0/a/a.java
d/f/a/a/b/j/k/y.java
defpackage/k.java
y/b/g/i/g.java
ph/staysafe/mobileapp/onboarding/OnboardingActivity.java
defpackage/n.java
d/f/a/a/b/j/k/g.java
defpackage/t.java
y/x/w/q/f/f.java
y/x/w/q/f/c.java
d/f/a/a/b/k/u/a.java
d/f/a/a/e/f/n1.java
g0/a/a/s/d.java
y/b/g/i/j.java
d/f/a/a/e/f/w0.java
d/f/a/a/b/j/n.java
d/f/a/a/e/f/j0.java
g0/a/a/t/b.java
d/f/a/a/e/f/h1.java
d/f/a/a/b/k/n0.java
ph/staysafe/mobileapp/tos/PrivacyPolicyActivity.java
y/x/w/p/b/a.java
y/r/k.java
y/l/b/e.java
y/h/b/g.java
defpackage/q.java
Java reflection
       y/n/n.java
y/b/h/y0.java
b0/q/a.java
y/h/j/q.java
y/f/c/d.java
y/w/a.java
g0/a/a/j/a.java
y/h/j/v.java
h0/z.java
y/h/d/f.java
y/b/h/d0.java
y/h/c/b/h.java
y/u/z.java
b0/r/c/t.java
y/h/d/e.java
d/f/c/a0/a0/i.java
w/a/o.java
y/n/a.java
d/f/c/a0/x.java
y/w/b.java
d0/m0/k/g.java
d0/m0/k/d.java
d/f/a/a/b/k/b.java
y/b/h/k0.java
y/h/k/d.java
h0/x.java
d/f/c/c.java
d/j/i.java
d/f/c/d.java
h0/l.java
y/b/h/b1.java
d0/m0/k/c.java
y/x/v.java
y/h/b/c.java
y/b/a.java
w/a/x0.java
h0/c0.java
d/f/c/a0/f.java
y/h/d/h.java
d/f/c/a0/v.java
y/b/h/i0.java
y/b/c/n.java
kotlinx/coroutines/android/AndroidExceptionPreHandler.java
y/b/c/h.java
d0/m0/k/i/e.java
h0/f0.java
y/h/d/g.java
y/b/g/i/g.java
w/a/a/e.java
y/b/g/i/d.java
d/f/c/a0/b0/c.java
y/x/w/o.java
d/f/a/a/c/b.java
b0/p/k/a/f.java
d0/m0/k/b.java
d0/m0/k/e.java
y/h/b/d.java
y/h/d/d.java
y/x/w/t/i.java
d/f/c/b.java
b0/q/b.java
y/x/w/l.java
d0/m0/k/h.java
y/b/g/i/j.java
y/l/b/n.java
y/h/j/m.java
h0/n.java
b0/p/k/a/a.java
y/l/b/g0.java
y/b/g/f.java
y/b/h/y.java
y/h/j/d.java
h0/w.java
y/r/n.java
d0/m0/k/i/c.java
y/b/h/c0.java
d/f/c/a0/w.java
d/f/c/a0/a0/j.java
h0/b0.java
Local file i/o operations
       ph/staysafe/mobileapp/onboarding/OnboardingActivity.java
ph/staysafe/mobileapp/StaySafeApplication.java
g0/a/a/o/y.java
d/f/a/a/a/a/e/b/b.java
y/r/r.java
d/b/a/d0/e.java
ph/staysafe/mobileapp/workers/StateUpdateWorker.java
y/h/b/e.java
g0/a/a/o/a.java
y/x/w/j.java
ph/staysafe/mobileapp/tos/PrivacyPolicyActivity.java
g0/a/a/o/e.java
g0/a/a/d0/a.java
ph/staysafe/mobileapp/exposurehelp/ExposureHelpActivity.java
Message digest
       e0/i.java
e0/w.java
Query database of sms, contacts etc
       d/f/a/a/f/a.java
Sending broadcast
       y/x/w/p/b/b.java
Starting activity
       defpackage/k.java
y/b/g/i/g.java
ph/staysafe/mobileapp/onboarding/OnboardingActivity.java
g0/a/a/z/b.java
defpackage/n.java
d/f/a/a/b/k/z.java
defpackage/o.java
defpackage/j.java
ph/staysafe/mobileapp/login/LoginActivity.java
defpackage/f.java
g0/a/a/t/b.java
ph/staysafe/mobileapp/tos/PrivacyPolicyActivity.java
y/l/b/e.java
defpackage/q.java
Starting service
       y/x/w/d.java
d/f/a/a/b/m/a.java
d/f/a/a/b/k/b1.java
Tcp socket
       d0/m0/i/b.java
d0/m0/j/o.java
d0/m0/g/e.java
d0/m0/k/b.java
d0/c0.java
d0/m0/j/f.java
d0/a.java
e0/y.java
com/airbnb/lottie/LottieAnimationView.java
d0/m0/k/h.java
d/f/a/b/a.java
d0/m0/l/a.java
d0/m0/g/i.java
d0/m0/d/b.java
d0/m0/c.java
d0/m0/h/i.java
d0/m0/g/d.java

Control flow graphs analysis

Information computed by Pithus.

The application probably dynamically loads code

The application probably gets the location based on GPS and/or Wi-Fi

The application probably gets the network connections information

The application probably uses reflection

The application probably plays sound

The application probably makes OS calls

The application probably sends data over HTTP/S

The application probably gets memory and CPU information