// Copyright (c) 2015, Daniel Martí // See LICENSE for licensing information package adb import ( "errors" "fmt" ) var ( // Common install and uninstall errors ErrInternalError = errors.New("internal error") ErrUserRestricted = errors.New("user restricted") ErrAborted = errors.New("aborted") // Install errors ErrAlreadyExists = errors.New("already exists") ErrInvalidApk = errors.New("invalid apk") ErrInvalidURI = errors.New("invalid uri") ErrInsufficientStorage = errors.New("insufficient storage") ErrDuplicatePackage = errors.New("duplicate package") ErrNoSharedUser = errors.New("no shared user") ErrUpdateIncompatible = errors.New("update incompatible") ErrSharedUserIncompatible = errors.New("shared user incompatible") ErrMissingSharedLibrary = errors.New("missing shared library") ErrReplaceCouldntDelete = errors.New("replace couldn't delete") ErrDexopt = errors.New("dexopt") ErrOlderSdk = errors.New("older sdk") ErrConflictingProvider = errors.New("conflicting provider") ErrNewerSdk = errors.New("newer sdk") ErrTestOnly = errors.New("test only") ErrCPUAbiIncompatible = errors.New("cpu abi incompatible") ErrMissingFeature = errors.New("missing feature") ErrContainerError = errors.New("combiner error") ErrInvalidInstallLocation = errors.New("invalid install location") ErrMediaUnavailable = errors.New("media unavailable") ErrVerificationTimeout = errors.New("verification timeout") ErrVerificationFailure = errors.New("verification failure") ErrPackageChanged = errors.New("package changed") ErrUIDChanged = errors.New("uid changed") ErrVersionDowngrade = errors.New("version downgrade") ErrNotApk = errors.New("not apk") ErrBadManifest = errors.New("bad manifest") ErrUnexpectedException = errors.New("unexpected exception") ErrNoCertificates = errors.New("no certificates") ErrInconsistentCertificates = errors.New("inconsistent certificates") ErrCertificateEncoding = errors.New("certificate encoding") ErrBadPackageName = errors.New("bad package name") ErrBadSharedUserID = errors.New("bad shared user id") ErrManifestMalformed = errors.New("manifest malformed") ErrManifestEmpty = errors.New("manifest empty") ErrDuplicatePermission = errors.New("duplicate permission") ErrNoMatchingAbis = errors.New("no matching abis") // Uninstall errors ErrDevicePolicyManager = errors.New("device policy manager") ErrOwnerBlocked = errors.New("owner blocked") ) var errorVals = map[string]error{ "FAILED_ALREADY_EXISTS": ErrAlreadyExists, "FAILED_INVALID_APK": ErrInvalidApk, "FAILED_INVALID_URI": ErrInvalidURI, "FAILED_INSUFFICIENT_STORAGE": ErrInsufficientStorage, "FAILED_DUPLICATE_PACKAGE": ErrDuplicatePackage, "FAILED_NO_SHARED_USER": ErrNoSharedUser, "FAILED_UPDATE_INCOMPATIBLE": ErrUpdateIncompatible, "FAILED_SHARED_USER_INCOMPATIBLE": ErrSharedUserIncompatible, "FAILED_MISSING_SHARED_LIBRARY": ErrMissingSharedLibrary, "FAILED_REPLACE_COULDNT_DELETE": ErrReplaceCouldntDelete, "FAILED_DEXOPT": ErrDexopt, "FAILED_OLDER_SDK": ErrOlderSdk, "FAILED_CONFLICTING_PROVIDER": ErrConflictingProvider, "FAILED_NEWER_SDK": ErrNewerSdk, "FAILED_TEST_ONLY": ErrTestOnly, "FAILED_CPU_ABI_INCOMPATIBLE": ErrCPUAbiIncompatible, "FAILED_MISSING_FEATURE": ErrMissingFeature, "FAILED_CONTAINER_ERROR": ErrContainerError, "FAILED_INVALID_INSTALL_LOCATION": ErrInvalidInstallLocation, "FAILED_MEDIA_UNAVAILABLE": ErrMediaUnavailable, "FAILED_VERIFICATION_TIMEOUT": ErrVerificationTimeout, "FAILED_VERIFICATION_FAILURE": ErrVerificationFailure, "FAILED_PACKAGE_CHANGED": ErrPackageChanged, "FAILED_UID_CHANGED": ErrUIDChanged, "FAILED_VERSION_DOWNGRADE": ErrVersionDowngrade, "PARSE_FAILED_NOT_APK": ErrNotApk, "PARSE_FAILED_BAD_MANIFEST": ErrBadManifest, "PARSE_FAILED_UNEXPECTED_EXCEPTION": ErrUnexpectedException, "PARSE_FAILED_NO_CERTIFICATES": ErrNoCertificates, "PARSE_FAILED_INCONSISTENT_CERTIFICATES": ErrInconsistentCertificates, "PARSE_FAILED_CERTIFICATE_ENCODING": ErrCertificateEncoding, "PARSE_FAILED_BAD_PACKAGE_NAME": ErrBadPackageName, "PARSE_FAILED_BAD_SHARED_USER_ID": ErrBadSharedUserID, "PARSE_FAILED_MANIFEST_MALFORMED": ErrManifestMalformed, "PARSE_FAILED_MANIFEST_EMPTY": ErrManifestEmpty, "FAILED_INTERNAL_ERROR": ErrInternalError, "FAILED_USER_RESTRICTED": ErrUserRestricted, "FAILED_DUPLICATE_PERMISSION": ErrDuplicatePermission, "FAILED_NO_MATCHING_ABIS": ErrNoMatchingAbis, "FAILED_ABORTED": ErrAborted, } func parseError(s string) error { if err, e := errorVals[s]; e { return err } return fmt.Errorf("unknown error: %s", s) }