吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 20088|回复: 47
收起左侧

[Android] 起点读书7.9.57(自动签到)+方法

[复制链接]
小骚 发表于 2020-9-26 07:26
本帖最后由 小骚 于 2020-10-22 01:02 编辑

更新7.9.57版本
应用名:起点读书
版本:7.9.57 (500)
包名:com.qidian.QDReader

修改内容:
1.仅添加一行代码实现自动签到(再也不会忘记签到了)
测试gif:



忘记说了
未签名,需核心破解
未签名,需核心破解
未签名,需核心破解


当然自己签名也可以,出问题别找我

下载地址:https://xihan.lanzoui.com/b03z05rwd密码:xihan




2020-10-22
大概说一下怎么添加自动签到
首先找到签到按钮的点击事件(开发者助手抓布局)
然后确定在“com.qidian.QDReader.ui.view.bookshelfview.CheckInReadingTimeView”类的b方法
[Asm] 纯文本查看 复制代码
method private b(Lcom/qidian/QDReader/repository/entity/checkin/CheckInData;Z)V
    .registers 10
    .param p1  # Lcom/qidian/QDReader/repository/entity/checkin/CheckInData;
        .annotation build Landroidx/annotation/NonNull;
        .end annotation
    .end param

    .prologue
    const/4 v6, 0x1

    .line 274
    invoke-direct {p0, v6}, Lcom/qidian/QDReader/ui/view/bookshelfview/CheckInReadingTimeView;->setBtnStyle(Z)V

    .line 275
    iget-object v0, p0, Lcom/qidian/QDReader/ui/view/bookshelfview/CheckInReadingTimeView;->c:Landroid/widget/TextView;

    const v1, 0x7f0a1029   //字符串 "已连签"

    invoke-virtual {v0, v1}, Landroid/widget/TextView;->setText(I)V

    .line 276
    iget-object v0, p0, Lcom/qidian/QDReader/ui/view/bookshelfview/CheckInReadingTimeView;->d:Landroid/widget/TextView;

    invoke-virtual {p0}, Lcom/qidian/QDReader/ui/view/bookshelfview/CheckInReadingTimeView;->getContext()Landroid/content/Context;

    move-result-object v1

    const v2, 0x7f0a0fd3    //字符串 "%1$s天"

    new-array v3, v6, [Ljava/lang/Object;

    const/4 v4, 0x0

    invoke-virtual {p1}, Lcom/qidian/QDReader/repository/entity/checkin/CheckInData;->getNoBrokenTime()I

    move-result v5

    invoke-static {v5}, Ljava/lang/String;->valueOf(I)Ljava/lang/String;

    move-result-object v5

    aput-object v5, v3, v4

    invoke-virtual {v1, v2, v3}, Landroid/content/Context;->getString(I[Ljava/lang/Object;)Ljava/lang/String;

    move-result-object v1

    invoke-virtual {v0, v1}, Landroid/widget/TextView;->setText(Ljava/lang/CharSequence;)V

    .line 277
    iget-object v1, p0, Lcom/qidian/QDReader/ui/view/bookshelfview/CheckInReadingTimeView;->f:Landroid/widget/TextView;

    invoke-virtual {p1}, Lcom/qidian/QDReader/repository/entity/checkin/CheckInData;->getButtonTxt()Ljava/lang/String;

    move-result-object v0

    invoke-static {v0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z

    move-result v0

    if-eqz v0, :cond_66    //这个判断如果字符串等于"已连签xx天"就跳转到标签66   没有签到就走下面的

    invoke-virtual {p0}, Lcom/qidian/QDReader/ui/view/bookshelfview/CheckInReadingTimeView;->getResources()Landroid/content/res/Resources;

    move-result-object v0

    const v2, 0x7f0a0a43   //字符串 "签到领奖"

    invoke-virtual {v0, v2}, Landroid/content/res/Resources;->getString(I)Ljava/lang/String;

    move-result-object v0
 
    从上面直接走下来就会让按钮显示签到领奖,也有可能只显示签到,不在本类里面 不管它

    :goto_40
    invoke-virtual {v1, v0}, Landroid/widget/TextView;->setText(Ljava/lang/CharSequence;)V

    .line 278
    iget-object v0, p0, Lcom/qidian/QDReader/ui/view/bookshelfview/CheckInReadingTimeView;->e:Lcom/qd/ui/component/widget/roundwidget/QDUIRoundLinearLayout;

    new-instance v1, Lcom/qidian/QDReader/ui/view/bookshelfview/n;

    invoke-direct {v1, p0}, Lcom/qidian/QDReader/ui/view/bookshelfview/n;-><init>(Lcom/qidian/QDReader/ui/view/bookshelfview/CheckInReadingTimeView;)V

    invoke-virtual {v0, v1}, Lcom/qd/ui/component/widget/roundwidget/QDUIRoundLinearLayout;->setOnClickListener(Landroid/view/View$OnClickListener;)V    //这里就是点击事件 设置setOnClickListener

    .line 279
    if-eqz p2, :cond_65  //这个不用在意

    .line 281
    iget-object v0, p0, Lcom/qidian/QDReader/ui/view/bookshelfview/CheckInReadingTimeView;->e:Lcom/qd/ui/component/widget/roundwidget/QDUIRoundLinearLayout;

    invoke-direct {p0, v0, v6}, Lcom/qidian/QDReader/ui/view/bookshelfview/CheckInReadingTimeView;->a(Landroid/view/View;I)V

    .line 283
    :cond_65
    return-void

    .line 277
    //这里是获得按钮的文本  走完之后跳转到goto_40
    :cond_66

    invoke-virtual {p1}, Lcom/qidian/QDReader/repository/entity/checkin/CheckInData;->getButtonTxt()Ljava/lang/String;

    move-result-object v0

    goto :goto_40
.end method


我的做法以及是怎么插入一个Toast的
[Asm] 纯文本查看 复制代码
method private b(Lcom/qidian/QDReader/repository/entity/checkin/CheckInData;Z)V
    .registers 10
    .param p1  # Lcom/qidian/QDReader/repository/entity/checkin/CheckInData;
        .annotation build Landroidx/annotation/NonNull;
        .end annotation
    .end param

    .prologue
    const/4 v6, 0x1

    .line 274
    invoke-direct {p0, v6}, Lcom/qidian/QDReader/ui/view/bookshelfview/CheckInReadingTimeView;->setBtnStyle(Z)V

    .line 275
    iget-object v0, p0, Lcom/qidian/QDReader/ui/view/bookshelfview/CheckInReadingTimeView;->c:Landroid/widget/TextView;

    const v1, 0x7f0a1029   //字符串 "已连签"

    invoke-virtual {v0, v1}, Landroid/widget/TextView;->setText(I)V

    .line 276
    iget-object v0, p0, Lcom/qidian/QDReader/ui/view/bookshelfview/CheckInReadingTimeView;->d:Landroid/widget/TextView;

    invoke-virtual {p0}, Lcom/qidian/QDReader/ui/view/bookshelfview/CheckInReadingTimeView;->getContext()Landroid/content/Context;

    move-result-object v1

    const v2, 0x7f0a0fd3    //字符串 "%1$s天"

    new-array v3, v6, [Ljava/lang/Object;

    const/4 v4, 0x0

    invoke-virtual {p1}, Lcom/qidian/QDReader/repository/entity/checkin/CheckInData;->getNoBrokenTime()I

    move-result v5

    invoke-static {v5}, Ljava/lang/String;->valueOf(I)Ljava/lang/String;

    move-result-object v5

    aput-object v5, v3, v4

    invoke-virtual {v1, v2, v3}, Landroid/content/Context;->getString(I[Ljava/lang/Object;)Ljava/lang/String;

    move-result-object v1

    invoke-virtual {v0, v1}, Landroid/widget/TextView;->setText(Ljava/lang/CharSequence;)V

    .line 277
    iget-object v1, p0, Lcom/qidian/QDReader/ui/view/bookshelfview/CheckInReadingTimeView;->f:Landroid/widget/TextView;

    invoke-virtual {p1}, Lcom/qidian/QDReader/repository/entity/checkin/CheckInData;->getButtonTxt()Ljava/lang/String;

    move-result-object v0

    invoke-static {v0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z

    move-result v0

    if-eqz v0, :cond_66    //这个判断如果字符串等于"已连签xx天"就跳转到标签66   没有签到就走下面的

    invoke-virtual {p0}, Lcom/qidian/QDReader/ui/view/bookshelfview/CheckInReadingTimeView;->getResources()Landroid/content/res/Resources;

    move-result-object v0

    const v2, 0x7f0a0a43   //字符串 "签到领奖"

    invoke-virtual {v0, v2}, Landroid/content/res/Resources;->getString(I)Ljava/lang/String;

    move-result-object v0
 
    从上面直接走下来就会让按钮显示签到领奖,也有可能只显示签到,不在本类里面 不管它

    :goto_40
    invoke-virtual {v1, v0}, Landroid/widget/TextView;->setText(Ljava/lang/CharSequence;)V

    .line 278
    iget-object v0, p0, Lcom/qidian/QDReader/ui/view/bookshelfview/CheckInReadingTimeView;->e:Lcom/qd/ui/component/widget/roundwidget/QDUIRoundLinearLayout;

    new-instance v1, Lcom/qidian/QDReader/ui/view/bookshelfview/n;

    invoke-direct {v1, p0}, Lcom/qidian/QDReader/ui/view/bookshelfview/n;-><init>(Lcom/qidian/QDReader/ui/view/bookshelfview/CheckInReadingTimeView;)V

    invoke-virtual {v0, v1}, Lcom/qd/ui/component/widget/roundwidget/QDUIRoundLinearLayout;->setOnClickListener(Landroid/view/View$OnClickListener;)V    //这里就是点击事件 设置setOnClickListener

    invoke-virtual {v0}, Landroid/view/View;->performClick()Z  //这一行就是代码主动去调用控件的点击事件 跟在setOnClickListener下面

    //Toast第一个参数获得上下文
    invoke-virtual {p0}, Lcom/qidian/QDReader/ui/view/bookshelfview/CheckInReadingTimeView;->getContext()Landroid/content/Context;

    move-result-object v0

    //Toast第二个参数也就是text 显示的文本
    const-string v1, "自动签到完成"

 //Toast第三个参数 Toast.LENGTH_LONG 也就是提示消息的长短 1或0
    const/4 v2, 0x1
   
    invoke-static {v0, v1, v2}, Landroid/widget/Toast;->makeText(Landroid/content/Context;Ljava/lang/CharSequence;I)Landroid/widget/Toast;

    move-result-object v0

    //调用Show展示出来
    invoke-virtual {v0}, Landroid/widget/Toast;->show()V

    .line 279
    if-eqz p2, :cond_65  //这个不用在意

    .line 281
    iget-object v0, p0, Lcom/qidian/QDReader/ui/view/bookshelfview/CheckInReadingTimeView;->e:Lcom/qd/ui/component/widget/roundwidget/QDUIRoundLinearLayout;

    invoke-direct {p0, v0, v6}, Lcom/qidian/QDReader/ui/view/bookshelfview/CheckInReadingTimeView;->a(Landroid/view/View;I)V

    .line 283
    :cond_65
    return-void

    .line 277
    //这里是获得按钮的文本  走完之后跳转到goto_40
    :cond_66

    invoke-virtual {p1}, Lcom/qidian/QDReader/repository/entity/checkin/CheckInData;->getButtonTxt()Ljava/lang/String;

    move-result-object v0

    goto :goto_40
.end method


附带一张转为java的图片更直观
Screenshot_2020-10-22-00-22-19-25_9e8df3d0c7c1f50.png
然后一路保存就可以了
老是忘记录屏,第三次才录到
效果(这个gif好像慢放了一样,实际上也就一眨眼):



如有讲的不对的地方,请斧正

免费评分

参与人数 8吾爱币 +8 热心值 +7 收起 理由
x088 + 1 + 1 谢谢@Thanks!
tianying + 1 + 1 我很赞同!
往昔神 + 1 + 1 谢谢@Thanks!
dengpinger + 1 + 1 谢谢@Thanks!
lxhyjr + 1 + 1 谢谢@Thanks!
gaoming513 + 1 + 1 谢谢@Thanks!
yjjjushi + 1 + 1 我很赞同!
芽衣 + 1 需要用工具一键去除签名校验才能安装。

查看全部评分

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

 楼主| 小骚 发表于 2020-10-8 16:36
cwjalsy 发表于 2020-10-8 02:13
我比较想知道怎么添加这代码

大概就是找到那个按钮的点击事件,在后面添加一个模拟点击的代码
 楼主| 小骚 发表于 2020-10-7 13:07

我用了那么久,都不知道起点的广告啥样的。发张截图?
萌新大D 发表于 2020-9-26 07:42
无名哥哥126 发表于 2020-9-26 08:03
谢谢分享!
Volleyin 发表于 2020-9-26 08:04
谢谢大佬,又可以看书了
斩风 发表于 2020-9-26 08:08
还不错,感谢分享
又如何 发表于 2020-9-26 08:14
多谢分享,支持一下
quzhaojia 发表于 2020-9-26 08:18
那楼主就签名一下呗。  
Tath 发表于 2020-9-26 08:30
谢谢分享
可乐渴了 发表于 2020-9-26 08:33
哈哈,好东西啊
ghy197674 发表于 2020-9-26 08:40
谢谢分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-24 14:01

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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