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

An Android Storage Access Framework document provider for rclone
An android cloud file manager, powered by rclone