TeleVip v1.0.1
Version numbering restarts at 1.0.1 (versionCode 341, so it still installs over 3.7.0).
Fixed
- Tapping Join in the Ghost Mode dialog crashed Nekogram, and Dismiss left the Ghost Mode
button dead. On Nekogram 12.10.3LaunchActivity.frameLayoutresolved to the tablet-only
shadowTablet, which is null on phones: showing the page failed and hiding it threw from
inside the dialog's click handler. The field is now found as the viewonCreatehands to
setContentView, the wrapper checks it really is the window's content view (and falls back to
that view when it is not),show/hidecan no longer throw, and dialog button actions run
inside a guard so a failure is logged instead of taking the client down. - The dialog button listener no longer depends on the listener method's name, and answers
equals/hashCodeproperly instead of returning null.
Restored on obfuscated (R8-renamed) builds
Every feature below was inactive on Nekogram 12.10.3 because its hook point was renamed,
inlined, reordered or narrowed. Each is now found by what the code does, checked against the
12.10.3 bytecode in NekogramApkTest:
- Hide pinned messages —
updatePinnedMessageView(R8 swapped its parameters to
(int, boolean); the real order is now published to the hook),createPinnedMessageViewand
thepinnedMessageViewfield. - Remove content-saving restrictions —
hasSelectedNoforwardsMessage. - Save edits history —
fillMessageMenu,processSelectedOption,selectedObject. - Show deleted messages —
measureTimeand the time-label fields it writes
(currentTimeString,timeWidth,timeTextWidth,Theme.chat_timePaint). - Secret media save — the chat's
didPressImage(R8 dropped its unused flag). - Save protected stories —
StoryItemHolder.allowScreenshots. - Disable stories —
hasStories(long)is hooked on every client, sincehasStories()is
inlined away in some builds. - Always save media —
setIsAboutToSwitchToIndexandgalleryButton;openPhotoand
setParentActivityfall back to the one overload R8 keeps. - Chat and profile menu entries (To the beginning, To the message, Approximate creation
date) —ActionBarMenuItemand itsaddSubItem/lazilyAddSubItem,headerItem,
otherItem,createActionBarMenu. Clicks are now routed from each screen's live menu listener
instead of by class name, which renamed builds do not keep. - Show user ID / hide online status on profiles —
updateProfileData,userId,chatId,
nameTextView,onlineTextView, andSimpleTextView's text methods (found by shape when
renamed). - Menu and settings icons fall back to the resource table when
R$drawablehas been stripped.
The resolver gained the matching tools: parameter-order tolerance, "called by" and
"stores a new anonymous subclass" facts, subtype-narrowed fields, and class lookup by one
distinctive method. The fingerprint version is bumped, so a cached mapping from the previous
module version is discarded and rebuilt on first start.
Install
- Download TeleVip-…-debug.apk below (the release APK is only attached when it is signed) and install it.
- In LSPosed 1.10+ or Vector 2.2+: Modules → enable TeleVip → tick your Telegram clients.
- Force stop the client and reopen it.