Retire the last references to the deleted legacy Xposed path - #2
Merged
Merged
Conversation
Dropping the API 93 entry left its traces behind in places that still
claimed it shipped. The README compatibility table was the one that
mattered: it advertised LSPosed 1.9.x, EdXposed and LSPatch as supported
and pointed them at assets/xposed_init -> MainHook, so a user on one of
those frameworks would install the module and get nothing, with the docs
insisting it should work. It now states plainly that those are not
supported and why.
The rest were stale in the same direction:
proguard-rules.pro kept com.my.televip.MainHook, a class that no
longer exists - a no-op rule that reads as if the
legacy entry still needed protecting
module.prop promised a fallback to assets/xposed_init for
frameworks that cannot read it; there is no
fallback, they simply will not load TeleVip
TeleVipModule javadoc said the legacy entry was "still shipped"
CHANGELOG documented 3.7.0 as shipping two entry points and
listed LegacyBackend; 3.7.0 is unreleased (latest
tag is 3.6.2), so it now describes what will
actually ship, and the Nekogram X entry points at
scope.list rather than the deleted xposedscope array
Verified the scope migration was faithful while here: all 22 packages
from the removed values/arrays.xml are present in
META-INF/xposed/scope.list, nekox.messenger included.
Also bumps the verified build for official Telegram to 12.10.1 (70382).
Every symbol the module resolves by name was checked against Telegram's
current source and none had changed - TLRPC.Message fields, readAttachPath
and TLdeserialize, TL_messages_readHistory, TL_channels_readHistory,
TL_messages_affectedMessages, TL_updateDeleteMessages, the
MessagesController, ConnectionsManager and UserConfig accessors, and
PeerStoriesView$StoryItemHolder#allowScreenshots - so no hook needed
updating and the pin was simply behind. The bracketed number is
PackageInfo.versionCode, which Telegram builds as code * 10 + channel
(1/2 store, 9 direct), so 7038 -> 70382; that encoding is now documented
next to the map since it is otherwise unreadable.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JfCFkZp4NiGPGjTKwchmxj
3 tasks
2B-4G10
added a commit
that referenced
this pull request
Sep 25, 2026
Retire the last references to the deleted legacy Xposed path
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Dropping the API 93 entry point left its traces behind in places that still claimed it shipped. Docs and build config only — no behaviour change.
The one that mattered is the README compatibility table: it advertised LSPosed 1.9.x, EdXposed and LSPatch as supported and pointed them at
assets/xposed_init→MainHook. A user on one of those frameworks would install the module, get nothing, and have the docs insisting it should work. It now states plainly that they are unsupported, and why.The rest were stale in the same direction:
app/proguard-rules.procom.my.televip.MainHook, a class that no longer exists — a no-op rule reading as if the legacy entry still needed protectingMETA-INF/xposed/module.propassets/xposed_init; there is no fallback, such frameworks simply will not load TeleVipTeleVipModulejavadocCHANGELOG.mdLegacyBackend; 3.7.0 is unreleased (latest tag is3.6.2), so it now describes what will actually ship, and the Nekogram X entry points atscope.listrather than the deletedxposedscopearrayTwo javadocs that read "libxposed API 100 / 102" now say 102, matching the declared
minApiVersion=102.Telegram verified build bumped to 12.10.1
Also bumps the official Telegram pin from
12.8.3 (69222)to12.10.1 (70382).Every symbol the module resolves by name was checked against Telegram's current source and none had changed —
TLRPC.Messagefields (id,from_id,message,flags,ttl),readAttachPath,Message.TLdeserialize,TL_messages_readHistory,TL_channels_readHistory,TL_messages_affectedMessages,TL_updateDeleteMessages/TL_updateDeleteChannelMessages, theMessagesController/ConnectionsManager/UserConfigaccessors, andPeerStoriesView$StoryItemHolder#allowScreenshots. No hook needed updating; the pin was simply behind.The bracketed number is
PackageInfo.versionCode, which Telegram builds ascode * 10 + channel(1/2 store, 9 direct) — so build 7038 → 70382. That encoding is now documented next to the map, since it is otherwise unreadable. It also cross-checks against the existing entries:69222→ build 6922 store,69229→ 6922 direct,69579→ 6957 direct.Only the
Telegramentry moved. The obfuscated forks (Nekogram, Cherrygram) were not touched — their R8 mapping tables are build-specific and can only be regenerated from the target APK, so silencing their mismatch warning would remove a signal that is doing its job.Verified while here
values/arrays.xmlare present inMETA-INF/xposed/scope.list,nekox.messengerincluded. (momo.gramis still absent, as it was commented out before — unchanged.)staticScope=falsealongsidescope.listis coherent: LSPosed readsscope.listeither way and treats it as the default suggestion whenstaticScopeis false.de.robvdependency and theapi.xposed.inforepository are fully gone, so the project resolves from Maven Central and Google Maven only.Test plan
./gradlew :app:assembleRelease— not run at the time this landed;dl.google.comwas blocked by the build environment's egress policy, and the Android SDK comes from that host. Since covered by the Build APK workflow added in Build the APK on GitHub, and survive a Telegram update #3.matches the verified buildrather than the drift warning.Changes are docs, a comment, a dead ProGuard rule and one string constant, so there is no compiled-code risk in this diff beyond the ProGuard rule removal (a
-keepfor a class that no longer exists is a no-op).