吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2548|回复: 21
上一主题 下一主题
收起左侧

[Android 原创] Solid Explorer_文件管理工具解锁完整版教程

  [复制链接]
跳转到指定楼层
楼主
syx594 发表于 2026-1-17 12:53 回帖奖励
本帖最后由 syx594 于 2026-1-17 14:18 编辑


反编译工具自行准备

老规矩先发编译:

搜索关键词“showProBadge”


选择第一个进入:

定位到isPro后:



修改里面代码:

[Java] 纯文本查看 复制代码
method public final isPro()Z
    .registers 4

    .line 1
    iget-object v0, p0, Lpl/solidexplorer/licensing/LicenseDetails;->a:Lpl/solidexplorer/licensing/LicenseState;

    .line 3
    sget-object v1, Lpl/solidexplorer/licensing/LicenseDetails$WhenMappings;->$EnumSwitchMapping$0:[I

    .line 5
    invoke-virtual {v0}, Ljava/lang/Enum;->ordinal()I

    .line 8
    move-result v0

    .line 9
    aget v0, v1, v0

    .line 11
    const/4 v1, 0x1

    .line 12
    if-eq v0, v1, :cond_12

    .line 14
    const/4 v2, 0x2

    .line 15
    if-eq v0, v2, :cond_12

    .line 17
    const/4 v0, 0x0

    .line 18
    return v0

    .line 19
    :cond_12
    return v1
.end method


修改为:
[Asm] 纯文本查看 复制代码
method public final isPro()Z
    .registers 4

    .line 1
   
    const/4 v0, 0x1

    return v0
.end method



[Java] 纯文本查看 复制代码
method public final isLicensed()Z
    .registers 4

    .line 1
    iget-object v0, p0, Lpl/solidexplorer/licensing/LicenseDetails;->a:Lpl/solidexplorer/licensing/LicenseState;

    .line 3
    sget-object v1, Lpl/solidexplorer/licensing/LicenseDetails$WhenMappings;->$EnumSwitchMapping$0:[I

    .line 5
    invoke-virtual {v0}, Ljava/lang/Enum;->ordinal()I

    .line 8
    move-result v0

    .line 9
    aget v0, v1, v0

    .line 11
    const/4 v1, 0x1

    .line 12
    if-eq v0, v1, :cond_15

    .line 14
    const/4 v2, 0x2

    .line 15
    if-eq v0, v2, :cond_15

    .line 17
    const/4 v2, 0x3

    .line 18
    if-eq v0, v2, :cond_15

    .line 20
    const/4 v0, 0x0

    .line 21
    return v0

    .line 22
    :cond_15
    return v1
.end method



修改为:
[Java] 纯文本查看 复制代码
method public final isLicensed()Z
    .registers 4

    .line 1
    const/4 v0, 0x1
        
    return v0

.end method



再次搜索“ checkLicenseOnBackend”


选择第一个进入
method private static checkLicenseOnBackend(Ljava/lang/String;)Z
    .registers 8

    .line 1
    :try_start_0
    invoke-static {}, Lpl/solidexplorer/licensing/SELicenseManager;->getServerLicenseObfuscator()Lpl/solidexplorer/preferences/PreferenceObfuscator;

    .line 4
    move-result-object v0

修改为:
method private static checkLicenseOnBackend(Ljava/lang/String;)Z
    .registers 8

    .line 1
        # --- 强制返回 true (永久授权) ---
    const/4 v0, 0x1
    return v0

        
    :try_start_0
    invoke-static {}, Lpl/solidexplorer/licensing/SELicenseManager;->getServerLicenseObfuscator()Lpl/solidexplorer/preferences/PreferenceObfuscator;

    .line 4
    move-result-object v0

再此文档里再次搜索“checkIAPLicense”
定位到该方法:
  
method checkIAPLicense(Lpl/solidexplorer/common/interfaces/AsyncReturn;Lpl/solidexplorer/preferences/PreferenceObfuscator;)Z

所有代码替换为:
.method checkIAPLicense(Lpl/solidexplorer/common/interfaces/AsyncReturn;Lpl/solidexplorer/preferences/PreferenceObfuscator;)Z
    .registers 4

    .line 1
    # 强制返回 true 并写入缓存

    const-string v0, "full_version"

    # 调用 cacheLicense 方法写入授权信息
    invoke-static {p2, v0}, Lpl/solidexplorer/licensing/SELicenseManager;->cacheLicense(Lpl/solidexplorer/preferences/PreferenceObfuscator;Ljava/lang/String;)V

    .line 2
    # 2. 强制返回 true,告诉系统“购买成功”
    const/4 v0, 0x1
    return v0

.end method

最终效果:




如果不想改的那么复杂,一条命令解决,找到如下代码:
.method public static getTrialTimeLeft()J
    .registers 4

    .line 1
    invoke-static {}, Lpl/solidexplorer/licensing/SELicenseManager;->getIapObfuscator()Lpl/solidexplorer/preferences/PreferenceObfuscator;

    .line 4
    move-result-object v0

    .line 5
    const-string v1, "trial_start_time"

    .line 7
    const-string v2, "0"

    .line 9
    invoke-virtual {v0, v1, v2}, Lpl/solidexplorer/preferences/PreferenceObfuscator;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;

    .line 12
    move-result-object v0

    .line 13
    invoke-static {v0}, Ljava/lang/Long;->parseLong(Ljava/lang/String;)J

    .line 16
    move-result-wide v0

    .line 17
    const-wide/32 v2, 0x48190800

    .line 20
    add-long/2addr v0, v2

    .line 21
    invoke-static {}, Ljava/lang/System;->currentTimeMillis()J

    .line 24
    move-result-wide v2

    .line 25
    sub-long/2addr v0, v2         修改为:add-long/2addr v0, v2

    .line 26
    const-wide/16 v2, 0x0

    .line 28
    invoke-static {v2, v3, v0, v1}, Ljava/lang/Math;->max(JJ)J

    .line 31
    move-result-wide v0

    .line 32
    return-wide v0
.end method
把减法  sub-long  改成加法  add-long ,这样时间越跑越长,永远不会过期。
原版APK:https://wwbpx.lanzoum.com/iLNwW3gc3lhi





免费评分

参与人数 8吾爱币 +3 热心值 +7 收起 理由
芽衣 + 1 用心讨论,共获提升!
Sotouch. + 1 + 1 棒,楼主最后一步没说要勾选自动签名,本人第一次操作,还好还有选项,哈哈 ...
jaffa + 1 谢谢@Thanks!
Issacclark1 + 1 谢谢@Thanks!
yxzzz666 + 1 我很赞同!
yunji + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
HL309966 + 1 我很赞同!
会成功的人 + 1 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

头像被屏蔽
推荐
会成功的人 发表于 2026-1-17 13:35
提示: 作者被禁止或删除 内容自动屏蔽
3#
VL008 发表于 2026-1-17 14:54
4#
51ed 发表于 2026-1-17 16:14
5#
doland 发表于 2026-1-17 16:59
很详细了,
6#
dxin11 发表于 2026-1-17 17:18
小白第一次成功破解
7#
abc1234567890 发表于 2026-1-17 18:43
能分享下修改的逻辑吗?
8#
fireworld 发表于 2026-1-17 20:01
😄 不错👍
9#
JiuJiHeZhen 发表于 2026-1-18 00:11
学无止境,感谢分享。
10#
qiangjie252 发表于 2026-1-18 06:43
很不错的学习了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - 52pojie.cn ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2026-2-7 21:09

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表