系统调试方法及Smali文件结构
实验环境:macOS 10.13.6
工具:Android Crack Tool / ApkTool,Android Crack Tool
中集成了了ApkTool
使用方法参考链接
实验概述
首先根据视频中所讲的,创建一个简单的apk。之后用Android Crack Tool
或ApkTool
反编译apk。反编译的过程中可能遇到smali代码无法顺利反编译的情况,可能的原因是sdk版本较高,此时可以尝试下载最新的ApkTool
。通过搜索smali代码中关键位置,找到要替换的字符串。
替换完毕后就是回编译。回编译的过程中可能遇到类似于如下报错:
I: Using Apktool 2.3.3
I: Checking whether sources has changed...
I: Smaling smali folder into classes.dex...
I: Checking whether resources has changed...
I: Building resources...
W: 回编译apk包的路径/res/layout/abc_screen_toolbar.xml:5: error: No resource identifier found for attribute 'keyboardNavigationCluster' in package 'android'
原因:ApkTool所用到的framework-res.apk不够新。
解决方法:通过执行如下命令,删除~/Library/apktool/framework/1.apk
文件。再次重新反编译,修改之后回编译问题解决。
apktool empty-framework-dir --force