{"id":13480479,"url":"https://github.com/hexhacking/xCrash","last_synced_at":"2025-03-27T10:32:52.770Z","repository":{"id":46143170,"uuid":"302624140","full_name":"hexhacking/xCrash","owner":"hexhacking","description":"🔥 xCrash provides the Android app with the ability to capture java crash, native crash and ANR. No root permission or any system permissions are required.","archived":false,"fork":false,"pushed_at":"2022-04-25T17:07:34.000Z","size":2943,"stargazers_count":215,"open_issues_count":3,"forks_count":22,"subscribers_count":10,"default_branch":"master","last_synced_at":"2024-08-01T17:22:20.060Z","etag":null,"topics":["android","anr","apm","block","crash","crash-reporting","exception","handler","java","jni","native","reporter","reporting"],"latest_commit_sha":null,"homepage":"","language":"C","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/hexhacking.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-10-09T11:41:40.000Z","updated_at":"2024-07-03T16:07:42.000Z","dependencies_parsed_at":"2022-09-01T06:00:59.962Z","dependency_job_id":null,"html_url":"https://github.com/hexhacking/xCrash","commit_stats":null,"previous_names":[],"tags_count":40,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hexhacking%2FxCrash","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hexhacking%2FxCrash/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hexhacking%2FxCrash/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hexhacking%2FxCrash/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hexhacking","download_url":"https://codeload.github.com/hexhacking/xCrash/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":222239355,"owners_count":16953923,"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","anr","apm","block","crash","crash-reporting","exception","handler","java","jni","native","reporter","reporting"],"created_at":"2024-07-31T17:00:40.330Z","updated_at":"2024-10-30T14:30:39.603Z","avatar_url":"https://github.com/hexhacking.png","language":"C","readme":"\u003cp align=\"center\"\u003e\u003cimg src=\"doc/xcrash_logo.png\" alt=\"xCrash Logo\" width=\"450px\"\u003e\u003c/p\u003e\n\n# HexHacking xCrash\n\n![](https://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat)\n![](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat)\n![](https://img.shields.io/badge/release-3.0.0-red.svg?style=flat)\n![](https://img.shields.io/badge/Android-4.1%20--%2011-blue.svg?style=flat)\n![](https://img.shields.io/badge/arch-armeabi--v7a%20%7C%20arm64--v8a%20%7C%20x86%20%7C%20x86__64-blue.svg?style=flat)\n\nHexHacking xCrash is a branch version of xCrash, and its version number starts from 3.0.0. Whether in terms of architecture or technical details, HexHacking xCrash will be more radical.\n\nxCrash provides the Android app with the ability to capture java crash, native crash and ANR. No root permission or any system permissions are required.\n\n\u003cp align=\"left\"\u003e\u003cimg src=\"doc/intro.png\" alt=\"intro\" width=\"320px\"\u003e\u003c/p\u003e\n\nxCrash can generate a tombstone file (similar format as Android system's tombstone file) in the directory you specified when the app process crashes or ANRs.\n\n[README 中文版](README.zh-CN.md)\n\n\n## Features\n\n* Support Android 4.1 - 11 (API level 16 - 30).\n* Support armeabi-v7a, arm64-v8a, x86 and x86_64.\n* Capturing java crash, native crash and ANR.\n* Dumping detailed statistics about process, threads, memory, FD and network.\n* Setting which thread's info should be dumped via regular expressions.\n* Do not require root permission or any system permissions.\n\n\n## Tombstone File Previews\n\n* [java crash](doc/tombstone_java.txt)\n* [native crash (armeabi-v7a)](doc/tombstone_native_armeabi-v7a.txt)\n* [native crash (arm64-v8a)](doc/tombstone_native_arm64-v8a.txt)\n* [native crash (x86)](doc/tombstone_native_x86.txt)\n* [native crash (x86_64)](doc/tombstone_native_x86_64.txt)\n* [ANR (armeabi-v7a)](doc/tombstone_anr_armeabi-v7a.txt)\n* [ANR (arm64-v8a)](doc/tombstone_anr_arm64-v8a.txt)\n* [ANR (x86)](doc/tombstone_anr_x86.txt)\n* [ANR (x86_64)](doc/tombstone_anr_x86_64.txt)\n\n\n## Overview Maps\n\n### Architecture\n\n\u003cp align=\"left\"\u003e\u003cimg src=\"doc/architecture.png\" alt=\"architecture\" width=\"750px\"\u003e\u003c/p\u003e\n\n### Capture Native Crash\n\n\u003cp align=\"left\"\u003e\u003cimg src=\"doc/capture_native_crash.png\" alt=\"capture native crash\" width=\"520px\"\u003e\u003c/p\u003e\n\n### Capture ANR\n\n\u003cp align=\"left\"\u003e\u003cimg src=\"doc/capture_anr.png\" alt=\"capture anr\" width=\"750px\"\u003e\u003c/p\u003e\n\n## Usage\n\n#### 1. Add dependency.\n\n```Gradle\ndependencies {\n    implementation 'io.hexhacking.xcrash:xcrash-android-lib:3.0.0'\n}\n```\n\n#### 2. Specify one or more ABI(s) you need.\n\n```Gradle\nandroid {\n    defaultConfig {\n        ndk {\n            abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'\n        }\n    }\n}\n```\n\n#### 3. Initialize xCrash.\n\n\u003e Java\n\n```Java\npublic class MyCustomApplication extends Application {\n\n    @Override\n    protected void attachBaseContext(Context base) {\n        super.attachBaseContext(base);\n        \n        xcrash.XCrash.init(this);\n    }\n}\n```\n\n\u003e Kotlin\n\n```Kotlin\nclass MyCustomApplication : Application() {\n\n    override fun attachBaseContext(base: Context) {\n        super.attachBaseContext(base)\n\n        xcrash.XCrash.init(this)\n    }\n}\n```\n\nTombstone files will be written to `Context#getFilesDir() + \"/tombstones\"` directory by default. (usually in: `/data/data/PACKAGE_NAME/files/tombstones`)\n\nThere is a more practical and complex sample app in the [xcrash_sample](xcrash_sample) folder.\n\n\n## Support\n\n* [GitHub Issues](https://github.com/hexhacking/xCrash/issues)\n* [GitHub Discussions](https://github.com/hexhacking/xCrash/discussions)\n* [Telegram Public Group](https://t.me/android_native_geeks)\n\n\n## Contributing\n\n[xCrash Contributing Guide](CONTRIBUTING.md).\n\n\n## License\n\nxCrash is MIT licensed, as found in the [LICENSE](LICENSE) file.\n\nxCrash documentation is Creative Commons licensed, as found in the [LICENSE-docs](LICENSE-docs) file.\n","funding_links":[],"categories":["C"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhexhacking%2FxCrash","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhexhacking%2FxCrash","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhexhacking%2FxCrash/lists"}