On Android 12 or later, apps will be autoupdated after the first install or first update, no root, no unlocking, no PrivExt needed. Older apps that can’t be updated will feature a banner explaining why.
Most old versions of the apps are not build to support that, and you’ll have to manually update each of those apps at least once (after they have been built with support for it). When checking most apps at the moment a banner appears showing how the app does not support automatic updates (yet?)
Bash. By default it might seem less featureful than zsh… but bash is a lot more powerful and extensible than some give it credit for. It might be more complex to set it up the way you like it, but once you do it, that configuration can be ported over wherever bash exists (ie. almost everywhere).