[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-82159":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":14,"contributorsCount":14,"subscribersCount":14,"size":14,"stars1d":15,"stars7d":16,"stars30d":17,"stars90d":14,"forks30d":14,"starsTrendScore":18,"compositeScore":19,"rankGlobal":9,"rankLanguage":9,"license":20,"archived":21,"fork":21,"defaultBranch":22,"hasWiki":21,"hasPages":21,"topics":23,"createdAt":9,"pushedAt":9,"updatedAt":24,"readmeContent":25,"aiSummary":26,"trendingCount":14,"starSnapshotCount":14,"syncStatus":27,"lastSyncTime":28,"discoverSource":29},82159,"iris","Ch0pin\u002Firis","Ch0pin","Intent Runtime Inspection System",null,"Python",64,7,31,0,1,5,33,4,2.71,"Other",false,"main",[],"2026-06-12 02:04:23","\u003Cp align=\"center\">\n  \u003Cpicture>\n    \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"assets\u002Firis.png\">\n    \u003Csource media=\"(prefers-color-scheme: light)\" srcset=\"assets\u002Firis_light.png\">\n    \u003Cimg src=\"assets\u002Firis_light.png\" alt=\"IRIS logo\" width=\"420\">\n  \u003C\u002Fpicture>\n\u003C\u002Fp>\n\n# IRIS\n\n**Intent Runtime Inspection System**.\n\nIRIS is a local tool for observing Android `Intent` activity from a rooted device. It attaches to Android with Frida, collects intent events, normalizes them, stores them in SQLite, and serves a small local UI for filtering and replaying interesting flows.\n\n## What it is for\n\n- Watch activity, broadcast, and selected service intent flows.\n- See caller, target, action, component, data URI, extras, hook, stage, and dispatch result.\n- Keep captured events in a local SQLite database for later review.\n- Filter events from the CLI or the local web UI.\n- Re-run captured intents through `adb` from the UI when supported.\n- Dispatch complex replays through the IRIS helper APK when captured extras\n  need Bundle-native values or rebuilt Parcelable objects.\n\n## Requirements\n\n- Python 3.12+\n- Node.js \u002F npm\n- `adb`\n- A rooted Android device or emulator\n- Frida server running on the Android side\n\n## Install\n\nFrom the repo root:\n\n```bash\npython3 -m venv .venv\nsource .venv\u002Fbin\u002Factivate\npip install -e '.[frida]'\nnpm install\n```\n\n`npm install` installs `frida-java-bridge`, which is needed by the bundled Frida 17+ TypeScript agent.\n\nInstall the optional on-device helper APK when you want the Repeater's\n`Send via helper` path for complex extras.\n\nThe repo includes a prebuilt debug helper APK at\n[`assets\u002Firis-helper-debug.apk`](assets\u002Firis-helper-debug.apk), so you can\ndownload and install that file instead of compiling the helper app yourself.\n\nInstall the bundled APK on a connected device:\n\n```bash\npython3 scripts\u002Finstall_helper_apk.py assets\u002Firis-helper-debug.apk\n```\n\nThe installer prompts for a device when multiple authorized adb devices are\npresent. In non-interactive shells, or when you already know the target, select\none explicitly:\n\n```bash\npython3 scripts\u002Finstall_helper_apk.py -s \u003Cdevice-serial> assets\u002Firis-helper-debug.apk\n```\n\nBuild the helper APK from source only when you want to regenerate it locally.\n\nFrom the repo root:\n\n```bash\ncd helper-app\nANDROID_HOME=\"$HOME\u002FLibrary\u002FAndroid\u002Fsdk\" gradle :app:assembleDebug --no-daemon\n```\n\nThe install script grants the `SYSTEM_ALERT_WINDOW` appop so the\nhelper can launch activities from its broadcast receiver context.\n\n## Quick usage\n\nList Frida-visible devices:\n\n```bash\npython3 -m intent_monitor list-devices\n```\n\nRun capture and the web UI together:\n\n```bash\npython3 -m intent_monitor --database .\u002Firis.db monitor --device-id \u003Cdevice-id>\n```\n\nOpen the UI (default ip \u002F port):\n\n```text\nhttp:\u002F\u002F127.0.0.1:8765\n```\n\nIf only one device is connected, you can usually omit `--device-id`.\n\n## Usage example\n\n[![IRIS usage example](https:\u002F\u002Fimg.youtube.com\u002Fvi\u002FuU-f2zVZj7U\u002Fhqdefault.jpg)](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=uU-f2zVZj7U)\n\nWatch the usage recording: [https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=uU-f2zVZj7U](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=uU-f2zVZj7U)\n\n## Common commands\n\nCreate or update the SQLite database schema:\n\n```bash\npython3 -m intent_monitor --database .\u002Firis.db init-db\n```\n\nCapture events without starting the UI:\n\n```bash\npython3 -m intent_monitor --database .\u002Firis.db capture --device-id \u003Cdevice-id>\n```\n\nServe the UI against an existing database:\n\n```bash\npython3 -m intent_monitor --database .\u002Firis.db serve --host 127.0.0.1 --port 8765\n```\n\nPrint captured events from the database:\n\n```bash\npython3 -m intent_monitor --database .\u002Firis.db list --limit 20\n```\n\nFilter stored events:\n\n```bash\npython3 -m intent_monitor --database .\u002Firis.db list --caller-package com.example.app\npython3 -m intent_monitor --database .\u002Firis.db list --target-package com.target.app\npython3 -m intent_monitor --database .\u002Firis.db list --action android.intent.action.VIEW\npython3 -m intent_monitor --database .\u002Firis.db list --scheme https --host example.com\n```\n\n## Defaults\n\n- Database: `intent-monitor.db` unless `--database` is set\n- Target process: `system_server`\n- Agent: `frida\u002Fsystem_server_intent_monitor.ts`\n- UI host\u002Fport: `127.0.0.1:8765`\n\nUse `python3 -m intent_monitor --help` or a command-specific help page, such as `python3 -m intent_monitor monitor --help`, to see all options.\n\n## License and commercial use\n\nIRIS is licensed under the [PolyForm Noncommercial License 1.0.0](LICENSE.md).\n\nYou may use, copy, modify, and distribute this software for noncommercial\npurposes only. Commercial use requires prior written permission from the\ncopyright holder. See [COMMERCIAL.md](COMMERCIAL.md) for the commercial-use\npolicy.\n\nThe prebuilt helper APK in `assets\u002Firis-helper-debug.apk` is provided under the\nsame software license as the source code.\n\nThe IRIS name, logo, icons, and branding assets are not licensed under the\nsoftware license and are reserved by the copyright holder.\n\nPull requests are welcome. By submitting a contribution, you agree to the terms\nin [CONTRIBUTING.md](CONTRIBUTING.md), including the right for project\nmaintainers to relicense contributions as part of IRIS.\n\n## Safety notes\n\nThe default `system_server` shutdown path uses unload\u002Fdetach only. It does not actively revert Java hooks because that can destabilize the device during shutdown.\n\nOnly use `--revert-hooks-on-exit` when you explicitly want to test that cleanup path.\n\nService hooks are experimental and disabled by default. Enable them only on a disposable rooted device:\n\n```bash\npython3 -m intent_monitor --database .\u002Firis.db capture --enable-service-hooks\n```\n","IRIS是一个用于从已root的Android设备上观察Intent活动的本地工具。它通过Frida与Android系统连接，收集Intent事件并将其标准化后存储在SQLite数据库中，同时提供一个小型本地UI以便过滤和重放感兴趣的流程。项目支持查看活动、广播及选定服务的Intent流，并能显示调用者、目标、动作、组件、数据URI、额外信息、钩子、阶段以及分发结果等详细信息。适合需要对Android应用内部交互进行深入分析或调试的场景使用，特别是开发者希望了解其应用程序如何与其他组件通信时。",2,"2026-06-11 04:07:53","CREATED_QUERY"]