Monday, July 2, 2018

Samsung Galaxy Android rotation does not work, the missing com.facebook.katana is the culprit

Background: Samsung Galaxy Note, Marshmallow 6.0. After a manual OS update to prevent the Blueborne bug, and deleting most of the spying system bloatware, the screen rotation does not work anymore.

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.