Android Sink
IMEI
*#06#
ADB
Android Debug Bridge
rem list devices by id
adb devices
rem run shell
adb -s <device> shell
adb -s K9AIGF004810HJ6 shell
adb -s K9AIGF004810HJ6 push mitmproxy-ca-cert.pem storage/emulated/0/mitmproxy-ca-cert.pem
adb -s K9AIGF004810HJ6 shell am start -a android.credentials.INSTALL -t application/x-x509-ca-cert -d file:///storage/emulated/0/mitmproxy-ca-cert.der
rem install package
cmd package install-existing com.android.documentsui
pm enable com.android.documentsui
Shizuku
Termux, Shizuku and Rish configuration
rem push files
adb -s K9AIGF004810HJ6 push rish /storage/emulated/0/Shizuku
rem run shizuku
adb -s K9AIGF004810HJ6 shell sh /storage/emulated/0/Android/data/moe.shizuku.privileged.api/start.sh
Media indexing
Android seems to ignore .nomedia flag files if the file has any attributes set, mainly it can be Archived attribute. Use some file explorer that creates the file with no attributes set.
Automate app
Listening to multiple broadcasts events
Source
You can go use "fork" or multiple of them, or use dictionaries/arrays for transporting data across flows, in array's case you can do "for each" with sequence of "expression true?" blocks with scheme like this:
For each(container: received info¹, output: entry value as ev) and connect DO to first "expression true?" and then chain for each desired action, OK back to "broadcast recieve" and you're pretty much done
Expression true?(expression: ev = action²) Connect YES to block/chain of blocks to do the desired action, NO to next Expression true? With same expression
¹ must be replaced with variable which was specified as output for broadcast's extras in "Broadcast recieve" block
² must be replaced with value(number, text, array or dictionary) representing the desired action
Links
An Android Storage Access Framework document provider for rclone
An android cloud file manager, powered by rclone