Conversation

Replying to
On Android 8+, it's based on a secret generated for each profile and made into an app-specific value based on app signing key. Apps can implement their own ANDROID_ID via app-specific external storage directory unless scoped storage is being used which clears that on uninstall.
2
Replying to
You could manually delete the app-specific directory from external (shared) storage. Apps can access their own directory in Android/ without a permission. With scoped storage, this gets cleared on uninstall, so they can't persist data without asking you to choose a place for it.
1
Replying to and
There's a soft enforced minimum API level in the OS set to API 23 in AOSP/stock. We raise that to match the Play Store (currently 28) requirement. Ideally, this would be a hard minimum, but we can't just break all legacy apps. It could be enforced better than AOSP/stock though.
1