Ownership proof

adi-registration.properties: APK location and signing-key verification

When the console requests proof for a known signing key, it provides an account-specific verification snippet. Put that exact snippet in an asset named adi-registration.properties, build an APK signed with the private key matching the selected public certificate, and upload it in the same console challenge. A new-key flow that allows any key may not require this proof file.

Guide summary

Place the console's adi-registration.properties proof in an APK only when an existing-package signing-key ownership challenge requests it.

For: Developers proving ownership of an existing Android package name with a signed APK.

Release sequence

  1. Use this procedure only when the console shows an APK ownership-proof challenge for the selected known key.
  2. Copy the snippet from that active package-registration challenge in the official console.
  3. Create app/src/main/assets/adi-registration.properties with the exact filename and snippet.
  4. Build a release APK signed by the private key matching the selected public SHA-256 fingerprint.
  5. Inspect the APK asset and certificate, then upload it to the same console challenge.

Quick facts

Native asset pathapp/src/main/assets/adi-registration.properties
ArtifactSigned release APK
ProofChallenge snippet plus matching signing key
Field note

The console-generated snippet is not a private signing key and does not prove ownership by itself: the uploaded APK must contain the active snippet and carry the selected certificate. Do not substitute a guessed value, add a .txt suffix or use an unrelated Play upload key.

Detailed guidance

Add the active challenge snippet to the proof APK

Use this procedure when the console asks you to prove ownership of a known signing key for an existing package. A flow that lets you register any key may not request an APK proof. Copy the exact verification snippet from the active console challenge into app/src/main/assets/adi-registration.properties; if your app module or source set differs, use its corresponding assets directory so the file lands at assets/adi-registration.properties inside the APK.

Build the proof APK with the private key whose public SHA-256 certificate you selected. The properties file supplies challenge evidence; it is not a private signing key and does not replace the APK signature.

  • If the file is missing, check the APK path, selected variant and assets source set.
  • If apksigner shows an unexpected SHA-256, rebuild with the selected key or inspect the correct artifact.
  • If both checks match but the console rejects the proof, confirm the package and active challenge, then follow the console's specific error guidance.
  • Upload the proof APK in the same console workflow; after it reports completion, recheck the package-and-certificate pair.
Inspect the APK before upload
unzip -l app-release.apk assets/adi-registration.properties
unzip -p app-release.apk assets/adi-registration.properties
apksigner verify --print-certs app-release.apk

Have the production package name and signing certificate ready? Query the official registration state, then use the result to choose your next step.

Run status check →

Frequently asked questions

Is the snippet my private signing key?

No. It is the verification token for the console challenge. The private key remains in your keystore or signing service, and the APK still has to be signed with the key that matches the selected public certificate.

Does every package-registration flow require this file?

No. Add adi-registration.properties only when the console asks for an APK ownership proof. Android's API flow requires that proof when a known key is selected from a list; a flow that accepts any key does not require the ownership challenge.

Can I use an empty project?

Google's Play package-registration guidance permits a proof APK from an empty project with the same package name. It still must contain the exact console snippet and be signed by the private key that matches the selected public fingerprint.

Sources and review

Last reviewed: