{"id":26239126,"url":"https://github.com/aancw/apkpuller","last_synced_at":"2025-07-15T23:47:25.076Z","repository":{"id":280763929,"uuid":"943044295","full_name":"aancw/apkpuller","owner":"aancw","description":"A tool for extracting (Splitted) APK files from installed applications on Android devices. It automates the boring stuff when performing mobile penetration testing, especially for static analysis.","archived":false,"fork":false,"pushed_at":"2025-03-05T06:30:51.000Z","size":6,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-13T06:34:34.911Z","etag":null,"topics":["adb","mobile-pentest","split-apk","static-analysis"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aancw.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-03-05T04:44:46.000Z","updated_at":"2025-03-06T09:18:47.000Z","dependencies_parsed_at":"2025-03-05T07:38:25.396Z","dependency_job_id":null,"html_url":"https://github.com/aancw/apkpuller","commit_stats":null,"previous_names":["aancw/apkpuller"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/aancw/apkpuller","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aancw%2Fapkpuller","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aancw%2Fapkpuller/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aancw%2Fapkpuller/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aancw%2Fapkpuller/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aancw","download_url":"https://codeload.github.com/aancw/apkpuller/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aancw%2Fapkpuller/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265468021,"owners_count":23770820,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["adb","mobile-pentest","split-apk","static-analysis"],"created_at":"2025-03-13T06:34:06.297Z","updated_at":"2025-07-15T23:47:25.052Z","avatar_url":"https://github.com/aancw.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# apkpuller\nA tool for extracting (Splitted) APK files from installed applications on Android devices. It automates the boring stuff when performing mobile penetration testing, especially for static analysis.\n\n## Features\n1. Automatic pulling of installed apk\n2. Support pulling splitted apk\n3. It make life easier haha\n\n## Usage\n```\n% python apkpuller.py -h\nusage: apkpuller.py [-h] [-o OUTPUT] [-p PACKAGE]\n\nExtracting installed apk from android device\n\noptions:\n  -h, --help            show this help message and exit\n  -o OUTPUT, --output OUTPUT\n                        Custom output folder(default to packagename/*.apk)\n  -p PACKAGE, --package PACKAGE\n                        Specify package to pull(default will lis all package)\n```\n\n- You can run the app without specifying -o/--output and -p/--package, and the app will display an interactive dialog:\n\n```\n% python apkpuller.py\nFetching list of installed packages...\nSelect a package to pull the APK:\n1. com.amazon.mShop.android.shopping\n2. icu.nullptr.applistdetector\n3. com.example.app\n4. com.logame.eliminateintruder3d\n5. com.crazy.juicer.xm\n6. qsrv.ainfld\n\nEnter the number of the package: 3\nPulling base APK: com.example.app/base.apk\nBase APK pulled successfully: com.example.app/base.apk\nPulling split APK: com.example.app/split_config.arm64_v8a.apk\nSplit APK pulled successfully: com.example.app/split_config.arm64_v8a.apk\nPulling split APK: com.example.app/split_config.xxhdpi.apk\nSplit APK pulled successfully: com.example.app/split_config.xxhdpi.apk\n```\n\n- If you know the package name, you can specify it directly with -p/--package. This will bypass the interactive dialog:\n\n```\n% python apkpuller.py -p com.example.app\nPulling base APK: com.example.app/base.apk\nBase APK pulled successfully: com.example.app/base.apk\nPulling split APK: com.example.app/split_config.arm64_v8a.apk\nSplit APK pulled successfully: com.example.app/split_config.arm64_v8a.apk\nPulling split APK: com.example.app/split_config.xxhdpi.apk\nSplit APK pulled successfully: com.example.app/split_config.xxhdpi.apk\n```\n\n- If you'd like to specify a custom output folder, simply use the -o/--output option:\n\n```\n% python apkpuller.py -p com.example.app -o out_dir\nPulling base APK: out_dir/base.apk\nBase APK pulled successfully: out_dir/base.apk\nPulling split APK: out_dir/split_config.arm64_v8a.apk\nSplit APK pulled successfully: out_dir/split_config.arm64_v8a.apk\nPulling split APK: out_dir/split_config.xxhdpi.apk\nSplit APK pulled successfully: out_dir/split_config.xxhdpi.apk\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faancw%2Fapkpuller","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faancw%2Fapkpuller","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faancw%2Fapkpuller/lists"}