FAQ
asd says the CSV file wasn’t found — what do I do?
Run asd --update to download the registry, or set
ASD_CSV to a location where it already exists. Any command that reads the
registry will show this if $ASD_CSV points somewhere empty.
Do I need sudo to use asd?
Only if the directories you’re using ($ANDROID_HOME, $ASD_CSV, or the
install target for setup) aren’t writable by your user. Point them at
user-owned paths and asd never calls sudo. See
Bypassing sudo.
asd <name> says the package wasn’t found. What’s wrong?
Either the registry is stale (run --update) or
the name doesn’t match. Confirm the exact package path with
asd --list <name> — package paths use ; to
separate a group from its version, e.g. ndk;27.0.12077973.
How is this different from sdkmanager?
asd fetches archives from the Myket mirror instead of Google’s servers,
resolves package lookups from a local CSV instead of a live index, and
downloads with aria2c for multi-connection speed. It writes the same
package.xml layout sdkmanager expects, so both tools — and Android
Studio — recognize components installed by either one.
Why does --verify re-download the whole archive?
The SHA-1 checksum is only meaningful against the original archive, and
asd doesn’t keep downloaded archives around after extraction — so
verifying integrity means fetching it again. See
Repairing & Verifying for when to reach
for --verify versus the lighter-weight --fix.
Can I use asd on Windows?
Not directly — it’s a Bash script. The registry itself is also filtered to
exclude Windows/macOS-only entries on every --update.
WSL works fine since it’s just Bash plus the usual CLI tools.
What if --remove deletes more than I expected?
asd --remove ndk removes every installed version matching ndk, not a
single one — see --remove for the exact matching
rules before running it.