{"id":13429350,"url":"https://github.com/google/android-classyshark","last_synced_at":"2025-09-27T07:30:59.042Z","repository":{"id":37677909,"uuid":"44109745","full_name":"google/android-classyshark","owner":"google","description":"Android and Java bytecode viewer","archived":true,"fork":false,"pushed_at":"2023-05-19T10:01:03.000Z","size":24865,"stargazers_count":7588,"open_issues_count":41,"forks_count":870,"subscribers_count":317,"default_branch":"master","last_synced_at":"2025-09-26T05:39:26.445Z","etag":null,"topics":["analysis","android","apk","apk-parser","classyshark","dex","jar","java","kotlin","multidex"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/google.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2015-10-12T13:40:48.000Z","updated_at":"2025-09-19T03:15:15.000Z","dependencies_parsed_at":"2022-07-12T16:42:58.025Z","dependency_job_id":"c0dd5e71-f64e-4607-958e-e28dc81eb97b","html_url":"https://github.com/google/android-classyshark","commit_stats":null,"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"purl":"pkg:github/google/android-classyshark","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fandroid-classyshark","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fandroid-classyshark/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fandroid-classyshark/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fandroid-classyshark/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/google","download_url":"https://codeload.github.com/google/android-classyshark/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fandroid-classyshark/sbom","scorecard":{"id":436351,"data":{"date":"2025-08-11","repo":{"name":"github.com/google/android-classyshark","commit":"78ddba71b0d869cc6283f8cdbb2061b6e57a3781"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.8,"checks":[{"name":"Maintained","score":0,"reason":"project is archived","details":["Warn: Repository is archived."],"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Code-Review","score":3,"reason":"Found 8/21 approved changesets -- score normalized to 3","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.txt:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE.txt:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact 8.2 not signed: https://api.github.com/repos/google/android-classyshark/releases/12091894","Warn: release artifact 8.1 not signed: https://api.github.com/repos/google/android-classyshark/releases/8161990","Warn: release artifact 8.0 not signed: https://api.github.com/repos/google/android-classyshark/releases/6107982","Warn: release artifact 7.2 not signed: https://api.github.com/repos/google/android-classyshark/releases/4718973","Warn: release artifact 7.1 not signed: https://api.github.com/repos/google/android-classyshark/releases/4558291","Warn: release artifact 8.2 does not have provenance: https://api.github.com/repos/google/android-classyshark/releases/12091894","Warn: release artifact 8.1 does not have provenance: https://api.github.com/repos/google/android-classyshark/releases/8161990","Warn: release artifact 8.0 does not have provenance: https://api.github.com/repos/google/android-classyshark/releases/6107982","Warn: release artifact 7.2 does not have provenance: https://api.github.com/repos/google/android-classyshark/releases/4718973","Warn: release artifact 7.1 does not have provenance: https://api.github.com/repos/google/android-classyshark/releases/4558291"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: github.com/google/.github/SECURITY.md:1","Info: Found linked content: github.com/google/.github/SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: github.com/google/.github/SECURITY.md:1","Info: Found text in security policy: github.com/google/.github/SECURITY.md:1"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 18 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-19T04:46:09.243Z","repository_id":37677909,"created_at":"2025-08-19T04:46:09.243Z","updated_at":"2025-08-19T04:46:09.243Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":277194437,"owners_count":25777110,"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","status":"online","status_checked_at":"2025-09-27T02:00:08.978Z","response_time":73,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["analysis","android","apk","apk-parser","classyshark","dex","jar","java","kotlin","multidex"],"created_at":"2024-07-31T02:00:35.658Z","updated_at":"2025-09-27T07:30:58.998Z","avatar_url":"https://github.com/google.png","language":"Java","readme":"# ClassyShark\n\n### Introduction\n\n![alt text](https://github.com/borisf/classyshark-user-guide/blob/master/images/5%20ClassesDexData.png)\n\nClassyShark is a standalone binary inspection tool for Android developers. It can reliably browse any Android executable and show important info such as class interfaces and members, dex counts and dependencies. ClassyShark supports multiple formats including libraries (.dex, .aar, .so), executables (.apk, .jar, .class) and all Android binary XMLs: AndroidManifest, resources, layouts etc.\n\n### Useful links\n* [User guide](https://github.com/borisf/classyshark-user-guide)\n* [Command-line reference](https://github.com/google/android-classyshark/blob/master/CommandLine.pdf)\n* Gradle [sample](https://github.com/google/android-classyshark/tree/master/Samples/SampleGradle)\n* [Vision and Strategy](https://docs.google.com/document/d/1sK_WNzHn_6Q1V_dohxrtk1tlsPXsi9cEVnIuYuVig0M/edit?usp=sharing)\n\n### Download\nTo run, grab the [latest JAR](https://github.com/google/android-classyshark/releases)\nand run `java -jar ClassyShark.jar`.\n\n### Export data in text format\n* [Exporter](https://medium.com/@BorisFarber/exporting-data-from-classyshark-e3cf3fe3fab8#.deec4nyjq)\n* API finder :construction: work in progress\n\n### Develop\n1. Clone the repo\n2. Open in your favorite IDE/editor\n3. Build options:\n     * IntelliJ - builds automatically when exporting the project \n     * [Gradle script](https://github.com/google/android-classyshark/blob/master/ClassySharkWS/build.gradle)\n     * [RetroBuild](https://github.com/borisf/RetroBuild)\n\n### Arch Linux\n\nIf you're running Arch Linux you can install the latest [prebuilt jar from the AUR](https://aur.archlinux.org/packages/classyshark/).\n\n### Dependencies\n* [dexlib2](https://github.com/JesusFreke/smali/tree/master/dexlib2) by jesusfreke\n* [guava](https://github.com/google/guava) by Google\n* [ASM](http://asm.ow2.org/) by OW2\n* [ASMDEX](http://asm.ow2.org/asmdex-index.html) by OW2\n* [java-binutils](https://github.com/jawi/java-binutils) by jawi\n* [BCEL](https://commons.apache.org/proper/commons-bcel) by Apache\n\n### Support\nIf you've found an error, please file an issue:\n\nhttps://github.com/google/android-classyshark/issues\n\nPatches are encouraged, and may be submitted by forking this project and\nsubmitting a pull request through GitHub.\n\nLicense\n=======\n\n    Copyright 2020 Google, Inc.\n\n    Licensed under the Apache License, Version 2.0 (the \"License\");\n    you may not use this file except in compliance with the License.\n    You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n    Unless required by applicable law or agreed to in writing, software\n    distributed under the License is distributed on an \"AS IS\" BASIS,\n    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n    See the License for the specific language governing permissions and\n    limitations under the License.\n\n\n\n","funding_links":[],"categories":["Tools","Android Security","Java","Java (504)","\u003ca id=\"2110ded2aa5637fa933cc674bc33bf21\"\u003e\u003c/a\u003e工具","开发环境/工具"],"sub_categories":["Static Analysis Tools","\u003ca id=\"63fd2c592145914e99f837cecdc5a67c\"\u003e\u003c/a\u003e新添加的1","Postfix code completion"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgoogle%2Fandroid-classyshark","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgoogle%2Fandroid-classyshark","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgoogle%2Fandroid-classyshark/lists"}