fa
Feedback
JingMatrix Promotion

JingMatrix Promotion

رفتن به کانال در Telegram

Created for JingMatrix

نمایش بیشتر
2 851
مشترکین
+224 ساعت
+657 روز
+35130 روز
آرشیو پست ها
It has been a very busy month for me, and thus a bit inactive on GitHub. I will be back soon, after a good rest.
It has been a very busy month for me, and thus a bit inactive on GitHub. I will be back soon, after a good rest.

Persist the RKP-only knobs so a toggle survives a reboot

LSPatched is now refactored to sync the UI design from Vector: https://github.com/JingMatrix/LSPatch/releases/tag/canary-446 Please test and send me feedbacks 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)

支持 Android 17 QPR2 Beta2 支持 GrapheneOS 17 修复一些其他兼容性问题

🎉 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.
+4
Rewrite the manager in Compose Screenshots from the current branch, on a Pixel 6 running Android 17.

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.

Repost from NPatch
libxposed API 102 has been released to the Maven Central Repository
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. 操作系统:Operating Systems: 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.

I am stepping into a three-month window of free time. The goal is simple: take good care of myself and channel all my energy into deep self-improvement. --- OPEN SOURCE AND PROJECT MANAGEMENT * Clear the Backlog: Resolve all pending issues and pull requests for Vector, NeoZygisk, and TEESimulator. * Modern UI: Master Compose UI to design and build the interface for the Vector Manager. * Web Presence: Update my blog and design (without implementation) a commercial site for the company. --- RECLAIMING THE FUNDAMENTALS Over-relying on AI erodes the joy of coding, dampens self-confidence, and dilutes our unique value. It is time to step back from Gemini / Claude, rebuild muscle memory, and struggle with hard problems on my own. * C++ Review: Read Professional C++. * Rust Review: Revisit The Rust Programming Language and Comprehensive Rust (web version is sufficient). * Operating Systems: Study Operating Systems: Three Easy Pieces (OSTEP). * Kernel, Hypervisors, and Embedded: Study Linux Kernel Development, Hardware and Software Support for Virtualization, and Embedded Android. --- MATHEMATICS AND THEORY * Gaussian Processes: Gaussian Processes for Machine Learning. * Scientific Reasoning: Statistics as Principled Argument. * Graph Theory: Graph Machine Learning. Finally correct one proof error in my PhD thesis. --- TRAVEL, CONNECTION, AND PAPER BOOKS Much of this journey will take place on the road and in the quiet of the countryside. To truly unplug, I will be printing out my reading materials to study offline. I also look forward to catching up with friends along the way. --- HEALTH AND WELL-BEING The key metrics that matter: minimizing late nights and reducing screen time. Quality of life over these next three months will be measured entirely by how well I manage these two variables.

Repost from NPatch
Unofficial https://github.com/JingMatrix/Vector/pull/750 DO more testing and get feedback🥳

Repost from N/a
libxposed API 102 is now under RFC. Please give us suggestions regarding the API design. https://github.com/libxposed/api/pull/62 Test framework: https://t.me/c/2496139642/7872/548960