Skip to content

Instantly share code, notes, and snippets.

@satnam6502
Created January 8, 2016 08:43
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save satnam6502/1e1d7baa542a044ac5e0 to your computer and use it in GitHub Desktop.
Save satnam6502/1e1d7baa542a044ac5e0 to your computer and use it in GitHub Desktop.
Go program for listing apps on an Android device
package main
import (
"fmt"
"io/ioutil"
"log"
"path/filepath"
"strings"
"github.com/lunny/axmlParser"
)
func listApps(location string) error {
files, err := ioutil.ReadDir(location)
if err != nil {
return err
}
for _, fileInfo := range files {
if strings.HasSuffix(fileInfo.Name(), ".apk") {
apkfilepath := filepath.Join(location, fileInfo.Name())
apk := new(axmlParser.AppNameListener)
if _, err := axmlParser.ParseApk(apkfilepath, apk); err != nil {
return err
}
fmt.Printf("Package: %s Version: %s %s\n", apk.PackageName,
apk.VersionName, apk.VersionCode)
}
}
return nil
}
func main() {
fmt.Printf("System applications:\n")
if err := listApps("/system/app"); err != nil {
log.Fatalf("Failed to list system applications: %v\n", err)
}
fmt.Printf("User applications:\n")
if err := listApps("/data/app"); err != nil {
log.Fatalf("Failed to list user applications: %v\n", err)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment