{"id":13908520,"url":"https://github.com/ubports/ubports-installer","last_synced_at":"2026-01-16T22:17:10.993Z","repository":{"id":37602262,"uuid":"81379180","full_name":"ubports/ubports-installer","owner":"ubports","description":"A simple tool to install Ubuntu Touch on UBports devices","archived":false,"fork":false,"pushed_at":"2025-10-06T18:02:21.000Z","size":15118,"stargazers_count":613,"open_issues_count":1860,"forks_count":130,"subscribers_count":33,"default_branch":"master","last_synced_at":"2025-10-09T21:15:50.470Z","etag":null,"topics":["desktop-tool","electron","nodejs"],"latest_commit_sha":null,"homepage":"https://github.com/ubports/ubports-installer/releases","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ubports.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":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2017-02-08T21:44:35.000Z","updated_at":"2025-10-08T10:47:45.000Z","dependencies_parsed_at":"2024-03-11T15:44:51.747Z","dependency_job_id":"1e3bba71-a7e0-45ec-a2f0-24a50cbdb99f","html_url":"https://github.com/ubports/ubports-installer","commit_stats":null,"previous_names":[],"tags_count":89,"template":false,"template_full_name":null,"purl":"pkg:github/ubports/ubports-installer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ubports%2Fubports-installer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ubports%2Fubports-installer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ubports%2Fubports-installer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ubports%2Fubports-installer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ubports","download_url":"https://codeload.github.com/ubports/ubports-installer/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ubports%2Fubports-installer/sbom","scorecard":{"id":906484,"data":{"date":"2025-08-11","repo":{"name":"github.com/ubports/ubports-installer","commit":"ba7939fe06cc99804af6466f3840bf4d776d5290"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":6,"checks":[{"name":"Maintained","score":10,"reason":"30 commit(s) and 2 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":10,"reason":"all changesets reviewed","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":"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":"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":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","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":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Warn: no topLevel permission defined: .github/workflows/codeql-analysis.yml:1","Info: no jobLevel write permissions found"],"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":"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":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"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":"Pinned-Dependencies","score":4,"reason":"dependency not pinned by hash detected -- score normalized to 4","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:93: update your workflow using https://app.stepsecurity.io/secureworkflow/ubports/ubports-installer/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:95: update your workflow using https://app.stepsecurity.io/secureworkflow/ubports/ubports-installer/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:100: update your workflow using https://app.stepsecurity.io/secureworkflow/ubports/ubports-installer/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:128: update your workflow using https://app.stepsecurity.io/secureworkflow/ubports/ubports-installer/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:138: update your workflow using https://app.stepsecurity.io/secureworkflow/ubports/ubports-installer/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/ubports/ubports-installer/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/ubports/ubports-installer/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:25: update your workflow using https://app.stepsecurity.io/secureworkflow/ubports/ubports-installer/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:54: update your workflow using https://app.stepsecurity.io/secureworkflow/ubports/ubports-installer/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/ubports/ubports-installer/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:61: update your workflow using https://app.stepsecurity.io/secureworkflow/ubports/ubports-installer/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:79: update your workflow using https://app.stepsecurity.io/secureworkflow/ubports/ubports-installer/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql-analysis.yml:38: update your workflow using https://app.stepsecurity.io/secureworkflow/ubports/ubports-installer/codeql-analysis.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql-analysis.yml:42: update your workflow using https://app.stepsecurity.io/secureworkflow/ubports/ubports-installer/codeql-analysis.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql-analysis.yml:53: update your workflow using https://app.stepsecurity.io/secureworkflow/ubports/ubports-installer/codeql-analysis.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql-analysis.yml:67: update your workflow using https://app.stepsecurity.io/secureworkflow/ubports/ubports-installer/codeql-analysis.yml/master?enable=pin","Info:   0 out of  15 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned","Info:   3 out of   3 npmCommand dependencies pinned"],"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":"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":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: GNU General Public License v3.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"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":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact 0.11.2 not signed: https://api.github.com/repos/ubports/ubports-installer/releases/229101876","Warn: release artifact 0.11.1 not signed: https://api.github.com/repos/ubports/ubports-installer/releases/227452274","Warn: release artifact 0.11.0 not signed: https://api.github.com/repos/ubports/ubports-installer/releases/224456601","Warn: release artifact 0.10.0 not signed: https://api.github.com/repos/ubports/ubports-installer/releases/100715023","Warn: release artifact 0.9.10 not signed: https://api.github.com/repos/ubports/ubports-installer/releases/97159793","Warn: release artifact 0.11.2 does not have provenance: https://api.github.com/repos/ubports/ubports-installer/releases/229101876","Warn: release artifact 0.11.1 does not have provenance: https://api.github.com/repos/ubports/ubports-installer/releases/227452274","Warn: release artifact 0.11.0 does not have provenance: https://api.github.com/repos/ubports/ubports-installer/releases/224456601","Warn: release artifact 0.10.0 does not have provenance: https://api.github.com/repos/ubports/ubports-installer/releases/100715023","Warn: release artifact 0.9.10 does not have provenance: https://api.github.com/repos/ubports/ubports-installer/releases/97159793"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"SAST","score":10,"reason":"SAST tool is run on all commits","details":["Info: SAST configuration detected: CodeQL","Info: all commits (30) 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"}},{"name":"Vulnerabilities","score":8,"reason":"2 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-fjxv-7rqg-78g4","Warn: Project is vulnerable to: GHSA-52f5-9888-hmc6"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-24T17:33:05.002Z","repository_id":37602262,"created_at":"2025-08-24T17:33:05.002Z","updated_at":"2025-08-24T17:33:05.002Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28485111,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T11:59:17.896Z","status":"ssl_error","status_checked_at":"2026-01-16T11:55:55.838Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["desktop-tool","electron","nodejs"],"created_at":"2024-08-06T23:02:47.461Z","updated_at":"2026-01-16T22:17:10.957Z","avatar_url":"https://github.com/ubports.png","language":"JavaScript","funding_links":[],"categories":["HarmonyOS"],"sub_categories":["Windows Manager"],"readme":"![Continuous Integration](https://github.com/ubports/ubports-installer/workflows/Continuous%20Integration/badge.svg) [![snap](https://snapcraft.io//ubports-installer/badge.svg)](https://snapcraft.io/ubports-installer) [![codecov](https://codecov.io/gh/ubports/ubports-installer/branch/master/graph/badge.svg?token=cEneFUUbgt)](https://codecov.io/gh/ubports/ubports-installer/)\n\n# UBports Installer\n\nFear not! Installing [UBports](https://ubports.com) [Ubuntu Touch](https://ubuntu-touch.io) on your [device](https://devices.ubuntu-touch.io) is easy! Just download the UBports Installer package for your operating system and sit back and relax while your computer does all the rest. Installing third-party operating systems has never been so easy!\n\n|                                                                                   ![linux logo](https://i.ibb.co/CPq1pL9/linux.png) \u0026nbsp; Linux                                                                                   | ![mac logo](https://i.ibb.co/Qn2NXq9/apple.png) \u0026nbsp; macOS | ![windowslogo](https://i.ibb.co/RNk81kH/windows10.png) \u0026nbsp; Windows |\n| :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------: | :-------------------------------------------------------------------: |\n| [snap](https://snapcraft.io/ubports-installer) \u003cbr\u003e `snap install ubports-installer` \u003cbr\u003e [AppImage](https://devices.ubuntu-touch.io/installer?package=appimage) \u003cbr\u003e [deb](https://devices.ubuntu-touch.io/installer?package=deb) | [dmg](https://devices.ubuntu-touch.io/installer?package=dmg) |     [exe](https://devices.ubuntu-touch.io/installer?package=exe)      |\n\n## Troubleshooting\n\nTroubleshooting information can be found [in the docs](https://docs.ubports.com/en/latest/userguide/install.html). If you need help, you can join UBports' support channels on [telegram](https://t.me/WelcomePlus) or [matrix](https://matrix.to/#/!KwdniMNeTmClpgHkND:matrix.org?via=matrix.org\u0026via=ubports.chat\u0026via=disroot.org) or ask a question [in the forum](https://forums.ubports.com/) or on [askubuntu](https://askubuntu.com). If you believe that the UBports Installer is not working correctly, you can also [file a new issue](https://github.com/ubports/ubports-installer/issues/new) to help us solve the problem. Use the _Report a bug_ button directly in the installer to generate a template for a bugreport with all the important metadata automatically filled out.\n\n## Config files\n\nBy default, the Installer will always use the latest version of the [installation configuration files](https://github.com/ubports/installer-configs) available. Should you want to specify a custom config file, you can do that by starting the Installer with the `-f ./path/to/config.yml` argument. This can be used to test changes to the configuration or even to add new devices to the installer. The [structure of the config files is specified here](https://github.com/ubports/installer-configs#readme).\n\n## Logs\n\nIf the installer runs into an error, it will usually present you with the option to create a bug report. It is always a good idea to make use of that feature, because that way the developers will almost always have all the information they need to help you. If you still have to look at the log file for some reason, you can find it in `~/.cache/ubports/ubports-installer.log` on linux (or `~/snap/ubports-installer/current/.cache/ubports/ubports-installer.log` if you're using the snap package). On Windows, it will be located at `%APPDATA%\\ubports\\ubports-installer.log` and on macOS you can find it under `$HOME/Library/Caches/ubports/ubports-installer.log`.\n\n## Set up for development\n\nEnsure you have properly installed [`nodejs` and `npm`](https://nodejs.org/en/download/package-manager/).\n\n```\ngit clone https://github.com/ubports/ubports-installer.git\ncd ubports-installer\n\nnpm install\n```\n\n### Run with npm\n\n```\n$ npm start -- -h\nUsage: npm start -- [-f \u003cfile\u003e] [-v[v] [-d]\n\nUBports Installer (0.7.2-beta) source for linux\nGPL-3.0 UBports Foundation \u003cinfo@ubports.com\u003e\nThe easy way to install Ubuntu Touch on UBports devices. A friendly cross-platform Installer for Ubuntu Touch. Just connect a supported device to your PC, follow the on-screen instructions and watch this awesome tool do all the rest.\nhttps://devices.ubuntu-touch.io\n\nOptions:\n  -V, --version        output the version number\n  -f, --file \u003cfile\u003e    Override the official config by loading a YAML local file\n  -v, --verbose        Print debugging information. Multiple -v options increase the verbosity\n  -d, --debug          Enable electron's web debugger to inspect the frontend (default: false)\n  --systemimage \u003curl\u003e  Set a custom systemimage server url (default:\n                       \"https://system-image.ubports.com/\")\n  -h, --help           display help for command\n```\n\n### Lint\n\nBefore filing a PR, please make sure you follow our coding style by running `npm run lint`.\n\n### Build packages\n\n```\n$ ./build.js --help\nUsage: ./build.js -o \u003cos\u003e -p \u003cpackage\u003e -a \u003carch\u003e [options]\n\nOptions:\n  -V, --version                output the version number\n  -o, --os \u003cos\u003e                Target operating system (darwin, win32, linux) (default: \"linux\")\n  -p, --package \u003cpackage\u003e      Target package (deb, snap, AppImage, dmg, portable, dir) (default: \"dir\")\n  -a, --arch \u003carchitecture\u003e    Target architecture (armv7l, x64, ia32, arm64) (default: \"x64\")\n  -e, --extra-metadata [JSON]  extra data for package.json (default: \"{}\")\n  -h, --help                   output usage information\n```\n\n## Libraries\n\nThe UBports Foundation maintains a various free- and open-source NPM libraries for the UBports Installer.\n\n| Package                  | Version                                                                                                             | Description                                                |\n| ------------------------ | ------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------- |\n| `progressive-downloader` | [![version](https://shields.io/npm/v/progressive-downloader)](https://www.npmjs.com/package/progressive-downloader) | Parallel downloads and opportunistic checksum verification |\n| `promise-android-tools`  | [![version](https://shields.io/npm/v/promise-android-tools)](https://www.npmjs.com/package/promise-android-tools)   | Extensive wrapper for ADB, Fastboot, Heimdall              |\n| `android-tools-bin`      | [![version](https://shields.io/npm/v/android-tools-bin)](https://www.npmjs.com/package/android-tools-bin)           | Cross-platform binaries for ADB, Fastboot, Heimdall        |\n\n## License\n\nOriginal development by [Marius Gripsgård](http://mariogrip.com/) and [Johannah Sprinz](https://spri.nz). Copyright (C) 2017-2025 [UBports Foundation](https://ubports.com).\n\nThis program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.\n\nThis program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License along with this program. If not, see \u003chttp://www.gnu.org/licenses/\u003e.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fubports%2Fubports-installer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fubports%2Fubports-installer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fubports%2Fubports-installer/lists"}