cmdline-tools : could not determine SDK root

Since new updates, there are some changes that are not mentioned in the documentation. After unzipping the command line tools package, the top-most directory you'll get is cmdline-tools. Rename the unpacked directory from cmdline-tools to tools, and place it under $C:/Android/cmdline-tools

now it will look like $C:/Android/cmdline-tools/tools

and it will work perfectly.

You can create a folder latest inside your cmdline-tools and move all it's contents inside this folder. So, your full path will be C:\Android\cmdline-tools\latest\bin. Using this config there is no need to define a ANDROID_SDK_ROOT environment variable or a --sdk_root= option. It'll assume that your SDK folder is C:\Android, and it'll put all your files (system-images, licenses, ...) inside it.

Downloading the Android SDK 29+ (command line tools for Android) from

For "" the process was different from earlier approaches. Earlier after unpacking, the top folder was called tools, but now the top folder is called cmdline-tools.

The problem seems to be that the sdkmanager expects to reside in an environment called. /YOURPATH/cmdline-tools/SOMETHING/bin but unpacks to /YOURPATH/cmdline-tools/bin for Linux anyway.

if you get

Error: Could not determine SDK root.

Error: Either specify it explicitly with --sdk_root= or move this package into its expected location: <sdk>/cmdline-tools/latest/

Unpack and make sure you have this path to the sdkmanager. /YOURPATH/cmdline-tools/latest/bin/sdkmanager

How To

To get this to work, first create the path to your intended Android SDK /opt/android-sdk/cmdline-tools/ then unpack the SDK zip file to that location, and you will have


Now rename the second "cmdline-tools" to "latest"


And now it should work.