After one-by-one elimination of the system apps over a number of hours, I have found the culprit:
com.facebook.katana
that is
facebook_latest.apk
What works:
Leaving com.facebook.katana frozen using e.g. Titanium Backup.
What does not work:
* Unfreezing, running and then updating, deleting or reinstalling it
* Trying any other autorotation programs, including Xposed modules.
Alas, I could not find a better solution.
Probable underlying cause: Facebook bought Oculus and thus wants to integrate itself deep into Samsung and other devices.
As per Reverse.it, apart from the screen rotation itself, this system module allows Facebook to create a shadow phone user's profile and trace us via such hooks:
android.permission.ACCESS_COARSE_LOCATION | Allows an app to access approximate location. |
android.permission.WAKE_LOCK | Allows using PowerManager WakeLocks to keep processor from sleeping or screen from dimming. |
android.permission.VIBRATE | Allows access to the vibrator. |
android.permission.READ_CONTACTS | Allows an application to read the user's contacts data. |
android.permission.WRITE_CONTACTS | Allows an application to write the user's contacts data. |
android.permission.GET_ACCOUNTS | Allows access to the list of accounts in the Accounts Service. |
android.permission.MANAGE_ACCOUNTS | - |
android.permission.AUTHENTICATE_ACCOUNTS | - |
android.permission.READ_SYNC_SETTINGS | Allows applications to read the sync settings. |
android.permission.WRITE_SYNC_SETTINGS | Allows applications to write the sync settings. |
android.permission.ACCESS_FINE_LOCATION | Allows an app to access precise location. |
android.permission.BROADCAST_STICKY | Allows an application to broadcast sticky intents. |
com.facebook.katana.provider.ACCESS | - |
com.facebook.orca.provider.ACCESS | - |
com.facebook.pages.app.provider.ACCESS | - |
android.permission.DOWNLOAD_WITHOUT_NOTIFICATION | - |
android.permission.CAMERA | Required to be able to access the camera device. |
android.permission.RECORD_AUDIO | Allows an application to record audio. |
android.permission.WRITE_EXTERNAL_STORAGE | Allows an application to write to external storage. |
com.facebook.permission.prod.FB_APP_COMMUNICATION | - |
com.facebook.permission.prod.SYSTEM_COMMUNICATION | - |
android.permission.READ_PHONE_STATE | Allows read only access to phone state. |
android.permission.READ_CALENDAR | Allows an application to read the user's calendar data. |
android.permission.WRITE_CALENDAR | Allows an application to write the user's calendar data. |
android.permission.READ_PROFILE | - |
android.permission.READ_SMS | Allows an application to read SMS messages. |
android.permission.CHANGE_NETWORK_STATE | Allows applications to change network connectivity state. |
android.permission.CHANGE_WIFI_STATE | Allows applications to change Wi-Fi connectivity state. |
android.permission.SYSTEM_ALERT_WINDOW | Allows an app to create windows using the type TYPE_SYSTEM_ALERT, shown on top of all other apps. |
com.google.android.providers.gsf.permission.READ_GSERVICES | - |
android.permission.RECEIVE_BOOT_COMPLETED | Allows an application to receive the ACTION_BOOT_COMPLETED that is broadcast after the system finishes booting. |
android.permission.GET_TASKS | This constant was deprecated in API level 21. No longer enforced. |
android.permission.READ_EXTERNAL_STORAGE | Allows an application to read from external storage. |
android.permission.ACCESS_NETWORK_STATE | Allows applications to access information about networks. |
android.permission.REQUEST_INSTALL_PACKAGES | Allows an application to request installing packages. |
com.facebook.katana.permission.CROSS_PROCESS_BROADCAST_MANAGER | - |
android.permission.BATTERY_STATS | Allows an application to collect battery statistics |
android.permission.ACCESS_WIFI_STATE | Allows applications to access information about Wi-Fi networks. |
com.android.launcher.permission.INSTALL_SHORTCUT | Allows an application to install a shortcut in Launcher. |
com.facebook.receiver.permission.ACCESS | - |
android.permission.INTERNET | Allows applications to open network sockets. |
com.sec.android.provider.badge.permission.READ | - |
com.sec.android.provider.badge.permission.WRITE | - |
com.htc.launcher.permission.READ_SETTINGS | - |
com.htc.launcher.permission.UPDATE_SHORTCUT | - |
com.sonyericsson.home.permission.BROADCAST_BADGE | - |
com.facebook.home.permission.WRITE_BADGES | - |
com.google.android.c2dm.permission.RECEIVE | - |
com.facebook.katana.permission.C2D_MESSAGE | - |
com.nokia.pushnotifications.permission.RECEIVE | - |
com.facebook.katana.permission.RECEIVE_ADM_MESSAGE | - |
com.amazon.device.messaging.permission.RECEIVE | - |
android.permission.BIND_JOB_SERVICE | - |
com.google.android.gms.permission.BIND_NETWORK_TASK_SERVICE | - |
com.facebook.appmanager.ACCESS | - |
See also the source FTC vs Facebook documents here and here for further info.
-> Do you have a better solution how to get rid of Facebook for good while retaining basic usability?
Please suggest these in the comments.
Update: I have been using Dynamic Rotation instead and it does the trick without crashing, etc.
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.