Monday, July 2, 2018

(Samsung) setup wizard has stopped - Android

This often happens when one tries to enable multiple users. Asuming that you have root, ADB, etc. try this:

Disable Samsung Setup Wizard:
pm disable com.sec.android.app.SecSetupWizard


Disable Google Setup Wizard:
pm disable com.google.android.setupwizard

Trick: you can try to install and run Titanium Backup to run it on the Android interface. 

See also StackExchange here for other method: via File Manager, etc., this one with pictures.

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.

Android Samsung Galaxy - WiFi passwords not remembered

Background: Samsung Galaxy Note, Marshmallow 6.0: after a manual OS update the system does not remember WiFi passwords anymore.

What worked:
* Root the phone
* Install e.g. MiXplorer
* Go to root: /
* Click the three dots to show Options, select Show hidden
* Navigate to /system/etc/securestorage


* Find the hidden folder: .System.bin.wpa.supplicant or .System.wpa.supplicant
* Move (archive) this folder to another directory
* Reboot the phone

Added bonus: the WiFi passwords will be stored in plain text.
Short explanation why it works - see here.

What did not work:
* Manually editing wpa_supplicant.conf in /data/misc/wifi/
* Messing up with the file permissions or even deleting the whole /data/misc/wifi/
* Resetting the Network settings 
* Restoring Data.img from backup
* Trying to disable it by modyfing build.prop only
* Trying restoring via the otherwise useful WiFiConfigRestorer

Comments?