APK文件的解包打包和修改

合集下载

apk编辑

apk编辑

一、相关工具(针对windows系统)JDK:/technetwork/java/javase/downloads/index.html 下载windows安装版的程序,安装后不用管它了。

Apktool:/p/android-apktool/下载apktool-install-windows-2.2_r01-3.tar.bz2和apktool1.3.2.tar.bz2,用winrar 解压后把解压出来的文件都放在一个目录下,比如:E:/apktool/ 下(为简单起见,下文都用这个路径为apktool工作目录)。

Auto-Sign签名工具:N/A二、反编译说要把apk“装冰箱(反编译)”分三步走:第一步:先把apk程序(这里用ThinkingSpacePro.apk)程序放到 E:/apktool/ 下。

第二步:启动windows的cmd.exe,用命令行cd到 E:/apktool 目录下。

第三步:键入命令apktool d ThinkingSpacePro.apk这个命令的格式是:apktool d xxx.apk output其中 d 参数用来指示工具要进行反编译操作,xxx.apk是要反编译的程序,output 源码输出的路径。

如果最后不指定输出的路径,默认是放在同目录下的xxx 文件夹下(即apk程序名称去掉.apk后的名称)。

如果你的apk文件名称中有空格,那键入命令时用双引号引起来,不过为方便起见,反编译之前把apk 文件名中的空格都去掉先。

运行反编译命令后会在同级目录下得到一个 ThinkingSpacePro 文件夹,源文件都在里面了。

三、汉化汉化这个比较简单,在反编译apk程序得到源码后,一般程序的文档都放在res目录下,都是些xml文档,用记事本之类的打开查看一下,一般都会比较容易看出来哪些是可以汉化的文本。

这个就不去弄它了。

可能不同程序还有不一样的,反正英语差点,汉化这种事我也不去深究了。

apk文件的解包打包和修改

apk文件的解包打包和修改

APK文件的解包打包和修改相信每位玩‎机的人对APK文件都不陌生。

你可能每天都‎与APK文件打交道,无论是安装和卸载有用‎的应用工具、插件、好玩的游戏等等。

你‎可曾知道这些每天都伴随着你的APK文件是‎什么吗?怎样对它们作些修改呢?比如说:对‎英文版进行汉化、修改功能、修改文字描述、‎去掉广告等等。

本文介绍APK的基本知识、‎结构、APK文件的解包、打包及签名,以及‎对APK文件的常规修改。

1.APK文‎件简介APK是Android Pac‎k age的缩写,即即Android ap‎p lication package 文件或‎A ndroid安装包。

每个要安装到And‎r oid平台的应用都要被编译打包为一个单‎独的文件,后缀名为.apk。

APK文件是‎用专业软件eclipse编译生成的文件包‎,其中包含了应用的二进制代码、资源、配置‎文件等。

通过将APK文件直接传到Andr‎o id手机中执行即可安装。

APK文件其实‎就是zip格式,但其扩展名被改为apk,‎用解压软件可以直接打开。

通过WinRAR‎或UnZip解压后,你会看到有几个文件和‎文件夹。

一个典型的APK文件通常有下列内‎容组成:AndroidManifest‎.xml 程序全局配置文件classe‎s.dex Dalvik字节码r‎e sources.arsc 编译后‎的二进制资源文件META-INF\ 该‎目录下存放的是签名信息res\ 该目‎录存放资源文件assets\ 该目录可‎以存放一些配置文件下面对这些文件和目‎录做些基本的注释和介绍。

• Andro‎i dManifest.xml该文件是每‎个应用程序都必须定义和包含的文件,它描述‎了应用程序的名字、版本、权限、引用的库文‎件等等信息。

需要解包后才能加以阅读。

•‎classes.dex文件clas‎s es.dex是java源码编译后生成的‎j ava字节码文件。

