费了将近一周的时间,终于在Ubuntu下把破解Android应用的环境配置好并成功修改了测试应用,期间走了不少弯路,也遇到了不少意想不到的问题,所以有必要把这一过程记录下来。
系统:Ubuntu14.10 64位
假设本文所有工具全部解压在/home/tools目录下。
因为墙的原因,Android有些网站无法访问,所以有些时候需要翻墙才行。
一,JDK安装
这里偷了个懒,直接使用Ubuntu的软件中心安装好了JDK8的运行环境,但是因为软件中心没有安装OpenJDK所以还需要在终端输入sudo apt-get install openjdk-8-jdk安装OpenJDK以便Java能够编译程序。
最后终端输入java -version检测Java是否安装成功。
二,Android SDK安装
在http://developer.android.com/sdk/index.html 下载到Android SDK安装包,将安装包解压到tools文件夹下,tools文件夹里会出现android-sdk-linux文件夹。终端执行sudo gedit /etc/profile,然后开始设置环境变量,在配置文件中加入 export PATH=/home/lenovo/tools/android-sdk-linux/tools:$PATH 后保存退出。终端执行source /etc/profile使环境变量生效。
因为Linux版本的Android SDK只有最基本的内容,所以还需要运行SDK Manager下载好其他所需内容,下边开始完成这些内容的下载。
终端输入 android 打开SDK Manager,勾选Tools项所有内容和所需SDK版本的内容后点击Install…按钮,然后勾选Accept Licese后再点击Install按钮开始自动安装。
这里有个值得注意的地方,因为被墙的原因导致一些文件没办法下载,更新可能会卡死,这时有两种处理办法,一是直接挂VPN翻墙,二是用镜像代理的办法,在SDK Manager的菜单中选择Tools->Options…后按下图操作,就可以下载了,不过因为是镜像代理的方法,所以有些文件可能因为缺失之类的原因下不到,这时只要再将Options改回原来的设置就可以下载了。
在SDK其他部分下载好后,还需要配置一下环境变量。终端输入sudo gedit /etc/profile打开配置文件,加入export PATH=/home/lenovo/tools/android-sdk-linux/platform-tools:$PATH后保存退出,最后再在终端输入source /etc/profile让配置文件生效就可以了。
三,安装Android NDK
在http://developer.android.com/tools/sdk/ndk/index.html下载到Android NDK的安装包,解压后tools文件夹下会出现android-ndk-r8e文件夹。接着设置环境变量,终端执行sudo gedit /etc/profile打开配置文件后,加入export ANDROID_NDK=/home/lenovo/tools/android-ndk-r8e export PATH=/home/lenovo/tools/android-ndk-r8e:$PATH两句,保存后退出,然后在终端执行source /etc/profile使配置文件生效。
最后在终端下进入android-ndk-r8e/samples/hello-jni目录,输入ndk-build命令,如果配置成功的话,就会出现下图。
四,安装Eclipse
在http://www.eclipse.org/downloads/ 下载for Java Developers版本的Eclipse,解压至tools文件夹中即可。
五,安装CDT,ADT
这里使用Eclipse在线安装的方式。
在Eclipse菜单中选择Help->Install New Software…,在Work with栏中输入http://download.eclipse.org/tools/cdt/releases/juno 后按Enter键,过一会儿就会解析出所需的插件,全部选择后一路Next即可自动安装。
ADT的在线安装方式与CDT一样,不过在Work with栏中输入的地址是https://dl-ssl.google.com/android/eclipse/ ,如果解析不出来的话可以换成http://dl-ssl.google.com/android/eclipse/ 。
六,实机连接
考虑到运行效率的问题,这里使用实机作为载体而不是模拟器。
将手机的“USB调试”打开并连接到电脑上后,在终端输入lsusb查看输入,找到手机设备的ID,ID格式为XXXX:YYYY。然后在终端输入sudo gedit /etc/udev/rules.d/70-android.rules ,没有文件则创建,然后在打开的文件中输入 SUBSYSTEM=="usb",ATTR(idVendor)=="XXXX",MODE=“YYYY”,GROUP=“plugdev” 后保存退出,这其中的XXXX,YYYY就是ID中的XXXX,YYYY。
最后在Elcipse中新建一个Android应用并运行,如果实机成功连接的话会出现一个选择设备的窗口,选择后应用成功在实机上运行。
七,ApkTool安装
因为用到新版本API的Android工程全部都需要appcompat_v7工程辅助编译,所以旧版的apktool在反汇编的时候会出BUG,导致反编译后的文件没办法重建为APK。新版apktool修复了这一BUG,可以在 https://code.google.com/p/android-apktool/ 找到最新版。
先下载1.5.2版的解压至tools文件夹中新建的apktool文件夹中,再将新版解压至apktool文件夹中替换掉原文件。在终端输入sudo gedit /etc/profile 打开配置文件后添加 export PATH=/home/lenovo/tools/apktool/:$PATH 后保存退出,再在终端中输入source /etc/profile 使配置文件生效。
最后在终端中输入apktool -version ,如果出现2以上的版本则证明安装成功。
八,SignApk安装
这里用的是Android源码自带的signapk.jar文件进行签名,因为下载Android源码并重新编译十分费时费力,所以这里直接找了一个signapk.jar文件,只从Android源码文件中下载了testkey.pk8和testkey.x509.pem两个密钥文件。
为了使用方便,将这三个文件放在了tools目录下的同一个文件夹里,然后在这个文件夹下写了一个脚本并将脚本路径添加到环境变量中后就可以在终端下使用了。
终端下使用格式为:signapk [需要签名的apk文件名] [输出apk文件名]
九,dex2jar安装
在https://code.google.com/p/dex2jar/ 下载资源后解压到tools文件夹后,再添加PATH设置环境变量就可以了。具体操作是在终端输入sudo gedit /etc/profile 打开配置文件后添加 export PATH=/home/lenovo/tools/dex2jar-0.0.9.15/:$PATH 后保存退出,再在终端中输入source /etc/profile 使配置文件生效。
完成安装后可以删去无用的 .bat文件并把 .sh后缀名去掉方便使用,当然这一步也可以不做。
十,jd-gui安装
在http://jd.benow.ca/ 下载资源后解压到tools文件夹。如果是32位系统就可以直接使用了,但是64位系统还得做点配置工作。
以下内容我都尝试了一遍,但是不确定到底哪些是必要的,所以将尝试过程全部写出来,具体情况具体分析,按需要执行其中某些步骤。
1,因为网上有人反映gtk运行环境没有的话运行会出问题,所以要安装一下gtk的运行环境。
因为gtk我以前配过一次,手动配置的话其繁琐程度超乎想象,而且一不小心就会失败,所以这里用偷懒的办法,直接在ubuntu软件中心搜"gnome-core",然后安装最低限度的运行环境。
结果不成功。
2,在终端输入 file jd-gui 的话就会发现这个是32位应用程序,因此得装64位下的32位库文件。
首先,sudo apt-get update 更新软件包列表。
然后终端输入:
sudo dpkg --add-architecture i386
sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386
结果还是不管用。
3.在终端下运行jd-gui时提示“libgtk-x11-2.0.so.0"这个库有问题,估计是第一步哪里有问题,所以得重新安装一下这个库文件。
终端输入 sudo apt-get install libgtk2.0-0:i386 。
终于能够运行了。
注:因为配置的难点之一就是下载资源,所以将用到的一些资源链接附上。由于csdn只能传小于60MB的文件,因此放上网盘地址。
链接: http://pan.baidu.com/s/1c0guUPi 密码: f5o8