[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#956303: ITP: apkparser -- APK manifest & resources parsing in Golang.



Package: wnpp
Severity: wishlist
Owner: Hans-Christoph Steiner <hans@eds.org>

* Package name    : apkparser
  Version         : 0.0~git20200402.9fd46d5-1
  Upstream Author : Avast
* URL             : https://github.com/avast/apkparser
* License         : LGPL-3.0
  Programming Lang: Go
  Description     : APK manifest & resources parsing in Golang.

 apkparser GoDoc (https://godoc.org/github.com/avast/apkparser) Build
 Status (https://travis-ci.org/avast/apkparser)
 .
 APK AndroidManifest.xml and resources.arsc parsing.
 .
 Works with Go 1.8 or higher.
 .
 Documentation on GoDoc (https://godoc.org/github.com/avast/apkparser)
 go get github.com/avast/apkparser ZipReader Because Android can handle
 even broken ZIP archives, this packages has it's own zip reader, based
 on archive/zip.  axml2xml A tool to extract AndroidManifest.xml
 and verify APK signature is also part of this repo.  go get
 github.com/avast/apkparser go install github.com/avast/apkparser/axml2xml
 ./axml2xml -v application.apk Example ```go package main
 .
 import (
     "encoding/xml" "fmt" "github.com/avast/apkparser" "os"
 )
 .
 func main() {
     enc := xml.NewEncoder(os.Stdout) enc.Indent("", "\t") zipErr, resErr,
     manErr := apkparser.ParseApk(os.Args[1], enc) if zipErr != nil {
         fmt.Fprintf(os.Stderr, "Failed to open the APK: %s",
         zipErr.Error()) os.Exit(1) return
     }
 if resErr != nil {
     fmt.Fprintf(os.Stderr, "Failed to parse resources: %s",
     resErr.Error())
 } if manErr != nil {
     fmt.Fprintf(os.Stderr, "Failed to parse AndroidManifest.xml: %s",
     manErr.Error()) os.Exit(1) return
 } fmt.Println()
 .
 } ```

TODO: perhaps reasoning


Reply to: