{"id":15486567,"url":"https://github.com/stefanbossbaly/copperheados-docker","last_synced_at":"2025-04-22T17:28:15.062Z","repository":{"id":143163216,"uuid":"130154331","full_name":"StefanBossbaly/CopperheadOS-Docker","owner":"StefanBossbaly","description":"Docker container for building various configurations of CopperheadOS.","archived":false,"fork":false,"pushed_at":"2018-05-28T14:17:38.000Z","size":93,"stargazers_count":13,"open_issues_count":1,"forks_count":2,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-10-19T07:15:45.293Z","etag":null,"topics":["chromium","copperheados","docker","docker-container"],"latest_commit_sha":null,"homepage":"","language":"Shell","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/StefanBossbaly.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,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-04-19T03:30:51.000Z","updated_at":"2019-11-10T02:38:25.000Z","dependencies_parsed_at":null,"dependency_job_id":"fad24e80-a580-4be6-9963-6e2b0bdf7c31","html_url":"https://github.com/StefanBossbaly/CopperheadOS-Docker","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StefanBossbaly%2FCopperheadOS-Docker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StefanBossbaly%2FCopperheadOS-Docker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StefanBossbaly%2FCopperheadOS-Docker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StefanBossbaly%2FCopperheadOS-Docker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/StefanBossbaly","download_url":"https://codeload.github.com/StefanBossbaly/CopperheadOS-Docker/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250286726,"owners_count":21405491,"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":["chromium","copperheados","docker","docker-container"],"created_at":"2024-10-02T06:09:02.894Z","updated_at":"2025-04-22T17:28:15.055Z","avatar_url":"https://github.com/StefanBossbaly.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CopperheadOS-Docker\nDocker container for building CopperheadOS. Still very much a work in progress\n\n## Enviroment Variables\n\n### `USE_CCACHE`\nEnable or disable using `ccache`. Can significantly speed up later builds for both\nthe CopperheadOS and chromium build processes. All cache files are saved to `CCACHE_DIR`.\nDefaults to the value of 1.\n\n### `CCACHE_SIZE`\nIf `USE_CCACHE` is true this variable determines the size of the ccache.\nThis value should be a number followed by an optional suffix: \"k\", \"M\", \"G\", \"T\".\nThe default suffix is G. Use 0 for no limit. Defaults to the value of \"50G\".\n\n### `SIGNATURE_SPOOFING`\nIf set, privileged apps will be allowed to spoof their signature. This is needed\nfor packages like Microg or FakeStore to spoof being Google Play Services or the\nGoogle Play Store. Please note that there is a security risk to setting this to\n\"yes\". Defaults to \"no\".\n\n### `OPEN_GAPPS`\nIf set, the `PICO` [package](https://github.com/opengapps/opengapps/wiki/Package-Comparison) will be included in the system image.\nDefaults to \"no\".\n\n### `DEVICE`\nThe codename of the device the build will be for. Currently supported is all the\nGoogle Pixel devices (sailfish, marlin, walleye, taimen). Defaults to \"walleye\".\n\n### `BUILD_TAG`\nThe release version of [CopperheadOS](https://github.com/CopperheadOS/android-prepare-vendor/releases).\nDefaults to \"OPM2.171019.029.B1.2018.05.15.17\".\n\n### `BUILD_ID`\nThe Build ID of the build. Defaults to \"OPM2.171019.029.B1\".\n\n### `CHROMIUM_RELEASE_NAME`\nThe Chromium release name that is going to be built and included in the CopperheadOS\nbuild. Defaults to \"66.0.3359.158\".\n\n### `CHROMIUM_RELEASE_CODE`\nThe Chromium release code that is going to be built and included in the CopperheadOS\nbuild. Defaults to \"335915852\".\n\n### `NUM_OF_THREADS`\nThe number of threads/processes that will be used during the various stages of\nthe build. Defaults to 8.\n\n## Volumes\n\n### `/srv/src`\nLocation of where all the repositories will be downloaded and built.\n\n### `/srv/chromium`\nLocation of where the chromium repositories will be downloaded and built.\nThe chromium prebuilt package is no longer provided and we will now have\nto build it from source.\n\n### `/srv/ccache`\nLocation of where the ccache files are saved for both the CopperheadOS build\nand the chromium build.\n\n### `/srv/keys`\nLocation of where the release keys are located. If the directory is empty the\nscript will generate keys for you based on the `DEVICE` provided to the container.\n\n### `/srv/tmp`\nLocation of the temporary directory.\n\n### `/srv/local_manifests`\nLocation of any custom manifests that will be included when syncing repos.\n\n### `/srv/logs`\nLocation of where the stdout and stderr logs will be saved to.\n\n### `/srv/zips`\nLocation of where the output `*.zips` and `*.xz` files will be copied to after the\nbuild process is complete. Will include the target files and packages derived from\nthe target files (OTA, Flash Archive).\n\n## Example Commands\n\n### Basic CopperheadOS\nIf you want just plain CoppperheadOS just provide the enviroment variables.\n\n```\n$ sudo docker run \\\n    -v /media/hdd/copperheados/src:/srv/src \\\n    -v /media/hdd/copperheados/chromium:/srv/chromium \\\n    -v /media/hdd/copperheados/ccache:/srv/ccache \\\n    -v /media/hdd/copperheados/keys:/srv/keys \\\n    -v /media/hdd/copperheados/tmp:/srv/tmp \\\n    -v /media/hdd/copperheados/logs:/srv/logs \\\n    -v /media/hdd/copperheados/zips:/srv/zips \\\n    -e USE_CCACHE=1 \\\n    -e CCACHE_SIZE=\"70G\" \\\n    -e SIGNATURE_SPOOFING=\"no\" \\\n    -e DEVICE=\"walleye\" \\\n    -e BUILD_TAG=\"OPM2.171019.029.B1.2018.05.15.17\" \\\n    -e BUILD_ID=\"OPM2.171019.029.B1\" \\\n    -e NUM_OF_THREADS=8 \\\n    bflux/copperheados-docker\n```\n\n### CopperheadOS with Microg\n[Microg](https://microg.org/) is a FOSS implementation of most of the Google\nPlay Services Libraries. Most importantly it supports GCM and Account\nAuthentication. Inorder to support microg `SIGNATURE_SPOOFING` patch must be\napplied. In addation `CUSTOM_PACKAGES` should include `GmsCore`, `GsfProxy` and\n`FakeStore`. `FakeStore` is needed since most apps that rely on Google Play\nServices will get upset if they don't see an app with the `com.android.vending`\npackage id installed on the system.\n\n```\n$ sudo docker run \\\n    -v /media/hdd/copperheados/src:/srv/src \\\n    -v /media/hdd/copperheados/chromium:/srv/chromium \\\n    -v /media/hdd/copperheados/ccache:/srv/ccache \\\n    -v /media/hdd/copperheados/keys:/srv/keys \\\n    -v /media/hdd/copperheados/tmp:/srv/tmp \\\n    -v /media/hdd/CopperheadOS-Docker/local_manifest/prebuilt:/srv/local_manifests \\\n    -v /media/hdd/copperheados/logs:/srv/logs \\\n    -v /media/hdd/copperheados/zips:/srv/zips \\\n    -e USE_CCACHE=1 \\\n    -e CCACHE_SIZE=\"70G\" \\\n    -e SIGNATURE_SPOOFING=\"yes\" \\\n    -e DEVICE=\"walleye\" \\\n    -e BUILD_TAG=\"OPM2.171019.029.B1.2018.05.15.17\" \\\n    -e BUILD_ID=\"OPM2.171019.029.B1\" \\\n    -e NUM_OF_THREADS=8 \\\n    -e CUSTOM_PACKAGES=\"GmsCore GsfProxy MozillaNlpBackend NominatimNlpBackend com.google.android.maps FakeStore\" \\\n    bflux/copperheados-docker\n```\n\n### CopperheadOS with Google Play Services\nIf you are a complete newb like I am and aren't ready to give up the Google Play\nStore and Google Play Services, then simply mount the `local_manifest/opengapps` folder\nas the `/srv/local_manifests` volume and set the `OPEN_GAPPS` variable to `yes`.\n\n```\n$ sudo docker run \\\n    -v /media/hdd/copperheados/src:/srv/src \\\n    -v /media/hdd/copperheados/chromium:/srv/chromium \\\n    -v /media/hdd/copperheados/ccache:/srv/ccache \\\n    -v /media/hdd/copperheados/keys:/srv/keys \\\n    -v /media/hdd/copperheados/tmp:/srv/tmp \\\n    -v /media/hdd/CopperheadOS-Docker/local_manifest/opengapps:/srv/local_manifests \\\n    -v /media/hdd/copperheados/logs:/srv/logs \\\n    -v /media/hdd/copperheados/zips:/srv/zips \\\n    -e USE_CCACHE=1 \\\n    -e CCACHE_SIZE=\"70G\" \\\n    -e SIGNATURE_SPOOFING=\"no\" \\\n    -e OPEN_GAPPS=\"yes\" \\\n    -e DEVICE=\"walleye\" \\\n    -e BUILD_TAG=\"OPM2.171019.029.B1.2018.05.15.17\" \\\n    -e BUILD_ID=\"OPM2.171019.029.B1\" \\\n    -e NUM_OF_THREADS=8 \\\n    bflux/copperheados-docker\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstefanbossbaly%2Fcopperheados-docker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstefanbossbaly%2Fcopperheados-docker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstefanbossbaly%2Fcopperheados-docker/lists"}