fdroidcl

package module
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Jun 19, 2015 License: BSD-3-Clause Imports: 10 Imported by: 0

README

fdroidcl

F-Droid desktop client.

This is not a replacement for the Android client. While the Android client integrates with the system with regular update checks and notifications, this is a command line client that talks to connected devices via ADB.

Commands
update                Update the index
search <regexp...>    Search available apps
show <appid...>       Show detailed info about an app
devices               List connected devices
install <appid...>    Install an app
uninstall <appid...>  Uninstall an app
Missing commands
upgrade <appid...>  Upgrade an app
Missing features
  • Index verification via jar signature
    • Cannot be currently done since MD5WithRSA is unimplemented
  • Multi-repo support
  • Interaction with multiple devices at once
  • Do multiple tasks at once, for example:
    • Load the index and query installed packages via ADB
Advantages over the Android client
  • Command line interface
  • Batch install/update/remove apps without root nor system privileges
  • Handle multiple Android devices
What it will never do
  • Run as a daemon, e.g. periodic index updates
  • Graphical user interface
  • Act as an F-Droid server
  • Swap apps with devices running the Android client

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrNoIndex     = errors.New("no xml index found inside jar")
	ErrNoSigs      = errors.New("no jar signatures found")
	ErrTooManySigs = errors.New("multiple jar signatures found")
)

Functions

This section is empty.

Types

type Apk

type Apk struct {
	VName   string    `xml:"version"`
	VCode   int       `xml:"versioncode"`
	Size    int64     `xml:"size"`
	MinSdk  int       `xml:"sdkver"`
	MaxSdk  int       `xml:"maxsdkver"`
	ABIs    commaList `xml:"nativecode"`
	ApkName string    `xml:"apkname"`
	SrcName string    `xml:"srcname"`
	Sig     hexVal    `xml:"sig"`
	Added   dateVal   `xml:"added"`
	Perms   commaList `xml:"permissions"`
	Feats   commaList `xml:"features"`
	Hash    HexHash   `xml:"hash"`
}

Apk is an Android package

type App

type App struct {
	ID        string    `xml:"id"`
	Name      string    `xml:"name"`
	Summary   string    `xml:"summary"`
	Desc      string    `xml:"desc"`
	License   string    `xml:"license"`
	Categs    commaList `xml:"categories"`
	Website   string    `xml:"web"`
	Source    string    `xml:"source"`
	Tracker   string    `xml:"tracker"`
	Changelog string    `xml:"changelog"`
	Donate    string    `xml:"donate"`
	Bitcoin   string    `xml:"bitcoin"`
	Litecoin  string    `xml:"litecoin"`
	Dogecoin  string    `xml:"dogecoin"`
	FlattrID  string    `xml:"flattr"`
	Apks      []Apk     `xml:"package"`
	CVName    string    `xml:"marketversion"`
	CVCode    int       `xml:"marketvercode"`
	CurApk    *Apk
}

App is an Android application

func (*App) TextDesc

func (app *App) TextDesc(w io.Writer)

type HexHash

type HexHash struct {
	Type string `xml:"type,attr"`
	Data hexVal `xml:",chardata"`
}

type Index

type Index struct {
	Repo struct {
		Name        string `xml:"name,attr"`
		PubKey      string `xml:"pubkey,attr"`
		Timestamp   int    `xml:"timestamp,attr"`
		URL         string `xml:"url,attr"`
		Version     int    `xml:"version,attr"`
		MaxAge      int    `xml:"maxage,attr"`
		Description string `xml:"description"`
	} `xml:"repo"`
	Apps []App `xml:"application"`
}

func LoadIndexJar

func LoadIndexJar(r io.ReaderAt, size int64, pubkey []byte) (*Index, error)

func LoadIndexXml

func LoadIndexXml(r io.Reader) (*Index, error)

Directories

Path Synopsis
cmd

Jump to

Keyboard shortcuts

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