[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-1775":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":13,"contributorsCount":14,"subscribersCount":14,"size":14,"stars1d":14,"stars7d":15,"stars30d":16,"stars90d":14,"forks30d":14,"starsTrendScore":14,"compositeScore":17,"rankGlobal":9,"rankLanguage":9,"license":18,"archived":19,"fork":19,"defaultBranch":20,"hasWiki":21,"hasPages":19,"topics":22,"createdAt":9,"pushedAt":9,"updatedAt":23,"readmeContent":24,"aiSummary":25,"trendingCount":14,"starSnapshotCount":14,"syncStatus":15,"lastSyncTime":26,"discoverSource":27},1775,"RiskEngine","WsttXm\u002FRiskEngine","WsttXm","A mobile security risk control solution including an SDK and a management platform.",null,"Java",206,54,1,0,2,32,49.42,"Other",false,"master",true,[],"2026-06-12 04:00:11","# RiskEngine\n\n[中文](.\u002FREADME_zh.md)\n\nAn Android SDK for local device fingerprinting and runtime risk detection. Built on a Java + C++17 dual-layer architecture, RiskEngine collects device signals, runs environment detectors, and returns a structured `RiskReport` to the host app.\n\n## Requirements\n\n- JDK 17+\n- Android Gradle Plugin 8.13.1\n- Compile SDK 36 \u002F Min SDK 30\n- CMake 3.22.1+, C++17\n\n## Quick Start\n\nBuild the SDK and demo:\n\n```bash\n.\u002Fbuild.sh sdk      # build SDK only\n.\u002Fbuild.sh demo     # build demo app\n.\u002Fbuild.sh all      # build both\n.\u002Fbuild.sh clean    # clean\n```\n\nOr use Gradle directly:\n\n```bash\n.\u002Fgradlew :riskengine-sdk:assembleRelease\n.\u002Fgradlew :demo:assembleDebug\n```\n\nInitialize and collect:\n\n```java\nRiskEngineConfig config = new RiskEngineConfig.Builder()\n        .debugLog(true)\n        .collectTimeout(15000)\n        .build();\n\nRiskEngine.init(context, config);\n\nRiskEngine.collect(new RiskEngineCallback() {\n    @Override\n    public void onSuccess(RiskReport report) {\n        Log.d(\"RiskEngine\", \"Risk: \" + report.getOverallRiskLevel());\n        Log.d(\"RiskEngine\", \"Score: \" + report.getRiskScore());\n    }\n\n    @Override\n    public void onError(Throwable error) {\n        Log.e(\"RiskEngine\", \"Collect failed\", error);\n    }\n});\n```\n\nSynchronous collection:\n\n```java\nRiskReport report = RiskEngine.collectSync();\nString json = RiskEngine.getReportJson();\n```\n\nCall `RiskEngine.shutdown()` when the SDK is no longer needed.\n\n## Core Detections\n\n| Area | Examples |\n| --- | --- |\n| Root | `su`, Magisk, dangerous props, writable system paths |\n| Hook | Xposed\u002FLSPosed, Frida, suspicious maps and processes |\n| Emulator | Build props, QEMU artifacts, native emulator markers |\n| Debugging | Debug flags, tracer pid, gdb\u002Flldb\u002FIDA artifacts |\n| Sandbox \u002F container | Container files, cgroup markers, virtualized paths |\n| Device fingerprint | Android ID, build props, telephony, Wi-Fi, Bluetooth, screen, APK signature |\n\n## Output\n\n`RiskReport` includes:\n\n| Field | Description |\n| --- | --- |\n| `fingerprint` | Aggregated device fingerprint values |\n| `detections` | Detector results and evidence |\n| `overallRiskLevel` | Final risk level |\n| `riskScore` | Numeric score derived from detector results |\n| `timestampMs` | Collection timestamp |\n| `sdkVersion` | SDK version string |\n\n## Public API\n\n| API | Description |\n| --- | --- |\n| `RiskEngine.init(Context, RiskEngineConfig)` | Initialize the SDK |\n| `RiskEngine.collect(RiskEngineCallback)` | Run collection asynchronously |\n| `RiskEngine.collectSync()` | Run collection synchronously |\n| `RiskEngine.getReportJson()` | Collect and return the report as JSON |\n| `RiskEngine.shutdown()` | Release SDK resources |\n| `RiskEngineConfig.Builder.debugLog(boolean)` | Toggle SDK logs |\n| `RiskEngineConfig.Builder.collectTimeout(long)` | Set collection timeout (ms) |\n\nThe SDK ships with `consumer-rules.pro`; host apps need no extra ProGuard rules for the public API.\n\n## Documentation\n\nSee [doc\u002FImplementation_Details.md](.\u002Fdoc\u002FImplementation_Details.md) for the full implementation details.\n\n## License\n\nSee [LICENSE](.\u002FLICENSE).\n","RiskEngine 是一个移动安全风控解决方案，包括一个SDK和管理平台。它基于Java + C++17双层架构构建，能够收集设备信号、运行环境检测，并向宿主应用返回结构化的`RiskReport`报告。该方案支持根检测、Hook检测、模拟器识别、调试检测、沙箱\u002F容器检测以及设备指纹生成等核心功能。适用于需要增强Android应用安全性，防止欺诈和恶意行为的场景，如金融支付、账号登录保护等领域。","2026-06-11 02:45:59","CREATED_QUERY"]