apk

package
v0.0.0-...-76d8352 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 14, 2024 License: MIT Imports: 17 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type APK

type APK struct {
	TmpDir         string         `json:"-"`
	Filename       string         `json:"filename"`
	Manifest       *Manifest      `json:"manifest"`
	Files          []*APKZipFile  `json:"files"`
	FileStatistics map[string]int `json:"fileStatistics"`
	Sources        []*APKSource   `json:"sources"`
	Permissions    []string       `json:"permissions"`
	Services       []string       `json:"services"`
	Activities     []string       `json:"activities"`
	Receivers      []string       `json:"receivers"`
	Providers      []string       `json:"providers"`
	Features       []string       `json:"features"`
	FileSize       int64          `json:"fileSize"`
}

func ParseAPKInput

func ParseAPKInput(arg string, decompile bool, email string, password string) (*APK, error)

func (*APK) Analyze

func (a *APK) Analyze()

func (*APK) Compare

func (a *APK) Compare(b *APK) *APKComparison

func (*APK) Decompile

func (a *APK) Decompile() error

func (*APK) GetAnalysis

func (a *APK) GetAnalysis(format string, includeFiles bool) (string, error)

func (*APK) GetFiles

func (a *APK) GetFiles() []string

func (*APK) GetSources

func (a *APK) GetSources() []string

func (*APK) ParseManifest

func (a *APK) ParseManifest(data []byte) error

func (*APK) ParseSources

func (a *APK) ParseSources() error

func (*APK) ParseZIP

func (a *APK) ParseZIP() error

type APKComparison

type APKComparison struct {
	APK1                      *APK                    `json:"-"`
	APK2                      *APK                    `json:"-"`
	CompileSDKVersion         *APKComparisonInt       `json:"compileSDKVersion"`
	CompileSDKVersionCodename *APKComparisonString    `json:"compileSDKVersionCodename"`
	PlatformBuildVersionCode  *APKComparisonInt       `json:"platformBuildVersionCode"`
	PlatformBuildVersionName  *APKComparisonString    `json:"platformBuildVersionName"`
	PackageName               *APKComparisonString    `json:"packageName"`
	Features                  *APKComparisonArray     `json:"features"`
	Permissions               *APKComparisonArray     `json:"permissions"`
	Services                  *APKComparisonArray     `json:"services"`
	Receivers                 *APKComparisonArray     `json:"receivers"`
	Activities                *APKComparisonArray     `json:"activities"`
	Providers                 *APKComparisonArray     `json:"providers"`
	Files                     *APKComparisonFileArray `json:"files"`
	Sources                   *APKComparisonFileArray `json:"sources"`
	MainActivity              *APKComparisonString    `json:"mainActivity"`
}

func (*APKComparison) CompareActivities

func (c *APKComparison) CompareActivities() *APKComparisonArray

func (*APKComparison) CompareAll

func (c *APKComparison) CompareAll()

func (*APKComparison) CompareCompileSDKVersion

func (c *APKComparison) CompareCompileSDKVersion() *APKComparisonInt

func (*APKComparison) CompareCompileSDKVersionCodename

func (c *APKComparison) CompareCompileSDKVersionCodename() *APKComparisonString

func (*APKComparison) CompareFeatures

func (c *APKComparison) CompareFeatures() *APKComparisonArray

func (*APKComparison) CompareFiles

func (c *APKComparison) CompareFiles() *APKComparisonFileArray

func (*APKComparison) CompareMainActivity

func (c *APKComparison) CompareMainActivity() *APKComparisonString

func (*APKComparison) ComparePackageName

func (c *APKComparison) ComparePackageName() *APKComparisonString

func (*APKComparison) ComparePermissions

func (c *APKComparison) ComparePermissions() *APKComparisonArray

func (*APKComparison) ComparePlatformBuildVersionCode

func (c *APKComparison) ComparePlatformBuildVersionCode() *APKComparisonInt

func (*APKComparison) ComparePlatformBuildVersionName

func (c *APKComparison) ComparePlatformBuildVersionName() *APKComparisonString

func (*APKComparison) CompareProviders

func (c *APKComparison) CompareProviders() *APKComparisonArray

func (*APKComparison) CompareReceivers

func (c *APKComparison) CompareReceivers() *APKComparisonArray

func (*APKComparison) CompareServices

func (c *APKComparison) CompareServices() *APKComparisonArray

func (*APKComparison) CompareSources

func (c *APKComparison) CompareSources() *APKComparisonFileArray

