欢迎来到天天文库
浏览记录
ID:8806969
大小:44.50 KB
页数:5页
时间:2018-04-08
《apk程序反编译、汉化、修改smali文件》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、apk程序反编译、汉化、修改smali文件这篇文章是针对Android系统的产品而言(而不是只针对原道产品),不过,我只有一台N5p那就发这儿了(貌视坛子里没有技术区)。如果是打酱油的高手路过,请继续去打酱油,当然也欢迎围观。vivi_an首发imp3.net,转载请注明出处。 主要目标:对于没有SD卡但想要安装运行那些只有SD卡支持的apk程序的(比如仙剑)。 次要目标:apk程序反编译、汉化、修改程序的数据读取和保存路径。 本文针对“思维导图ThinkingSpacePro2.16”的apk程序ThinkingSpacePro.apk进行修改。题外话,这程序人手配备一个,不错的东西。
2、一、相关工具(针对windows系统)JDK:http://www.oracle.com/technetwork/java/javase/downloads/index.html下载windows安装版的程序,安装后不用管它了。Apktool:http://code.google.com/p/android-apktool/下载apktool-install-windows-2.2_r01-3.tar.bz2和apktool1.3.2.tar.bz2,用winrar解压后把解压出来的文件都放在一个目录下,比如:E:/apktool/下(为简单起见,下文都用这个路径为apktool工作目录)。A
3、uto-Sign签名工具:N/A二、反编译 说要把apk“装冰箱(反编译)”分三步走:第一步:先把apk程序(这里用ThinkingSpacePro.apk)程序放到E:/apktool/下。第二步:启动windows的cmd.exe,用命令行cd到E:/apktool目录下。第三步:键入命令apktooldThinkingSpacePro.apk这个命令的格式是:apktooldxxx.apkoutput其中d参数用来指示工具要进行反编译操作,xxx.apk是要反编译的程序,output源码输出的路径。如果最后不指定输出的路径,默认是放在同目录下的xxx文件夹下(即apk程序名称去掉.ap
4、k后的名称)。如果你的apk文件名称中有空格,那键入命令时用双引号引起来,不过为方便起见,反编译之前把apk文件名中的空格都去掉先。运行反编译命令后会在同级目录下得到一个ThinkingSpacePro文件夹,源文件都在里面了。三、汉化 汉化这个比较简单,在反编译apk程序得到源码后,一般程序的文档都放在res目录下,都是些xml文档,用记事本之类的打开查看一下,一般都会比较容易看出来哪些是可以汉化的文本。这个就不去弄它了。可能不同程序还有不一样的,反正英语差点,汉化这种事我也不去深究了。你如果只想汉化的话,进res文件夹找找,完成汉化后就可以直接重新编译程序了(最后讲编译),不用太多的编程
5、知识。思维导图本身支持多国语言(都在源文件的res文件夹里),所以也用不着汉化了。但大致的汉化过程就是这样了。 另外貌视还有AndroidResEdit之类的专用汉化软件,不用搞什么反编译,用起来可能更简单。四、SDcardtoFlash 对于N5p,app2sd只是一个传说,不过sd2flash下面就可以实现。用SD卡玩机的人可以无视。 下面这个是本文的重点。目的就是要修改程序的默认数据读取和保存路径,主要针对那些必须有SD卡才能使用的程序。比如说一个游戏它分为主程序和游戏的关卡数据。主程序可能只有1M,但游戏关卡数据可能是几十甚至上百M,这类游戏一般是主程序安装在内存中,而关卡数据会
6、要求你安装或下载到SD卡上。如果你没有SD卡,那就玩不成了。我之所以要改它的路径,就是不想让它占我的SD卡,N5p不是自带8G(实际好像只有6.5G)Flash闪存么,那为什么不用它?下面的修改就是要欺骗apk程序,我们的Flash闪存就是程序你要的SD卡。 正式修改时,除了要修改所有源文件(主要是.smali程序源文件)中的/sdcard路径,使之指向/flash外,还要修改含有 Environment.getExternalStorageState和Environment.getExternalStorageDirectory 的源文件,前者用于检测是否安装SD卡,后者获取SD卡的路径。
7、 那么从头来修改思维导图ThinkingSpacePro2.16的数据读写路径。原版程序你必须要有SD卡才能正常保存你的数据,修改之后,所有数据读取、保存都针对N5p自己的Flash闪存,从而解放SD卡。用apktool反编译ThinkingSpacePro.apkapktooldThinkingSpacePro.apk反编译后得到ThinkingSpacePro文件夹,存放着程序源文件。使用U
此文档下载收益归作者所有