Subject: [bug#62201] [PATCH] gnu: Add payload-dumper.

From: conses <[email-masked]>
Date: Wed, 15 Mar 2023 13:34:01 +0100

* gnu/packages/android.scm (payload-dumper): New variable.
---
 gnu/packages/android.scm | 53 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 53 insertions(+)

diff --git a/gnu/packages/android.scm b/gnu/packages/android.scm
index 881b75d763..d7a308775f 100644
--- a/gnu/packages/android.scm
+++ b/gnu/packages/android.scm
@@ -51,6 +51,7 @@ (define-module (gnu packages android)
   #:use-module (gnu packages java)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages pcre)
+  #:use-module (gnu packages protobuf)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-crypto)
   #:use-module (gnu packages python-web)
@@ -982,6 +983,58 @@ (define-public git-repo
 script that you can put anywhere in your path.")
     (license license:asl2.0)))
 
+(define-public payload-dumper
+  (let ((commit "35134a28d641deda899c30aed57aace21bfd4a3c")
+        (revision "0"))
+    (package
+      (name "payload-dumper")
+      (version (git-version "0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri
+          (git-reference
+           (url "https://github.com/vm03/payload_dumper")
+           (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1sdq6dgva5yxz147bkv8xbf79pz60vwc33f0cmj9awgfbxha2b43"))))
+      (inputs
+       (list python-3 python-protobuf python-six python-bsdiff4))
+      (build-system python-build-system)
+      (arguments
+       (list
+        #:use-setuptools? #f
+        #:tests? #f
+        #:phases
+        #~(modify-phases %standard-phases
+            (delete 'build)
+            (replace 'install
+              (lambda* (#:key outputs #:allow-other-keys)
+                (begin
+                  (use-modules (guix build utils))
+                  (let* ((python (string-append
+                                  #$(this-package-input "python")
+                                  "/bin"))
+                         (bin (string-append #$output "/bin"))
+                         (target (string-append bin "/payload_dumper"))
+                         (version (python-version
+                                   #$(this-package-input "python")))
+                         (pydir (string-append #$output "/lib/python"
+                                               version "/site-packages")))
+                    (mkdir-p bin)
+                    (copy-file (string-append #$source "/payload_dumper.py")
+                               target)
+                    (install-file "update_metadata_pb2.py" pydir)
+                    (substitute* target
+                      (("/usr/bin/env python") (which "python3")))
+                    (chmod target #o555))))))))
+      (synopsis "Android OTA payload dumper")
+      (description "Script to extract the payload of incremental and full
+OTA's.")
+      (home-page "https://github.com/vm03/payload_dumper")
+      (license license:gpl3+))))
+
 (define-public abootimg
   (package
     (name "abootimg")
-- 
2.39.1

-- 
Best regards,
conses