func (*APKComparison) GetComparison

func (c *APKComparison) GetComparison(format string, onlyDiffs bool, includeFiles bool) (string, error)

type APKComparisonArray

type APKComparisonArray struct {
	APK1Only []string `json:"apk1Only"`
	APK2Only []string `json:"apk2Only"`
	Common   []string `json:"common"`
	Equal    bool     `json:"equal"`
}

func (*APKComparisonArray) WriteText

func (ma *APKComparisonArray) WriteText(writer *bytes.Buffer, onlyDiffs bool)

type APKComparisonFileArray

type APKComparisonFileArray struct {
	APK1Only []string `json:"apk1Only"`
	APK2Only []string `json:"apk2Only"`
	Common   []string `json:"common"`
	Changed  []string `json:"changed"`
	Equal    bool     `json:"equal"`
}

func (*APKComparisonFileArray) WriteText

func (ma *APKComparisonFileArray) WriteText(writer *bytes.Buffer, onlyDiffs bool)

type APKComparisonInt

type APKComparisonInt struct {
	APK1  int64 `json:"apk1"`
	APK2  int64 `json:"apk2"`
	Equal bool  `json:"equal"`
}

type APKComparisonString

type APKComparisonString struct {
	APK1  string `json:"apk1"`
	APK2  string `json:"apk2"`
	Equal bool   `json:"equal"`
}

type APKSource

type APKSource struct {
	FullPath string   `json:"fullPath"`
	Path     string   `json:"path"`
	Filename string   `json:"filename"`
	Hash     string   `json:"hash"`
	Package  string   `json:"package"`
	Imports  []string `json:"imports"`
	Size     int64    `json:"size"`
}

func (*APKSource) GetFullPath

func (f *APKSource) GetFullPath() string

type APKZipFile

type APKZipFile struct {
	Path             string `json:"path"`
	Filename         string `json:"filename"`
	CompressedSize   uint64 `json:"compressedSize"`
	UncompressedSize uint64 `json:"uncompressedSize"`
	CRC32            uint32 `json:"crc32"`
}

func (*APKZipFile) GetFullPath

func (f *APKZipFile) GetFullPath() string

type BundleToolSpec

type BundleToolSpec struct {
	SupportedABIs    []string `json:"supportedAbis"`
	SupportedLocales []string `json:"supportedLocales"`
	ScreenDensity    int      `json:"screenDensity"`
	SdkVersion       int      `json:"sdkVersion"`
}

type Manifest

type Manifest struct {
	XMLName                   xml.Name              `xml:"manifest"`
	Text                      string                `xml:",chardata"`
	Android                   string                `xml:"android,attr"`
	CompileSdkVersion         string                `xml:"compileSdkVersion,attr"`
	CompileSdkVersionCodename string                `xml:"compileSdkVersionCodename,attr"`
	Package                   string                `xml:"package,attr"`
	PlatformBuildVersionCode  string                `xml:"platformBuildVersionCode,attr"`
	PlatformBuildVersionName  string                `xml:"platformBuildVersionName,attr"`
	UsesPermission            []*ManifestPermission `xml:"uses-permission"`
	Queries                   *ManifestQuery        `xml:"queries"`
	UsesFeature               []*ManifestFeature    `xml:"uses-feature"`
	Application               *ManifestApplication  `xml:"application"`
}

func ParseAndroidManifest

func ParseAndroidManifest(manifestText []byte) (*Manifest, error)

func (*Manifest) GetActivities

func (m *Manifest) GetActivities() []string

func (*Manifest) GetApplicationName

func (m *Manifest) GetApplicationName() string

func (*Manifest) GetFeatures

func (m *Manifest) GetFeatures() []string

func (*Manifest) GetMainActivity

func (m *Manifest) GetMainActivity() string

func (*Manifest) GetPackageName

func (m *Manifest) GetPackageName() string

func (*Manifest) GetPermissions

func (m *Manifest) GetPermissions() []string

func (*Manifest) GetProviders

func (m *Manifest) GetProviders() []string

func (*Manifest) GetReceivers

func (m *Manifest) GetReceivers() []string

func (*Manifest) GetServices

func (m *Manifest) GetServices() []string

type ManifestApplication

type ManifestApplication struct {
	Text                string                            `xml:",chardata"`
	AllowBackup         string                            `xml:"allowBackup,attr"`
	AppComponentFactory string                            `xml:"appComponentFactory,attr"`
	ExtractNativeLibs   string                            `xml:"extractNativeLibs,attr"`
	HardwareAccelerated string                            `xml:"hardwareAccelerated,attr"`
	Icon                string                            `xml:"icon,attr"`
	IsSplitRequired     string                            `xml:"isSplitRequired,attr"`
	Label               string                            `xml:"label,attr"`
	LargeHeap           string                            `xml:"largeHeap,attr"`
	Name                string                            `xml:"name,attr"`
	RoundIcon           string                            `xml:"roundIcon,attr"`
	SupportsRtl         string                            `xml:"supportsRtl,attr"`
	Theme               string                            `xml:"theme,attr"`
	Metadata            []*ManifestApplicationMetadata    `xml:"meta-data"`
	Provider            []*ManifestApplicationProvider    `xml:"provider"`
	Activity            []*ManifestApplicationActivity    `xml:"activity"`
	ActivityAlias       *ManifestApplicationActivityAlias `xml:"activity-alias"`
	Service             []*ManifestApplicationService     `xml:"service"`
	Receiver            []*ManifestApplicationReceiver    `xml:"receiver"`
}

type ManifestApplicationActivity

type ManifestApplicationActivity struct {
	Text                string                                     `xml:",chardata"`
	LaunchMode          string                                     `xml:"launchMode,attr"`
	Name                string                                     `xml:"name,attr"`
	NoHistory           string                                     `xml:"noHistory,attr"`
	ScreenOrientation   string                                     `xml:"screenOrientation,attr"`
	Theme               string                                     `xml:"theme,attr"`
	ConfigChanges       string                                     `xml:"configChanges,attr"`
	WindowSoftInputMode string                                     `xml:"windowSoftInputMode,attr"`
	Exported            string                                     `xml:"exported,attr"`
	ExcludeFromRecents  string                                     `xml:"excludeFromRecents,attr"`
	Enabled             string                                     `xml:"enabled,attr"`
	Process             string                                     `xml:"process,attr"`
	StateNotNeeded      string                                     `xml:"stateNotNeeded,attr"`
	ResizeableActivity  string                                     `xml:"resizeableActivity,attr"`
	SupportsRtl         string                                     `xml:"supportsRtl,attr"`
	IntentFilter        []*ManifestApplicationActivityIntentFilter `xml:"intent-filter"`
	Metadata            *ManifestApplicationActivityMetadata       `xml:"meta-data"`
}

type ManifestApplicationActivityAlias

type ManifestApplicationActivityAlias struct {
	Text              string `xml:",chardata"`
	LaunchMode        string `xml:"launchMode,attr"`
	Name              string `xml:"name,attr"`
	NoHistory         string `xml:"noHistory,attr"`
	ScreenOrientation string `xml:"screenOrientation,attr"`
	TargetActivity    string `xml:"targetActivity,attr"`
}

type ManifestApplicationActivityIntentFilter

type ManifestApplicationActivityIntentFilter struct {
	Text       string                                             `xml:",chardata"`
	AutoVerify string                                             `xml:"autoVerify,attr"`
	Label      string                                             `xml:"label,attr"`
	Action     *ManifestApplicationActivityIntentFilterAction     `xml:"action"`
	Category   []*ManifestApplicationActivityIntentFilterCategory `xml:"category"`
	Data       []*ManifestApplicationActivityIntentFilterData     `xml:"data"`
}

type ManifestApplicationActivityIntentFilterAction

type ManifestApplicationActivityIntentFilterAction struct {
	Text string `xml:",chardata"`
	Name string `xml:"name,attr"`
}

type ManifestApplicationActivityIntentFilterCategory

type ManifestApplicationActivityIntentFilterCategory struct {
	Text string `xml:",chardata"`
	Name string `xml:"name,attr"`
}

type ManifestApplicationActivityIntentFilterData

type ManifestApplicationActivityIntentFilterData struct {
	Text       string `xml:",chardata"`
	Scheme     string `xml:"scheme,attr"`
	Host       string `xml:"host,attr"`
	PathPrefix string `xml:"pathPrefix,attr"`
	Path       string `xml:"path,attr"`
}

type ManifestApplicationActivityMetadata

type ManifestApplicationActivityMetadata struct {
	Text     string `xml:",chardata"`
	Name     string `xml:"name,attr"`
	Resource string `xml:"resource,attr"`
}

type ManifestApplicationMetadata

type ManifestApplicationMetadata struct {
	Text     string `xml:",chardata"`
	Name     string `xml:"name,attr"`
	Value    string `xml:"value,attr"`
	Resource string `xml:"resource,attr"`
}

type ManifestApplicationProvider

type ManifestApplicationProvider struct {
	Text                string                               `xml:",chardata"`
	Authorities         string                               `xml:"authorities,attr"`
	Exported            string                               `xml:"exported,attr"`
	GrantUriPermissions string                               `xml:"grantUriPermissions,attr"`
	Name                string                               `xml:"name,attr"`
	DirectBootAware     string                               `xml:"directBootAware,attr"`
	InitOrder           string                               `xml:"initOrder,attr"`
	Multiprocess        string                               `xml:"multiprocess,attr"`
	Metadata            *ManifestApplicationProviderMetadata `xml:"meta-data"`
}

type ManifestApplicationProviderMetadata

type ManifestApplicationProviderMetadata struct {
	Text                string `xml:",chardata"`
	Name                string `xml:"name,attr"`
	Resource            string `xml:"resource,attr"`
	Exported            string `xml:"exported,attr"`
	GrantUriPermissions string `xml:"grantUriPermissions,attr"`
}

type ManifestApplicationReceiver

type ManifestApplicationReceiver struct {
	Text         string                                   `xml:",chardata"`
	Exported     string                                   `xml:"exported,attr"`
	Name         string                                   `xml:"name,attr"`
	Enabled      string                                   `xml:"enabled,attr"`
	Permission   string                                   `xml:"permission,attr"`
	IntentFilter *ManifestApplicationReceiverIntentFilter `xml:"intent-filter"`
}

type ManifestApplicationReceiverIntentFilter

type ManifestApplicationReceiverIntentFilter struct {
	Text   string                                         `xml:",chardata"`
	Action *ManifestApplicationReceiverIntentFilterAction `xml:"action"`
}

type ManifestApplicationReceiverIntentFilterAction

type ManifestApplicationReceiverIntentFilterAction struct {
	Text string `xml:",chardata"`
	Name string `xml:"name,attr"`
}

type ManifestApplicationService

type ManifestApplicationService struct {
	Text            string                                  `xml:",chardata"`
	DirectBootAware string                                  `xml:"directBootAware,attr"`
	Exported        string                                  `xml:"exported,attr"`
	Name            string                                  `xml:"name,attr"`
	Permission      string                                  `xml:"permission,attr"`
	StopWithTask    string                                  `xml:"stopWithTask,attr"`
	Enabled         string                                  `xml:"enabled,attr"`
	Metadata        []*ManifestApplicationServiceMetadata   `xml:"meta-data"`
	IntentFilter    *ManifestApplicationServiceIntentFilter `xml:"intent-filter"`
}

type ManifestApplicationServiceIntentFilter

type ManifestApplicationServiceIntentFilter struct {
	Text     string                                        `xml:",chardata"`
	Priority string                                        `xml:"priority,attr"`
	Action   *ManifestApplicationServiceIntentFilterAction `xml:"action"`
}

type ManifestApplicationServiceIntentFilterAction

type ManifestApplicationServiceIntentFilterAction struct {
	Text string `xml:",chardata"`
	Name string `xml:"name,attr"`
}

type ManifestApplicationServiceMetadata

type ManifestApplicationServiceMetadata struct {
	Text  string `xml:",chardata"`
	Name  string `xml:"name,attr"`
	Value string `xml:"value,attr"`
}

type ManifestFeature

type ManifestFeature struct {
	Text     string `xml:",chardata"`
	Name     string `xml:"name,attr"`
	Required string `xml:"required,attr"`
}

type ManifestPermission

type ManifestPermission struct {
	Text string `xml:",chardata"`
	Name string `xml:"name,attr"`
}

type ManifestQuery

type ManifestQuery struct {
	Text   string               `xml:",chardata"`
	Intent *ManifestQueryIntent `xml:"intent"`
}

type ManifestQueryIntent

type ManifestQueryIntent struct {
	Text   string                     `xml:",chardata"`
	Action *ManifestQueryIntentAction `xml:"action"`
	Data   *ManifestQueryIntentData   `xml:"data"`
}

type ManifestQueryIntentAction

type ManifestQueryIntentAction struct {
	Text string `xml:",chardata"`
	Name string `xml:"name,attr"`
}

type ManifestQueryIntentData

type ManifestQueryIntentData struct {
	Text     string `xml:",chardata"`
	MimeType string `xml:"mimeType,attr"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL