吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 18613|回复: 30
收起左侧

[Android 原创] smalidea的坑,注意了

[复制链接]
大胖 发表于 2016-12-28 10:29
本帖最后由 大胖 于 2019-1-4 21:34 编辑

用过smalidea动态调试smali的朋友应该有遇过一个问题:

乱跳!总不能照着指令一步步走!或Watch不了寄存器!

smalidea官网有提到,IDEA的版本必须14.1或以上,才能单步调试,否则是按照行号(.line)执行而非smali指令。
原文:
捕获.PNG
但这里有坑!实际上只有IDEA 14.1能单步,更高版本都不行
这是我测试多个版本的的结论
但IDEA 14.1还是无法watch寄存器...

我花了几天测试各版本的IDEA / Android Studio 后发现smalidea都有bug(不是无法单步 不然就是无法watch)
结果发现作者其实有修复smalidea的bug,但只更新源码而为释出插件成品(作者提供的插件成品是有bug的旧版)
因此我下载最新源码自己编译了成品(https://pan.baidu.com/s/1BYBrZudKh8caIQuwdkEu4Q提取码8pcf)
测试后发现可以在IDEA15.0.6 正常运作(其他版本懒得测试了)
如果不想踩坑,请直接下载IDEA15.0.6 + 我编译的smalidea

另外调试时DDMS请开着 听我的,省麻烦(port设置8700,不需要adb forward)

要好好用个smalidea真是折腾阿
希望别再出问题啦

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
fu90 + 1 + 1 我很赞同!

查看全部评分

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

wsgh 发表于 2017-1-5 20:06
大胖 发表于 2017-1-2 16:24
有, 使ro.debuggable为1 , 所有进程就都能被调试.
使ro.debuggable为1, 有4种手段:
1.使用虚拟机(例如g ...

大神,还有一个问题想请教你:我经常需要在有源码的情况下,debug一个release的apk,但是使用setpropex搞定后,发现其中只能看到一个对象的成员变量的值,无法看到方法执行过程中的局部变量的值,不知道你有没有遇到过呢?之前使用Eclipse和现在用AndroidStudio都存在此问题。但是直接debug run出来的没啥问题。
 楼主| 大胖 发表于 2017-1-2 16:24
本帖最后由 大胖 于 2017-1-2 16:31 编辑
wsgh 发表于 2016-12-31 15:40
请问一个debugable为false的apk有没有什么办法能直接调试啊?DDMS里不显示啊

有, 使ro.debuggable为1 , 所有进程就都能被调试.
使ro.debuggable为1, 有4种手段:
1.使用虚拟机(例如genymotion , 它的系统的ro.debuggable为1)
2.使用xposed 的BuildProp Enhancer或Xinstaller模块 可以动态修改ro.debuggable
3.自己编译安卓系统 以修改ro.debuggable
4.使用setpropex 也可以动态修改ro.debuggable
头像被屏蔽
sstm 发表于 2016-12-30 11:38
zhanghao88 发表于 2016-12-30 15:27 来自手机
多谢提醒,以后试试
summon 发表于 2016-12-30 16:25
之前调试确实遇到过这个坑,升级到android studio2.2.1后单步就不好使了。
小理想 发表于 2016-12-30 17:55
谢谢提醒,下载试试
chaowei007 发表于 2016-12-31 10:58
那我现在用的是Android Studio 2.2.1 怎么办?
wsgh 发表于 2016-12-31 15:40
请问一个debugable为false的apk有没有什么办法能直接调试啊?DDMS里不显示啊
 楼主| 大胖 发表于 2017-1-2 16:25
chaowei007 发表于 2016-12-31 10:58
那我现在用的是Android Studio 2.2.1 怎么办?

你这版本如果不行  就用IDEA14.1
wsgh 发表于 2017-1-3 15:00
大胖 发表于 2017-1-2 16:24
有, 使ro.debuggable为1 , 所有进程就都能被调试.
使ro.debuggable为1, 有4种手段:
1.使用虚拟机(例如g ...

感谢大神指点~之前只是了解到是ro.debuggable这个值的问题,但是我曾经直接修改build.prop,但是忘记是因为没有找到这个值,还是加了这个值没有效果,反正最终没有成功。
使用xposed没想到这个,得去研究研究。
至于你说的setpropex,没听说过,我也去研究研究~
谢了~
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

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

GMT+8, 2024-5-4 22:43

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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