{"id":17881323,"url":"https://github.com/col-e/binary-resources","last_synced_at":"2025-03-22T10:32:17.648Z","repository":{"id":190883219,"uuid":"683527653","full_name":"Col-E/binary-resources","owner":"Col-E","description":"Fork of Android's base tools project with some assorted fixes for obfuscated inputs","archived":false,"fork":false,"pushed_at":"2023-09-02T09:18:00.000Z","size":2584,"stargazers_count":8,"open_issues_count":3,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2023-09-03T09:57:41.873Z","etag":null,"topics":["android","android-resources","reverse-engineering"],"latest_commit_sha":null,"homepage":"https://android.googlesource.com/platform/tools/base/+/refs/heads/mirror-goog-studio-main/apkparser/binary-resources/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Col-E.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-08-26T21:21:00.000Z","updated_at":"2023-09-02T16:18:32.000Z","dependencies_parsed_at":"2023-08-26T22:21:26.981Z","dependency_job_id":"c9895459-bc14-4cbc-925f-b1930762937d","html_url":"https://github.com/Col-E/binary-resources","commit_stats":null,"previous_names":["col-e/binary-resources"],"tags_count":6,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Col-E%2Fbinary-resources","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Col-E%2Fbinary-resources/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Col-E%2Fbinary-resources/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Col-E%2Fbinary-resources/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Col-E","download_url":"https://codeload.github.com/Col-E/binary-resources/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":221826626,"owners_count":16887199,"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":["android","android-resources","reverse-engineering"],"created_at":"2024-10-28T12:36:35.910Z","updated_at":"2024-10-28T12:36:36.477Z","avatar_url":"https://github.com/Col-E.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Binary Resources [![badge](https://jitpack.io/v/Col-E/binary-resources.svg)](https://jitpack.io/#Col-E/binary-resources/)\n\nA fork of the upstream [binary-resources](https://android.googlesource.com/platform/tools/base/+/refs/heads/mirror-goog-studio-main/apkparser/binary-resources/) tool project.\n\n## What's changed?\n\n- No longer requires/depends-on the Android SDK artifacts\n- Helper utilities for printing binary XML\n- Obfuscation resilience, handling inputs that would otherwise crash the base project, but are valid at install-time\n\n## Usage as a library\n\nHere's a code sample of taking the `byte[]` of an `AndroidManifest.xml` and transforming it into a formatted `String`.\n```java\n// Create resource providers, which translate resource id values/keys into strings used in XML decoding\n//  - Implementing this interface is your responsibility. \n//  - While this is a bit of work, it allows you to update what values are provided even if this project never updates.\n//  - An example implementation is provided in this projects test module.\nAndroidResourceProvider androidResources = ...\nAndroidResourceProvider appResources = ...\n\n// Create the binary resource (AndroidManifest.xml) reader and pass it to the XML decoder, \n//  yielding a decoded string representation of the file contents.\nBinaryResourceFile binaryResource = new BinaryResourceFile(binaryXmlBytes);\nString decoded = XmlDecoder.decode(binaryResource, androidResources, appResources);\n```\nThe example implementation of `AndroidResourceProvider` can be found here:\n - [`AndroidResourceProviderImpl.java`](src/test/java/software/coley/androidres/AndroidResourceProviderImpl.java)\n - The data it pulls from can be found in [`src/test/resources/android`](src/test/resources/android)\n\nYou can use the project as a maven artifact via [JitPack](https://jitpack.io/#Col-E/binary-resources/)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcol-e%2Fbinary-resources","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcol-e%2Fbinary-resources","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcol-e%2Fbinary-resources/lists"}