{"id":18678002,"url":"https://github.com/pdsouza/android-generate-vendor","last_synced_at":"2025-07-04T17:10:45.817Z","repository":{"id":46218437,"uuid":"81619005","full_name":"pdsouza/android-generate-vendor","owner":"pdsouza","description":"Scripts to extract device vendor files and generate AOSP makefiles.","archived":false,"fork":false,"pushed_at":"2021-07-18T11:36:41.000Z","size":2022,"stargazers_count":28,"open_issues_count":1,"forks_count":10,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-12T02:39:19.496Z","etag":null,"topics":["android","aosp","hammerhead"],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pdsouza.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}},"created_at":"2017-02-11T00:26:01.000Z","updated_at":"2025-03-16T14:34:58.000Z","dependencies_parsed_at":"2022-09-11T07:00:51.387Z","dependency_job_id":null,"html_url":"https://github.com/pdsouza/android-generate-vendor","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/pdsouza/android-generate-vendor","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pdsouza%2Fandroid-generate-vendor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pdsouza%2Fandroid-generate-vendor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pdsouza%2Fandroid-generate-vendor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pdsouza%2Fandroid-generate-vendor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pdsouza","download_url":"https://codeload.github.com/pdsouza/android-generate-vendor/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pdsouza%2Fandroid-generate-vendor/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263585897,"owners_count":23484488,"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","aosp","hammerhead"],"created_at":"2024-11-07T09:35:42.949Z","updated_at":"2025-07-04T17:10:45.800Z","avatar_url":"https://github.com/pdsouza.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# android-generate-vendor\n\nScripts to extract vendor files from a factory image and generate vendor\nmakefiles for AOSP.\n\n## Why?\n\nBuilding custom Android ROMs for a device is harder than it appears. Although Android\nis open-source under the Android Open Source Project (AOSP), devices ship dozens of\nclosed-source binaries (\"blobs\") that are needed to fully enable all device hardware.\nObtaining these blobs can be...painful.\n\nEven with friendly devices like the Nexus line that distribute these binaries, there\nare cases of missing blobs, requiring ROM builders to manually extract these from factory\nimages. The Nexus 5 (hammerhead), for example, is missing at least two APKs and three shared\nlibraries in the distributed vendor binaries.\n\nThese scripts aim to make the process of extracting vendor files and including them in AOSP\nbuilds simple and scalable.\n\n## Caveats\n\nRight now, we only handle devices that ship all blobs in `/system`. Devices that\nuse a separate vendor partition are unsupported right now; please see the excellent\n[android-prepare-vendor](https://github.com/anestisb/android-prepare-vendor) to deal\nwith vendor partitions for the latest Nexus devices.\n\n## Supported Devices\n\n* [Nexus 5 (hammerhead)](lge/hammerhead/proprietary-blobs.txt)\n* [Nexus 7 2013 Wi-Fi (flo)](asus/flo/proprietary-blobs.txt)\n\n## Dependencies\n\n* [android-simg2img](https://github.com/anestisb/android-simg2img)\n* [smali](https://github.com/JesusFreke/smali)\n\nThese are included under [deps](deps) for your convenience.\n\n## Examples\n\nGenerating a vendor tree for hammerhead build M4B30Z:\n\n```\n$ ./generate-vendor.sh -d hammerhead -i hammerhead-m4b30z-factory-625c027b.zip\nI: setting up output dir './vendor/lge/hammerhead'...\nI: preparing factory image...\nW:   requesting sudo for loop mount...\nI: generating vendor makefiles...\nI: extracting vendor files from image...\nI:   de-optimizing system/app/qcrilmsgtunnel/qcrilmsgtunnel.apk...\nI:   de-optimizing system/app/shutdownlistener/shutdownlistener.apk...\nI:   de-optimizing system/app/TimeService/TimeService.apk...\nI:   de-optimizing system/framework/qcrilhook.jar...\nI: calculating checksums...\nI: all tasks completed successfully\nI: cleaning up...\n```\n\n...you will end up with a clean vendor tree for your device:\n\n```\n$ tree -L 2 vendor/lge/hammerhead\nvendor/lge/hammerhead\n|-- Android.mk\n|-- device-partial.mk\n|-- device-vendor.mk\n|-- sha1sums.txt\n`-- system\n    |-- app\n    |-- bin\n    |-- etc\n    |-- framework\n    |-- lib\n    `-- vendor\n\n7 directories, 4 files\n```\n\nJust copy the vendor directory to your AOSP workspace and you're good to go!\n\n## License\n\n[Apache 2.0](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpdsouza%2Fandroid-generate-vendor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpdsouza%2Fandroid-generate-vendor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpdsouza%2Fandroid-generate-vendor/lists"}