- Последний пост
- 00:05
- Последнее чтение
- 12 авг.
- Постов за неделю
- 2
- Всего постов
- 21
- Тип
- открытый
- Язык
- английский
- В каталоге с
- 12 авг.
- 1/24сутки в ленте
- 2 625
- 1/48двое суток
- 3 008
- 1/72трое суток
- 3 244
Оценка по просмотрам недавних постов: пост набирает почти всё за первые сутки.
Посты
LSPatch is now refactored to sync the UI design from Vector: https://github.com/JingMatrix/LSPatch/releases/tag/canary-446 Please test and send me feedback as issues on GitHub.
🎉 TEESimulator 4.0 — a new foundation Ever since TEESimulator began, the community has watched me pour real effort into closing pre-existing detection points, release after release. But as AI-driven conformance scanners multiply and quick "harness fix" commits go viral, it has grown exhausting to fold in a stream of unproven, poorly-explained external patches — innovation stalled, and code quality slipped noticeably. 😮💨 So here is TEESimulator 4.0. 🚀 Instead of faking a hardware backend, it runs AOSP's own KeyMint reference implementation — the very trusted application that normally lives inside the TEE — in-process. This single change sweeps away countless detection points at once and, for the first time, brings first-class permanent key storage. 🔐 ✨ Highlights 🧠 Reference KeyMint TA, in-process. Attestations come straight from AOSP's kmr-ta, not hand-rolled certificates — so every emitted record matches a real device field-for-field. 🎛 Profiles and a WebUI. Bundle a keybox, operation mode, patch/OS levels, and device identity into a named profile, assign it to your apps, and edit it all from the manager's WebUI — no text editor, no reboot. 📱 Android 10 → 17. Both the legacy keystore daemon (Android 10/11) and keystore2 / KeyMint (Android 12+) are intercepted, and every key is attested at — and reports — its real security level and the version its OS release uses. 🩹 Patch mode by default. The real hardware still generates the key; only its attestation is re-signed under your keybox, keeping the genuine hardware-backed blob and its true contents. 💬 Feedback To get started, drop a keybox at /data/adb/teesim/keybox.xml, then assign your apps to a profile in the WebUI. 🗝 Please open an issue for any device-support or compatibility problems — it helps enormously. 🙏 This release has been tested on Android 17 (Pixel 6) and Android 10 (the Android emulator).
Update dependencies and migrate to AGP built-in Kotlin
Keep the bars docked to the window out of the navigation bar (#885)
Keep what saved instance state is restored through (#875) Fix the scope targets no filter can reveal and the routes that lead nowhere (#876) Bypass the notification flags on the Android 15 builds that carry them (#882)
Supports Android 17 QPR2 Beta2 Supports GrapheneOS 17 Fixed some known issues
🎉 Vector 2.2 Release 🎉 Vector 2.2 is a hotfix for 2.1, and it brings libxposed API 102 — where a module can be swapped out without taking the process down with it. If you installed the manager as a separate app, uninstall it before updating: a 2.1 manager cannot talk to a 2.2 daemon. A parasitic manager needs nothing. 🩹 What 2.1 got wrong 🪝 No hooks in release builds. Modules loaded, and then nothing happened. R8 had merged XResources into a shared class that XposedHelpers.findClass touches on its way in, and XResources cannot resolve until the device has generated its super class. One failure is permanent, so every findClass in system_server failed for the rest of the boot. 🔗 Canaries installed the wrong build. Press install on a canary, get the newest release. The page is rebuilt around the builds themselves: each row a head commit, with its author, its pull request, and the issues closed since the build you are running. ⭐️ libxposed API 102 Hot reload — a module's code replaced inside a process that is already running it. No more killing every process you are injected into to try a change, and no more reboot when the module hooks the system, taking with it the state you were trying to reproduce. Updates can reach processes still running the old code, if the module agrees to it. Around that: an entry class can step out of lifecycle callbacks while its siblings carry on, hookers swap atomically, and a module targeting 102 leaves the legacy API alone. 👥 One module, one configuration A module is one package and one binary for the whole device, so its configuration belongs to the package; only its presence varies per user. Nothing enforced that, and a module installed in one user could run inside another user's applications. It now runs only in the users that installed it — system_server excepted, since it belongs to none of them. 🗑 Everything else The IPC interfaces moved into Vector's own namespace, and the refactor shook out a run of unrelated bugs: JNI exceptions left pending across the native boundary, one of which left a process without Xposed while the log announced success; "Install as an app" going green for a copy that was a different build; an unbounded wait on a binder thread; a health flag latched before the work it reports. And the monochrome icon now carries the statue's own line work, so the themed launcher icon finally says what it is. 💬The two fixes at the top exist because you reported them. Thank you — please keep telling us what breaks.
🎉 Vector 2.1 Release 🎉 Vector 2.1 is the first release built on libxposed API 101, the newly published standard, and it ships with a manager rebuilt from scratch and support for the latest Android platforms. Where 2.0 was the definitive close of the API 100 era, 2.1 opens the next one: the framework, the daemon, and the manager have all moved to API 101. ⭐️ libxposed API 101 With API 101 now published, the ecosystem's new standard brings significant breaking changes. Vector 2.1 migrates the entire framework onto it, adapting to the changed package-query and reflection contracts so modules written against the current API behave as their authors intend. 🆕 A New Manager, Rebuilt in Compose The manager has been rewritten from the ground up in Jetpack Compose, and its design is community-centred: an interface built to take the everyday experience to the next level, shaped by my own aesthetic taste and open to yours. Our mascot is The Winged Victory of Samothrace — because Vector and Victory are never far apart. We warmly welcome feedback on the new design so we can keep refining this front end together. ℹ️ Expanded Platform Support 🌟 Android 17: Full support for the latest Android release, extending Vector's range to Android 8.1 through 17. 🛡 GrapheneOS: The parasitic manager now loads correctly under GrapheneOS's hardened dynamic-code-loading restrictions. 💾 16 KB Page Sizes: Native support for devices that ship with 16 KB memory pages. A personal note: I, JingMatrix, have founded my own consultancy, Matrix Transformation, and now work as a full-time entrepreneur. Nurturing this community is one of the company's most important goals — it is how I realize my own long-held pursuit of serving you — and so all of my open-source projects, Vector included, are funded by the company. Thank you for being part of this journey.
без подписи
без подписи
без подписи
без подписи
Rewrite the manager in Compose Screenshots from the current branch, on a Pixel 6 running Android 17. You can download it through Github Actions.
Fix libxposed API 101 conformance (#794) Brings the framework in line with the API version master vendors, checked throughout with test modules that assert the documented behaviour and log pass/fail, on a Pixel 6 running Android 17. hookClassInitializer never worked: it aborted the process, and once that was fixed the hook still could not fire, because resolving <clinit> through JNI runs the initialiser during the lookup. It finds the method from ART's layout now — the gap the reflected members leave behind — and the hooker runs ahead of the class's own initialiser. Also fixed: the interceptor chain could resurrect an exception it had already suppressed; ExceptionMode.DEFAULT ignored module.prop, so passthrough was unreachable; getInvoker() threw NPE on an unhooked method; Constructor .newInstance was hookable; an unhooked constructor dispatched Method.invoke's id against itself; getArgs() was mutable; a late-injected system server dispatched onSystemServerStarting into an empty module set; android:ui was reported to modules as the system package; edit().clear() did nothing, and preference updates reached every Android user's hooked processes; empty scope requests never called back; openRemoteFile threw RemoteException where FileNotFoundException is documented; getScope() repeated a package once per user; module.prop was not parsed as Properties. In the manager, one malformed module.prop could blank the entire module list. The list now shows which API each module targets, and staticScope is enforced rather than parsed and ignored — in the picker, in the daemon, and by dropping stale rows at startup. Two changes modules will notice: - Invoker.invoke reports the target's exception wrapped in InvocationTargetException on every path, as Method#invoke does. A module catching the raw exception will stop catching it. - A module declaring staticScope loses scope entries outside its scope.list. The <clinit> lookup is measured on one device, one Android version and one architecture. Its assumptions are re-checked at runtime and it declines rather than guesses, so an unfamiliar layout degrades to "no static initializer" rather than misbehaving.
Fix daemon crash from the Android 17 IServiceConnection change (#784)
3040-3046 Clarify libxposed modules loading process (#662) Ensure miscPath is initialized for system_server modules (#678) Implement missing auto_include feature in daemon (#681) Disable dex obfuscation for debug builds (#670) Fix original method invocation argument spreading (#701) Fix empty module list and blank README pages (#765) Fix dex2oat compatibility state constants drifting from AIDL Fix Re-optimize crash on Android 17 by using the ART Service (#787) Note: This version does not implement API 102. If you need it, you can temporarily use t.me/NPatch/974.
libxposed API 102 has been released to the Maven Central Repository
终于要放假了,于是做了个三个月的计划。希望能好好照顾自己,随心所欲,把精力全部都放在提升自己上。 开源项目与公司管理 1. 处理掉所有的 issue 和 pull-request: Vector, NeoZygisk, TEESimulator。 2. 学习 Compose UI 设计,实现 Vector 管理器的设计。 3. 更新个人网站,可能还需要设计公司的商业网站。 基础技术加强 长时间依赖于 AI,不仅会失去编程的乐趣,还会丧失自信、消磨自己的独特性与价值。 1. C++ 复习:阅读 Professional C++ 2. Rust 复习(网页即可):The Rust programming language, Comprehensive Rust 3. 操作系统:Three Easy Pieces 4. 内核,虚拟机和嵌入开发:Linux Kernel Development, Hardware and software support for virtualization, Embedded Android. 数学学习 1. Gaussian Processes for Machine Learning 2. Statistics as Principled Argument 3. Graph Machine Learning 可能还需要改正一下博士论文中的一处证明错误。 访友与社交 注定大部分时间是在旅途以及乡村中度过的,所以应该把书打印出来读。 健康管理 无他,生活质量以熬夜频率与盯屏幕时长计。 --- With a break finally on the horizon, I have put together a three-month plan. I hope to take good care of myself, follow my instincts, and channel all my energy into self-improvement. Open Source & Entrepreneurship 1. Clear the backlog of issues and pull requests: Vector, NeoZygisk, TEESimulator. 2. Learn Compose UI design to bring the Vector manager's interface to life. 3. Refresh my personal website, and perhaps design a commercial site for the company. Reclaiming the Fundamentals Relying on AI for too long risks dulling the joy of coding, eroding self-confidence, and fading our unique value. 1. C++ review: read Professional C++ 2. Rust review (online is fine): The Rust programming language and Comprehensive Rust 3. Operating systems: Operating Systems: Three Easy Pieces 4. Kernel, virtual machines, and embedded development: Linux Kernel Development, Hardware and software support for virtualization, Embedded Android. Mathematical Horizons 1. Gaussian Processes for Machine Learning 2. Statistics as Principled Argument 3. Graph Machine Learning And perhaps correct a minor proof error in my PhD thesis. Connections & Travel Since much of this time will be spent on the road and in the quiet countryside, I should print these books out to read. Well-being Simply put: measuring the quality of life by fewer late nights and less screen time.
Unofficial https://github.com/JingMatrix/Vector/pull/750 DO more testing and get feedback🥳
Vector 不支援同时使用 API 101 与 API 100,因为二者在设计层面上就存在根本冲突。虽然理论上可以实现强行兼容,但 Vector 本身并未做相关适配,且 API 100 已正式淘汰,没有必要为其额外开发兼容功能。 Vector doesn't support using both API 101 and API 100 at the same time because there are fundamental design conflicts between them. While it's theoretically possible to force compatibility, Vector itself hasn't made any adaptations for that, and since API 100 has been officially deprecated, there's no need to develop additional compatibility features for it.