diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..efde38b --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/androguard-3.4.0a1-clean.tar.gz diff --git a/clean.sh b/clean.sh new file mode 100644 index 0000000..d0e16d6 --- /dev/null +++ b/clean.sh @@ -0,0 +1,10 @@ +#!/bin/bash +# Run the script and enter the version as the first command line argument +version=${1} +wget https://github.com/androguard/androguard/archive/v${version}/androguard-v${version}.tar.gz +tar -xf androguard-v${version}.tar.gz +# remove test and exaqmple +rm -r androguard-${version}/tests/ +rm -r androguard-${version}/examples/ +tar -cf androguard-${version}-clean.tar androguard-${version} +gzip androguard-${version}-clean.tar diff --git a/python-androguard.spec b/python-androguard.spec new file mode 100644 index 0000000..c9269fa --- /dev/null +++ b/python-androguard.spec @@ -0,0 +1,136 @@ +%bcond_with bootstrap + +Name: python-androguard +# Newer versions require Frida which is not yet packaged. +# Currently the main dependency is fdroidserver which uses +# this version +Version: 3.4.0a1 +Release: %autorelease +Summary: Reverse engineering and pentesting for Android applications + +License: Apache-2.0 +URL: https://github.com/androguard/androguard +# The source release contains binaries with unknown licenses and malware +#OriginalSource: %%{url}/archive/v%%{version}/androguard-%%{version}.tar.gz +Source0: androguard-%{version}-clean.tar.gz +# script to remov binaries from source code +Source1: clean.sh + +BuildArch: noarch +BuildRequires: python3-devel +%if %{without bootstrap} +# Documentation +BuildRequires: help2man +BuildRequires: make +BuildRequires: texinfo +BuildRequires: python3dist(androguard) +BuildRequires: python3dist(docutils) +BuildRequires: python3dist(sphinx) +BuildRequires: python3-sphinx_rtd_theme +BuildRequires: python3-sphinxcontrib-programoutput +%endif +# Import check +BuildRequires: python3-pyperclip +BuildRequires: python3-qt5 + +%global _description %{expand: +Androguard is a full python tool to play with Android files. +- DEX, ODEX +- APK +- Android's binary xml +- Android resources +- Disassemble DEX/ODEX bytecodes +- Basic Decompiler for DEX/ODEX files +- Frida support for easy dynamic analysis +- SQLite database to save the session} + +%description %_description + +%package -n python3-androguard +Summary: %{summary} + +%description -n python3-androguard %_description + + +%prep +%autosetup -p1 -n androguard-%{version} + + +%generate_buildrequires +%pyproject_buildrequires + + +%build +%pyproject_wheel +%if %{without bootstrap} +help2man --version-string='%{version}' --no-discard-stderr --no-info --name='%{summary}' --output=androapkid.1 androapkid +help2man --version-string='%{version}' --no-discard-stderr --no-info --name='%{summary}' --output=androarsc.1 androarsc +help2man --version-string='%{version}' --no-discard-stderr --no-info --name='%{summary}' --output=androaxml.1 androaxml +help2man --version-string='%{version}' --no-discard-stderr --no-info --name='%{summary}' --output=androcg.1 androcg +help2man --version-string='%{version}' --no-discard-stderr --no-info --name='%{summary}' --output=androdd.1 androdd +help2man --version-string='%{version}' --no-discard-stderr --no-info --name='%{summary}' --output=androdis.1 androdis +help2man --version-string='%{version}' --no-discard-stderr --no-info --name='%{summary}' --output=androguard.1 androguard +help2man --version-string='%{version}' --no-discard-stderr --no-info --name='%{summary}' --output=androlyze.1 androlyze +help2man --version-string='%{version}' --no-discard-stderr --no-info --name='%{summary}' --output=androsign.1 androsign + +pushd docs +make texinfo +pushd build +pushd texinfo +makeinfo --docbook Androguard.texi +popd +popd +popd +%endif + +%install +%pyproject_install +%pyproject_save_files -l androguard + +%if %{without bootstrap} +mkdir -p %{buildroot}%{_mandir}/man1 +install -m644 androapkid.1 %{buildroot}%{_mandir}/man1/ +install -m644 androarsc.1 %{buildroot}%{_mandir}/man1/ +install -m644 androaxml.1 %{buildroot}%{_mandir}/man1/ +install -m644 androcg.1 %{buildroot}%{_mandir}/man1/ +install -m644 androdd.1 %{buildroot}%{_mandir}/man1/ +install -m644 androdis.1 %{buildroot}%{_mandir}/man1/ +install -m644 androguard.1 %{buildroot}%{_mandir}/man1/ +install -m644 androlyze.1 %{buildroot}%{_mandir}/man1/ +install -m644 androsign.1 %{buildroot}%{_mandir}/man1/ + +mkdir -p %{buildroot}%{_datadir}/help/en/Androguard +install -m644 docs/build/texinfo/Androguard.xml %{buildroot}%{_datadir}/help/en/Androguard +cp -p -r docs/build/texinfo/Androguard-figures %{buildroot}%{_datadir}/help/en/Androguard/ +%endif + +%check +%pyproject_check_import + +%files -n python3-androguard -f %{pyproject_files} +%{_bindir}/androapkid +%{_bindir}/androarsc +%{_bindir}/androaxml +%{_bindir}/androcg +%{_bindir}/androdd +%{_bindir}/androdis +%{_bindir}/androguard +%{_bindir}/androgui +%{_bindir}/androlyze +%{_bindir}/androsign +%if %{without bootstrap} +%{_mandir}/man1/androapkid.1* +%{_mandir}/man1/androarsc.1* +%{_mandir}/man1/androaxml.1* +%{_mandir}/man1/androcg.1* +%{_mandir}/man1/androdd.1* +%{_mandir}/man1/androdis.1* +%{_mandir}/man1/androguard.1* +%{_mandir}/man1/androlyze.1* +%{_mandir}/man1/androsign.1* +%dir %{_datadir}/help/en +%lang(en) %{_datadir}/help/en/Androguard +%endif + +%changelog +%autochangelog diff --git a/sources b/sources new file mode 100644 index 0000000..72ba418 --- /dev/null +++ b/sources @@ -0,0 +1 @@ +SHA512 (androguard-3.4.0a1-clean.tar.gz) = 2fb1254323998c8feec8705d2dabeacf868ce57bce478038c290a3553ca6e00b6ad8a06e35145189aeb97b8d4928d640209a12c1501cc75690f1e64e5f7d1c09