Skip to content

Retire the last references to the deleted legacy Xposed path - #2

Merged
2B-4G10 merged 1 commit into
mainfrom
claude/publish-earlier-changes-8rlgkq
Sep 16, 2026
Merged

2B-4G10 merged 1 commit into
mainfrom
claude/publish-earlier-changes-8rlgkq

Conversation

@2B-4G10

@2B-4G10 2B-4G10 commented Sep 16, 2026 •

Copy link
Copy Markdown
Owner

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:

File Was
app/proguard-rules.pro kept com.my.televip.MainHook, a class that no longer exists — a no-op rule reading as if the legacy entry still needed protecting
META-INF/xposed/module.prop promised a fallback to assets/xposed_init; there is no fallback, such frameworks simply will not load TeleVip
TeleVipModule javadoc said the legacy entry was "still shipped"
CHANGELOG.md 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

Two 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) 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 (id, from_id, message, flags, ttl), readAttachPath, Message.TLdeserialize, TL_messages_readHistory, TL_channels_readHistory, TL_messages_affectedMessages, TL_updateDeleteMessages / TL_updateDeleteChannelMessages, the MessagesController / ConnectionsManager / UserConfig accessors, and PeerStoriesView$StoryItemHolder#allowScreenshots. No hook needed updating; the pin was simply behind.

The bracketed number is PackageInfo.versionCode, which Telegram builds as code * 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 Telegram entry 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

  • Scope migration was faithful: all 22 packages from the removed values/arrays.xml are present in META-INF/xposed/scope.list, nekox.messenger included. (momo.gram is still absent, as it was commented out before — unchanged.)
  • staticScope=false alongside scope.list is coherent: LSPosed reads scope.list either way and treats it as the default suggestion when staticScope is false.
  • The de.robv dependency and the api.xposed.info repository 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.com was 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.
  • Confirm the README table matches reality on a device: module visible and loading under LSPosed 1.10+ / Vector 2.2, and not advertised under LSPosed 1.9.x.
  • Startup log on official Telegram 12.10.1 should read matches the verified build rather 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 -keep for a class that no longer exists is a no-op).

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
@2B-4G10
2B-4G10 merged commit 8c31dc3 into main Sep 16, 2026
2B-4G10 added a commit that referenced this pull request Sep 25, 2026
Retire the last references to the deleted legacy Xposed path
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants