{"id":16576411,"url":"https://github.com/wcampbell0x2a/income","last_synced_at":"2025-10-29T04:32:00.572Z","repository":{"id":65232760,"uuid":"588806604","full_name":"wcampbell0x2a/income","owner":"wcampbell0x2a","description":"Library and binaries for the reading of UBI images","archived":false,"fork":false,"pushed_at":"2025-01-20T02:08:07.000Z","size":30,"stargazers_count":2,"open_issues_count":4,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-01T22:12:40.772Z","etag":null,"topics":["extraction","firmware","rust","ubi","volumes"],"latest_commit_sha":null,"homepage":"","language":"Rust","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/wcampbell0x2a.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"github":["wcampbell0x2a"]}},"created_at":"2023-01-14T04:13:23.000Z","updated_at":"2025-01-02T08:08:29.000Z","dependencies_parsed_at":"2024-10-22T09:33:54.018Z","dependency_job_id":null,"html_url":"https://github.com/wcampbell0x2a/income","commit_stats":{"total_commits":17,"total_committers":1,"mean_commits":17.0,"dds":0.0,"last_synced_commit":"df879cf7dbb9e540213831a2f95e61c3548eab7a"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wcampbell0x2a%2Fincome","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wcampbell0x2a%2Fincome/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wcampbell0x2a%2Fincome/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wcampbell0x2a%2Fincome/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wcampbell0x2a","download_url":"https://codeload.github.com/wcampbell0x2a/income/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238768422,"owners_count":19527197,"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":["extraction","firmware","rust","ubi","volumes"],"created_at":"2024-10-11T22:08:08.784Z","updated_at":"2025-10-29T04:32:00.567Z","avatar_url":"https://github.com/wcampbell0x2a.png","language":"Rust","funding_links":["https://github.com/sponsors/wcampbell0x2a"],"categories":[],"sub_categories":[],"readme":"income\n===========================\n\n[\u003cimg alt=\"github\" src=\"https://img.shields.io/badge/github-wcampbell0x2a/income-8da0cb?style=for-the-badge\u0026labelColor=555555\u0026logo=github\" height=\"20\"\u003e](https://github.com/wcampbell0x2a/income)\n[\u003cimg alt=\"crates.io\" src=\"https://img.shields.io/crates/v/income.svg?style=for-the-badge\u0026color=fc8d62\u0026logo=rust\" height=\"20\"\u003e](https://crates.io/crates/income)\n[\u003cimg alt=\"docs.rs\" src=\"https://img.shields.io/badge/docs.rs-income-66c2a5?style=for-the-badge\u0026labelColor=555555\u0026logo=docs.rs\" height=\"20\"\u003e](https://docs.rs/income)\n[\u003cimg alt=\"build status\" src=\"https://img.shields.io/github/actions/workflow/status/wcampbell0x2a/income/main.yml?branch=master\u0026style=for-the-badge\" height=\"20\"\u003e](https://github.com/wcampbell0x2a/income/actions?query=branch%3Amaster)\n\nLibrary and binary for the reading of [UBI](https://www.kernel.org/doc/html/latest/filesystems/ubifs.html) volumes.\n\n```console\n$ ./income [IMAGE_PATH]\n```\n\n## Testing\nUnit test do not exist for this project yet!\n```console\n$ wget -L https://github.com/onekey-sec/unblob/raw/1965107de2d813c31ce9d0a28ea47649cd5a81a4/tests/integration/filesystem/ubi/ubi/__input__/fruits.ubi\n$ unblob fruits.ubi\n$ hexyl fruits.ubi_extract/img-1180426539_vol-data.ubifs\n┌────────┬─────────────────────────┬─────────────────────────┬────────┬────────┐\n│00000000│ 63 68 65 72 72 79 31 0a ┊ ff ff ff ff ff ff ff ff │cherry1_┊××××××××│\n│00000010│ ff ff ff ff ff ff ff ff ┊ ff ff ff ff ff ff ff ff │××××××××┊××××××××│\n│*       │                         ┊                         │        ┊        │\n│00000380│                         ┊                         │        ┊        │\n└────────┴─────────────────────────┴─────────────────────────┴────────┴────────┘\n$ cargo run --release -- fruits.ubi\n2 named volumes, 3 physical volumes, blocksize=0x400\nExtracting volume: \"apple\"\nwrote: ubi-root/img-1180426539_vol-apple.ubifs\nExtracting volume: \"data\"\nwrote: ubi-root/img-1180426539_vol-data.ubifs\n$ hexyl ubi-root/img-1180426539_vol-data.ubifs\n┌────────┬─────────────────────────┬─────────────────────────┬────────┬────────┐\n│00000000│ 63 68 65 72 72 79 31 0a ┊ ff ff ff ff ff ff ff ff │cherry1_┊××××××××│\n│00000010│ ff ff ff ff ff ff ff ff ┊ ff ff ff ff ff ff ff ff │××××××××┊××××××××│\n│*       │                         ┊                         │        ┊        │\n│00000380│                         ┊                         │        ┊        │\n└────────┴─────────────────────────┴─────────────────────────┴────────┴────────┘\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwcampbell0x2a%2Fincome","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwcampbell0x2a%2Fincome","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwcampbell0x2a%2Fincome/lists"}