summaryrefslogtreecommitdiff
path: root/gnu/packages/android.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/android.scm')
-rw-r--r--gnu/packages/android.scm231
1 files changed, 225 insertions, 6 deletions
diff --git a/gnu/packages/android.scm b/gnu/packages/android.scm
index 3bd3be6685..9f00303811 100644
--- a/gnu/packages/android.scm
+++ b/gnu/packages/android.scm
@@ -11,6 +11,7 @@
;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2020 Sergey Trofimov <sarg@sarg.org.ru>
;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
+;;; Copyright © 2021 Petr Hodina <phodina@protonmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -45,6 +46,7 @@
#:use-module (gnu packages gcc)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages golang)
+ #:use-module (gnu packages image)
#:use-module (gnu packages java)
#:use-module (gnu packages linux)
#:use-module (gnu packages pcre)
@@ -54,7 +56,9 @@
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages selinux)
#:use-module (gnu packages serialization)
+ #:use-module (gnu packages sphinx)
#:use-module (gnu packages ssh)
+ #:use-module (gnu packages time)
#:use-module (gnu packages tls)
#:use-module (gnu packages version-control)
#:use-module (gnu packages virtualization)
@@ -190,6 +194,28 @@ use their packages mostly unmodified in our Android NDK build system.")
(base32
checksum))))
+(define (android-platform-development version)
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://android.googlesource.com/platform/development")
+ (commit (string-append "android-" version))))
+ (file-name (string-append "android-platform-development-"
+ version "-checkout"))
+ (sha256
+ (base32 "0s92961yycg8wsga40i7fvbfmf1a5i6j2gk64j2jiy7s0hfd4rc3"))))
+
+(define (android-platform-frameworks-native version)
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://android.googlesource.com/platform/frameworks/native")
+ (commit (string-append "android-" version))))
+ (file-name (string-append "android-platform-frameworks-native-"
+ version "-checkout"))
+ (sha256
+ (base32 "00dgx27wma7wzivniy8zyw2443fi2xx8gyxii081m0fwamqd3jrm"))))
+
(define-public android-liblog
(package
(name "android-liblog")
@@ -728,6 +754,132 @@ it.
to be passed to the @code{udev} service.")
(license license:gpl3+)))
+(define-public android-platform-frameworks-native-headers
+ (package
+ (name "android-platform-frameworks-native-headers")
+ (version (android-platform-version))
+ (source (android-platform-frameworks-native version))
+ (build-system trivial-build-system)
+ (arguments
+ `(#:modules ((guix build utils))
+ #:builder
+ (begin
+ (use-modules (guix build utils))
+ (let ((source (assoc-ref %build-inputs "source"))
+ (include (string-append %output "/include/android")))
+ (mkdir-p include)
+ (copy-recursively (string-append source "/include/android")
+ (string-append include)) ; "/android"))
+ ))))
+ (home-page "https://android.googlesource.com/platform/frameworks/native/")
+ (synopsis "Headers for Android development from
+android-platform-frameworks-native")
+ (description "This package contains headers used for developing software
+for Android. More precicely the headers from include/android in
+platform/frameworks/native.")
+ (license license:asl2.0)))
+
+(define-public libetc1
+ (package
+ (name "libetc1")
+ (version (android-platform-version))
+ (source (android-platform-frameworks-native version))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:tests? #f ; no tests
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'create-Makefile
+ (lambda _
+ ;; No useful makefile is shipped, so we create one.
+ (with-output-to-file "Makefile"
+ (lambda _
+ (display
+ (string-append
+ "NAME = libETC1\n"
+ "SOURCES = opengl/libs/ETC1/etc1.cpp\n"
+ "CXXFLAGS += -fPIC\n"
+ "CPPFLAGS += -Iopengl/include\n"
+ "LDFLAGS += -shared -Wl,-soname,$(NAME).so.0\n"
+ "$(NAME).so.0: $(SOURCES)\n"
+ " $(CXX) $^ -o $@ $(CXXFLAGS) $(CPPFLAGS) $(LDFLAGS)\n"
+ "build: $(NAME).so.0"))
+ #t))))
+ (add-after 'unpack 'remove-unused-stuff-to-reduce-warnings
+ (lambda _
+ (delete-file-recursively "opengl/libs/tools")))
+ (delete 'configure)
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (lib (string-append out "/lib"))
+ (include (string-append out "/include")))
+ (install-file "libETC1.so.0" lib)
+ (with-directory-excursion lib
+ (symlink "libETC1.so.0" "libETC1.so"))
+ (copy-recursively "opengl/include/ETC1"
+ (string-append include "/ETC1"))))))))
+ (home-page "https://android.googlesource.com/platform/frameworks/native/")
+ (synopsis "ETC1 compression library")
+ (description "Ericsson Texture Compression (ETC) is a lossy texture
+compression technique developed in collaboration with Ericsson Research in
+early 2005. libETC1 provides the encoding and decoding of ETC1 compression
+algorithm.")
+ (license license:asl2.0)))
+
+(define-public etc1tool
+ (package
+ (name "etc1tool")
+ (version (android-platform-version))
+ (source (android-platform-development version))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'create-Makefile
+ (lambda _
+ ;; No useful makefile is shipped, so we create one.
+ (with-output-to-file "Makefile"
+ (lambda _
+ (display
+ (string-append
+ "NAME = etc1tool\n"
+ "SOURCES = tools/etc1tool/etc1tool.cpp\n"
+ "CPPFLAGS += -Iinclude\n"
+ "LDFLAGS += -lpng -lETC1\n"
+ "$(NAME): $(SOURCES)\n"
+ " $(CXX) $^ -o $@ $(CXXFLAGS) $(CPPFLAGS) $(LDFLAGS)\n"
+ "build: $(NAME)"))
+ #t))))
+ (add-before 'build 'fix-typos-in-help
+ (lambda _
+ (substitute* "tools/etc1tool/etc1tool.cpp"
+ ((" apropriate ") " appropriate "))
+ #t))
+ ;; TODO: Add man-page from Debian
+ (delete 'configure)
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin")))
+ (install-file "etc1tool" bin)))))))
+ (inputs
+ `(("libetc1" ,libetc1)
+ ("libpng" ,libpng)))
+ (home-page "https://developer.android.com/studio/command-line/etc1tool.html")
+ (synopsis "Encode and decode PNG images to resp. from the ETC1 compression
+standard.")
+ (description
+ "@command{etc1} is a command line utility that lets you encode PNG images
+to the ETC1 compression standard and decode ETC1 compressed images back to
+PNG. This tool is part of the Android SDK for working with media files for
+game apps.
+
+The standard for the ETC1 texture format can be found at
+@uref{http://www.khronos.org/registry/gles/extensions/OES/OES_compressed_ETC1_RGB8_texture.txt}.")
+ (license license:asl2.0)))
+
(define-public git-repo
(package
(name "git-repo")
@@ -904,17 +1056,84 @@ safest way, on a file image.")
useful for reverse engineering, analysis of Android applications and more.")
(license license:asl2.0)))
+(define-public python-android-backup
+ (package
+ (name "python-android-backup")
+ (version "0.2.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "android_backup" version))
+ (sha256
+ (base32
+ "15wb2lyjj2fpf7bhvmgpqn0mglsjj11zfvbjycx7mnidisgnljw6"))))
+ (build-system python-build-system)
+ (propagated-inputs (list python-pycrypto))
+ (home-page "https://github.com/bluec0re/android-backup-tools")
+ (synopsis "Unpack and repack android backups")
+ (description "This package allows you to unpack and repack Android
+backups. It supports encrypted archives.")
+ (license license:asl2.0)))
+
+(define-public python-miio
+ (package
+ (name "python-miio")
+ (version "0.5.8")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "python-miio" version))
+ (sha256
+ (base32
+ "0a4f5ybjvibawwxcjm3r9nnrzf1yff6wwgy05yzyk0bb3rmc99fp"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+ (when tests?
+ (add-installed-pythonpath inputs outputs)
+ (invoke "pytest" "miio")))))))
+ (native-inputs
+ (list python-pytest
+ python-pytest-mock
+ python-sphinx
+ python-sphinx-click
+ python-sphinx-rtd-theme
+ python-sphinxcontrib-apidoc))
+ (propagated-inputs
+ (list python-android-backup
+ python-appdirs
+ python-attrs
+ python-click
+ python-construct
+ python-croniter
+ python-cryptography
+ python-defusedxml
+ python-importlib-metadata
+ python-netifaces
+ python-pytz
+ python-pyyaml
+ python-tqdm
+ python-zeroconf))
+ (home-page "https://github.com/rytilahti/python-miio")
+ (synopsis "Control Xiaomi smart appliances")
+ (description "This package provides library and command line interface
+for communicating with Xiaomi smart appliances over miIO and MIoT protocols.")
+ (license license:gpl3+)))
+
(define-public fdroidserver
(package
(name "fdroidserver")
(version "1.1.9")
(source
- (origin
- (method url-fetch)
- (uri (pypi-uri "fdroidserver" version))
- (sha256
- (base32
- "0m07f791z45w7r2dzx4yb6s54b3c3wykm3w9hn25p2jcyax082a2"))))
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "fdroidserver" version))
+ (sha256
+ (base32
+ "0m07f791z45w7r2dzx4yb6s54b3c3wykm3w9hn25p2jcyax082a2"))))
(build-system python-build-system)
(arguments
`(#:phases