dex是Dalvik‎VM executes的全称,即And‎r oid Dalvik执行程序,并非Ja‎v a ME的字节码而是Dalvik字节码‎。

APK去除多余权限的方法

APK去除多余权限的方法

一.解包(注意把APK名字改成纯英文,不要有空格和各种符号,否则打包时会报错):二.修改AndroidManifest.xml:如果应用不需要编写和收发短信,删除以下内容:<uses-permission android:name="android.permission.WRITE_SMS" /><uses-permission android:name="android.permission.RECEIVE_SMS" /><uses-permission android:name="android.permission.SEND_SMS" />如果应用不需要收彩信,删除以下内容:<uses-permission android:name="android.permission.RECEIVE_MMS" />如果应用不需要收WAP推送内容,删除以下:<uses-permission android:name="android.permission.RECEIVE_WAP_PUSH" />如果应用不需要打电话,删除以下内容:<uses-permission android:name="android.permission.CALL_PHONE" />如果应用没有上网必要,删除以下三项:<uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />。

反编译APK文件的三种方法(转)

反编译APK文件的三种方法(转)

反编译APK⽂件的三种⽅法(转)因为学习Android编程的需要,有时我们需要对⽹络上发布的应⽤项⽬进⾏学习,可是Android项⽬⼀般是通过APK⽂件进⾏发布的,我们看不到源代码,嘿嘿,办法总会有的,⽽且不⽌⼀个...ps:对于软件开发⼈员来说,保护代码安全也是⽐较重要的因素之⼀,不过⽬前来说Google Android平台选择了Java Dalvik VM的⽅式使其程序很容易破解和被修改,⾸先APK⽂件其实就是⼀个MIME为ZIP的压缩包,我们修改ZIP后缀名⽅式可以看到内部的⽂件结构,类似Sun JavaMe的Jar压缩格式⼀样,不过⽐较去别的是Android上的⼆进制代码被编译成为Dex的字节码,所有的Java⽂件最终会编译进该⽂件中去,作为托管代码既然虚拟机可以识别,那么我们就可以很轻松的反编译。

所有的类调⽤、涉及到的⽅法都在⾥⾯体现到,⾄于逻辑的执⾏可以通过实时调试的⽅法来查看,当然这需要借助⼀些我们⾃⼰编写的跟踪程序。

Google最然在Android Market上设置了权限保护app-private⽂件夹的安全,但是最终我们使⽤修改定值的系统仍然可以获取到需要的⽂件。

⼀、dexdump⽅法dexdump是emulator⾃带提供的查看dex⽂件的⼯具,可使⽤类似这样的命令将dex⽂件dump到txt⽂件中:D:\Program Files\android-sdk-windows-1.6_r1\platforms\android-1.6\tools>dexdump.exe -d classes.dex > spk.dump.txt 得到的⽂件内容,描述了类的信息,但实在是不好读啊~~~~⼆、dex2jar + XJad ⽅法该⽅法是使⽤dex2jar.jar包,将classes.dex⽂件解包成jar,在通过XJad(或者其他class反编译⼯具)进⾏java反编译。

如:1、dex2jar.bat d:\play\classes.dex默认的输出路径同classes.dex,⽣成的⽂件名为classes.dex.dex2jar.jar2、使⽤XJad反编译该jar包之后的使⽤⽅法,⼤家都懂的:)该⽅法的好处在于,通过XJad反编译后,⼤家可直接开到java源⽂件,缺点在于只能反编译出开发时的java⽂件,⽽开发时使⽤的lib包不能反编译出来。

apk编辑器使用教程

apk编辑器使用教程

apk编辑器使用教程APK编辑器是一款非常有用的工具,可以用来编辑和修改安卓应用程序的资源文件和源代码。

无论是想要修改应用程序的图标、布局,还是想要更改应用程序的功能或者增加一些新的功能,APK编辑器都可以帮助您实现。

本教程将向您介绍如何使用APK编辑器来编辑安卓应用程序。

第一步:下载和安装APK编辑器首先,您需要从官方网站或其他可信的来源下载APK编辑器的安装文件。

下载完成后,运行安装程序进行安装。

第二步:选择要编辑的APK文件启动APK编辑器后,您将看到一个简单的用户界面。

点击屏幕上的“选择APK”按钮,然后选择您想要编辑的APK文件。

请注意,您需要有这个APK文件的访问权限。

第三步:导入APK文件当您选择了要编辑的APK文件后,APK编辑器将开始导入APK文件。

这可能需要一些时间,具体取决于APK文件的大小。

一旦导入完成,您将在屏幕上看到一个列表,显示了APK文件中的所有资源文件和源代码。

第四步:编辑资源文件现在,您可以开始编辑APK文件中的资源文件。

例如,如果您想要更改应用程序的图标,可以在列表中找到相关的资源文件,并进行修改。

将鼠标悬停在资源文件上,然后点击右键,选择“编辑”选项。

在弹出的窗口中,您可以选择上传新的图标文件,或者使用内置的图标编辑工具进行修改。

同样地,您可以编辑应用程序的布局文件、字符串资源、颜色和样式等。

只需找到相应的资源文件,然后按照需要进行修改。

第五步:编辑源代码如果您想要更改应用程序的功能或者增加新的功能,您可以编辑APK文件中的源代码。

找到您想要编辑的源代码文件,然后将鼠标悬停在上面,并点击右键选择“编辑”选项。

在弹出的窗口中,您可以对源代码进行修改,并保存更改。

第六步:保存编辑后的APK文件当您完成了对资源文件和源代码的编辑后,点击屏幕上的“保存”按钮,APK编辑器会将更改保存到新的APK文件中。

您可以选择保存到本地或者其他目标路径。

第七步:安装和测试编辑后的APK文件一旦保存了编辑后的APK文件,您可以将其传输到您的安卓设备上,并安装它进行测试。

apktool用法

apktool用法

apktool用法
Apktool 是一款开源、跨平台的反编译工具,可以将Android应用程序(.apk
文件)解包为可编辑源代码,然后将编辑源代码打包回.apk文件。

Apktool可以对Android应用进行反编译、修改、重新打包,支持多种Android手
机的系统,包括Android 2.0,Android 4.0和更高版本,广泛应用于安卓应用的安
全分析、混淆、修改等方面。

Apktool的使用步骤非常简单,首先可以下载工具安装包。

将安装包解压缩,
此时会出现apktool.jar这个文件,这就是Apktool可执行文件,双击即可运行Apktool,接下来就可以开始反编译。

首先,选择需要反编译的.apk文件,命令格
式为:java -jar apktool.jar 反编译目标.apk,输入完成就能完成反编译工作,反编译结果会生成一个文件夹,编辑完成后再次执行反编译命令,apktool.jar就可以
将.apk文件的混淆还原,并生成一个新的文件夹。

如果需要重新组装apk,只需要执行重新打包命令,将apk文件重新组装起来,pack.apk 是新生成的重新组装包。

通过Apktool,可以轻松实现apk反编译、重新
打包,大大方便了Android应用的开发,扩展非常丰富的自定义开发能力,极大提升安卓应用的可玩性和安全性。

paktool用法

paktool用法

paktool用法apktool是一款用于反编译和重新编译Android APK文件的工具。

以下是apktool的基本用法:1.安装apktool:首先需要下载并安装apktool。

可以在官网或其他可信来源下载最新版本的apktool。

2.解包APK文件:使用apktool解包APK文件,命令如下:phpapktool d <APK文件路径>其中,<APK文件路径>是你要解包的APK文件的路径。

3.编译APK文件:使用apktool重新编译APK文件,命令如下:phpapktool b <APK文件路径>其中,<APK文件路径>是你要编译的APK文件的路径。

编译后会在当前目录下生成一个新的APK文件。

4.签名APK文件:如果你需要将编译后的APK文件进行签名,可以使用以下命令:phpapksigner sign --key <密钥文件路径> --cert <证书文件路径> <APK文件路径>其中,<密钥文件路径>是你要使用的密钥文件的路径,<证书文件路径>是你要使用的证书文件的路径,<APK文件路径>是你要签名的APK文件的路径。

5.安装APK文件:最后,你可以使用以下命令将编译并签名后的APK 文件安装到设备上:phpadb install <APK文件路径>其中,<APK文件路径>是你要安装的APK文件的路径。

以上是apktool的基本用法,你可以根据需要进行进一步的探索和使用。

请注意,在使用apktool时需要遵守相关法律法规和隐私政策,不要用于非法用途。

android apk修改方法(反编译、修改、打包)

android apk修改方法(反编译、修改、打包)

1、baksmali:classes.dex反编译为smali格式(smali:smali格式编译打包为classes.dex,但由于smali格式类似汇编,比较难阅读,所以用dex2jar进行辅助)2、dex2jar:classes.dex转为jar包3、jdgui:jar反编译并阅读操作顺序:apk用zip解开,里面的classes.dex分别用baksmali处理为smali,用dex2jar 处理成jar,然后用jdgui看代码,找好java文件中要改的位置后,在smali 里找对应的位置修改,改完了用smali再编译为classes.dex,覆盖原来apk里的同名文件,最后重新签名。

注意安装时要先删除原来手机里的版本,因为签名不同。

1、apk用zip解开,得到classes.dex2、用baksmali处理为smali(只是反编译看代码就不需要这一步,修改才用) java -jar baksmali-1.4.1.jar -x classes.dex得到out目录,里面是smali文件3、用dex2jar处理classes.dex为jar包dex2jar.bat classes.dex得到classes.dex.dex2jar.jar4、用jdgui打开classes.dex.dex2jar.jar好了,可以看代码,但还不能直接修改,需要对比着来修改smali文件改好后,用java -jar smali-1.2.6.jar -o classes.dex out得到修改后的classes.dex,用这个文件替换fishing_joy_1.apk中的同名文件但这个apk是不能用的,还没有进行重新签名先用keytool生成keystorekeytool -genkey -keystore mykeystore -alias mykeystore -validity 999 把apk中的META-INF删除,再用jarsigner 签名jarsigner -verbose -keystore mykeystore -signedjar fishing_joy_1_signed.apk fishing_joy_1.apk mykeystore先卸载原来手机中安装的这个游戏,再用fishing_joy_1_signed.apk安装最后工作目录是这个样子。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

APK文件的解包打包和修改相信每位玩机的人对APK文件都不陌生。

你可能每天都与APK文件打交道,无论是安装和卸载有用的应用工具、插件、好玩的游戏等等。

你可曾知道这些每天都伴随着你的APK文件是什么吗?怎样对它们作些修改呢?比如说:对英文版进行汉化、修改功能、修改文字描述、去掉广告等等。

本文介绍APK的基本知识、结构、APK文件的解包、打包及签名,以及对APK文件的常规修改。

1.APK文件简介APK是Android Package的缩写,即即Android application package文件或Android安装包。

每个要安装到Android平台的应用都要被编译打包为一个单独的文件,后缀名为.apk。

APK文件是用专业软件eclipse编译生成的文件包,其中包含了应用的二进制代码、资源、配置文件等。

通过将APK文件直接传到Android手机中执行即可安装。

APK文件其实就是zip格式,但其扩展名被改为apk,用解压软件可以直接打开。

通过WinRAR或UnZip解压后,你会看到有几个文件和文件夹。

一个典型的APK文件通常有下列内容组成:AndroidManifest.xml程序全局配置文件classes.dex Dalvik字节码resources.arsc编译后的二进制资源文件META-INF\该目录下存放的是签名信息res\该目录存放资源文件assets\该目录可以存放一些配置文件下面对这些文件和目录做些基本的注释和介绍。

•AndroidManifest.xml该文件是每个应用程序都必须定义和包含的文件,它描述了应用程序的名字、版本、权限、引用的库文件等等信息。

需要解包后才能加以阅读。

•classes.dex文件classes.dex是java源码编译后生成的java字节码文件。

dex是Dalvik VM executes的全称,即Android Dalvik执行程序,并非Java ME的字节码而是Dalvik字节码。

•resources.arsc编译后的二进制资源文件。

•META-INF目录META-INF目录下存放的是签名信息,用来保证apk包的完整性和系统的安全。

在eclipse编译生成一个apk包时,会对所有要打包的文件做一个校验计算,并把计算结果放在META-INF目录下。

这就保证了apk包里的文件不能被随意替换。

比如拿到一个apk包后,如果想要替换里面的一幅图片,一段代码,或一段版权信息,想直接解压缩、替换再重新打包,基本是不可能的。

如此一来就给病毒感染和恶意修改增加了难度,有助于保护系统的安全。

•res目录res目录存放资源文件。

包括图片,字符串等等。

解包后,几乎所有可能的修改和编辑工作基本都在这里。

•assets目录assets目录可以存放一些配置文件,这些文件的内容在程序运行过程中可以通过相关的API获得。

2.APK文件的解包和打包APK文件是用专业软件eclipse编译生成的文件包。

在网上可以找到许多软件来对APK的内容进行反编译,例如:可以通过AXMLPrinter2工具和命令:java-jar AXMLPrinter2.jar AndroidManifest.xml解开在apk中的AndroidManifest.xml。

最近,业界有一个功能强大的解包打包工具包apktool,可以在Windows下用来方便快速地对APK文件进行解包和打包,给修改和编辑工作带来许多方便。

下面来介绍它的使用。

1)APKtool软件包APKtool软件包有2个程序组成:apktool.jar和aapt.exe另外提供一个批处理文件:apktool.bat,其内容为:java-jar"%~dp0\apktool.jar"%1%2%3%4%5%6%7%8%9运行apktools.jar需要java环境(1.6.0版本以上)。

apktool.jar用于解包,apktool.jar和aapt.exe联合用于打包。

2)APK文件的解包下面以解开Contacts.apk为例。

首先把Contacts.apk复制到当前工作目录下(例:Test)。

在DOS下打入命令apktool d Contacts.apk ABC这里“d”表示要解码。

Contacts.apk是要解包的APK文件。

ABC是子目录名。

所有解包的文件都会放在这个子目录内。

3)APK文件的打包在DOS下打入命令apktool b ABC New-Contacts.apk这里“b”表示要打包ABC是子目录名,是解包时产生的子目录,用来存放所有解包后的和修改后的文件。

New-Contacts.apk是打包后产生的新的APK文件。

4)Framework框架文件在解开APK文件时,apktool需要框架文件(framework-res.apk)来解码和打包。

Apktool已经包含了标准的框架,所以在大多数APK 文件的解包时,不需要另外提供框架文件。

但是,某些制造商使用了他们自己的框架文件,为了解包,就不得不从手机中把框架文件(framework-res.apk)提取出来,然后安装到计算机。

安装命令是:apktool if framework-res.apk安装后就会得到:~\apktool\framework\1.apk5)解包、解包和签名批处理在实际使用时,可能对多个APK文件进行处理。

方便的做法是写成批处理文件。

打包和签名可以一次完成。

解包批处理命令:for%%i in(*.apk)do java-jar apktool.jar d%%i_%%i&&move_%%i Modifying_Files&&copy%%i Backuped_Raw_Files&&@echo File [%%i]unpacking process is completed!打包和签名批处理命令:for/d%%i in(*)do cd..&&java-jar apktool.jar b Modifying_Files\%%i &&java-jar signapk.jar testkey.x509.pem testkey.pk8 Modifying_Files\%%i\dist\*.apk%%i&&ren%%i New%%i&&move New%%i Modified_Signed_Files&&@echo%%i Complete repacking and Signing!&&cd Modifying_Files3.应用实例:APK解包后的编辑和修改为什么要对APK文件进行解包?当然要对其内容进行必要的修改。

修改什么呢?通常,如果只是对图像进行替换,没有必要进行解包和打包。

用WinRAR打开APK文件,直接做替换就可以了。

但是,如果要对文字和其它非图像类内容进行修改,那只能通过解包解码了。

下面几项任务需要对APK进行解包和打包。

这里只作大概介绍,请自己去找详细的操作方法和教程。

1)汉化APK软件在res文件夹中,我们可以看到有很多values-***的文件夹,这就是语言包。

values是英文语言包,values-zh是中国地区语言包(包含港澳台及内地),values-zh-rCN是中文简体语言包(只包含内地),values-zh-rTW是中文繁体语言包(港澳台)。

除此以外,其它地区的语言包都是精简的对象,可以不过多了解。

在values文件夹里,通常有arrays.xml、strings.xml等语言文件,要作汉化就要对这些文件进行修改。

有时也需要修改其它xml文件,一个一个地认真查看。

2)修改图标标签每一个APK文件都有一个“图标标签”。

将APK程序安装进手机后,在图标下面显示图标标签文字。

这个图标标签的内容是可以修改的。

在\res\values下找到strings.xml,修改其中的一行:<string name="app_name">图标标签</string>例如:<string name="app_name">静音启动</string>同理,如果是窗口小插件,要修改widget_name。

注意:system/app下的apk不宜修改,因为要同时修改对应的odex 文件。

3)去掉APK中的广告有很多APK应用都带有广告。

为了去掉程序中的广告,要修改main.xml文件与广告有关的内容。

在\res目录下找到文件main.xml。

通常在\layout目录下,有时也被放在其它目录下。

甚至,有时不存在main.xml文件,广告行被放在其它xml文件内。

只能细心逐个文件进行查找。

无论哪一种情况,查看其内容,你会看到有一项类似的命令如下。

这就是广告显示。

<com.admob.android.ads.AdView android:id=”@id/ad”android:layout_width=”fill_parent”android:layout_height=”wrap_content”admobsdk:backgroundColor=”#ff000000″admobsdk:textColor=”#ffffffff”admobsdk:keywords=”Android application”/>将其改为:<com.admob.android.ads.AdView android:id=”@id/ad”android:layout_width=”0.0dip”android:layout_height=”0.0dip”admobsdk:backgroundColor=”#ff000000″admobsdk:textColor=”#ffffffff”admobsdk:keywords=”Android application”/>可以看到,关键是要把fill_parent改为0.0dip,把wrap_content改为0.0dip,其它保持不变即可。

这种改法就是不给广告显示空间,当然你就看不到广告了。

4)修改显示电池为1%精度在XT502上,默认显示只有7档:0%,10%,20%,40%,60%,80%和100%。

通过修改framework-res.apk,可以改变显示精度。

但是在XT502上,实践证明最好可能达到的现实精度只有10%。

修改工作如下:(1)对framework-res.apk进行解包(2)修改和增加电池状态图标(3)修改文件stat_sys_battery.xml(4)修改文件stat_sys_battery_charge.xml(5)打包(6)提取stat_sys_battery.xml,stat_sys_battery_charge.xml,resources.arsc和一个图标目录:drawable-mdpi(7)重新装配framework-res.apk5)状态栏信息通知文字颜色修改状态栏信息通知文字颜色,是由framework-res.apk文件里res\values 下的colors.xml文件控制的,所以我们只需修改colors.xml文件就可以了。

相关文档
最新文档