package apk_util import ( "github.com/shogo82148/androidbinary/apk" ) // Info holds basic APK version information. type Info struct { Version string VersionCode int32 } // Version returns the versionName from an APK's manifest. func Version(path string) (string, error) { a, err := apk.OpenFile(path) if err != nil { return "", err } defer a.Close() v, err := a.Manifest().VersionName.String() if err != nil { return "", err } return v, nil } // Read returns version name and version code from an APK's manifest. func Read(path string) (*Info, error) { a, err := apk.OpenFile(path) if err != nil { return nil, err } defer a.Close() manifest := a.Manifest() version, err := manifest.VersionName.String() if err != nil { return nil, err } code, err := manifest.VersionCode.Int32() if err != nil { return nil, err } return &Info{ Version: version, VersionCode: code, }, nil }