Skip to content

Devices

Mobile

The mobile device used in the qSelf project needs to run the Android operating system; preferably the latest version. Most manufacturers add cruft to their devices, so the Pixel series is recommended for its focus on the pure Android experience. Furthermore, the Graphene-flavoured version of Android gives you more control of your privacy and device use compared to standard Android. The device should be unrooted, but with Developer options enabled. This lets you use the Android Debug Bridge (ADB).

To install Graphene, see their user guide for instructions.

Watch

Similarly to the mobile device, the smartwatch needs to run wearOS 3+. The TicWatch series of smartwatches has good battery life and a reasonable number of sensors. You may need to disable or remove additional software added by the manufacturer to get better battery life and less interference. The device should be unrooted, but with Developer options enabled. This lets wirelessly connect using ADB.

The commands that follow can help you debloat your device and make it run smoother.

Connect to device

Once you have enabled ADB via wi-fi and you have the device's address you can connect to the device run the following command from your terminal or console.

adb connect <IP-address>
adb connect <IP-address>:<Port>
adb connect 192.168.123.132
adb connect 192.168.123.132:12345
Part Description Required
adb The Android Debugging Bridge CLI tool. To install it on Termux, use: pkg install android-tools. To install it on macOS, using homebrew: brew install android-tools. Yes
connect The command to connect over wi-fi to the device. Yes
<IP-address> You can find the IP address on your device when you turn on ADB over wi-fi. It is usually located in Settings > Developer options > Wireless debugging. The command to connect without the port number may be necessary to prompt the permissions dialog, which confirms that you want to connect to this device on the first attempt. Yes
<Port> The port number can usually be found in Settings > Developer options > Wireless debugging. The port number is required when there is more than one device connected via ADB. No

Grant permissions to apps

To allow autoWear, for example, to change secure settings (such as toggling Theatre Mode) use the following command.

adb -s "<IP-address>:<Port>" shell pm grant <package-name> <permission>
adb -s "192.168.123.132:12345" shell pm grant com.joaomgcd.autowear android.permission.WRITE_SECURE_SETTINGS
Part Description Required
adb The Android Debugging Bridge CLI tool. To install it on Termux, use: pkg install android-tools. To install it on macOS, using homebrew: brew install android-tools. Yes
-s This flag selects a particular device when there is more than one device connected via ADB. No
<IP-address> This IP address can be found in Settings > Developer options > Wireless debugging. The command to connect without the port number may be necessary to prompt the permissions dialog, which confirms that you want to connect to this device on the first connection. Yes
<Port> The port number is in Settings > Developer options > Wireless debugging. The port number is required when there is more than one device connected via ADB. No
shell The shell for interacting with ADB. Yes
pm Short for package manager, which manages apps on an Android or wearOS device. Yes
grant <package-name> <permission> Grant this package these permissions on the device. Yes

List system apps

To list all the manufacturer applications installed.

adb -s "<IP-address>:<Port>" shell pm list packages -s -e <manufacturer-name>
adb -s "192.168.123.132:12345" shell pm list packages -s -e mobvoi
Part Description Required
adb The Android Debugging Bridge CLI tool. To install it on Termux, use: pkg install android-tools. To install it on macOS, using homebrew: brew install android-tools. Yes
-s This flag selects a particular device when there is more than one device connected via ADB. No
<IP-address> This IP address can be found in Settings > Developer options > Wireless debugging. The command to connect without the port number may be necessary to prompt the permissions dialog, which confirms that you want to connect to this device on the first attempt. Yes
<Port> The port number is in Settings > Developer options > Wireless debugging. The port number is required when there is more than one device connected via ADB. No
shell The shell for interacting with ADB. Yes
pm Short for package manager, which manages apps on an Android or wearOS device. Yes
list packages List all the packages that meet the conditions that follow. Yes
-s A flag to filter for system apps. No
-e A flag to filter for enabled apps. To filter for disabled apps use -d. No

Disable system apps

To disable a manufacturer's app on your device.

adb -s "<IP-address>:<Port>" shell pm disable-user --user 0 <package-name>
adb -s "192.168.123.132:12345" shell pm disable-user --user 0 com.mobvoi.wear.mcuservice.aw
Part Description Required
adb The Android Debugging Bridge CLI tool. To install it on Termux, use: pkg install android-tools. To install it on macOS, using homebrew: brew install android-tools. Yes
-s This flag selects a particular device when there is more than one device connected via ADB. No
<IP-address> This IP address can be found in Settings > Developer options > Wireless debugging. The command to connect without the port number may be necessary to prompt the permissions dialog, which confirms that you want to connect to this device on the first attempt. Yes
<Port> The port number is in Settings > Developer options > Wireless debugging. The port number is required when there is more than one device connected via ADB. No
shell The shell for interacting with ADB. Yes
pm Short for package manager, which manages apps on an Android or wearOS device. Yes
disable-user --user 0 Disable the following app on the device. Yes
<package-name> The name of the package to disable. You can find the package names by listing the packages. Yes

Laptop

Any laptop that can run Python is good enough for this project.

Using commands in Powershell

Please be aware that some terminal commands in Linux and macOS are different in Windows Powershell. There may be instances where you need to use ticks (`) to escape ceratin characters.