❶ 用apktool反编译的qq,用java自带的签名工具签名,但是还是提示无法安装
必须用安卓专门的签名才行,目前常用的是使用SDK开发临时签名。
网上找个APK签名的工具,将apktool重新打包后的APK进行签名就可以安装了。
另外反编译的QQ可能开启,表现为闪退,QQ程序里有些代码,程序有异常会中止自己进程
❷ android qq2012反编译后,安装 运行,出现版本过低提示,请问这是用的什么技术啊
向服务器发送版本号,由数据库匹配是否小于当前版本号,如小于,发送版本过低提示
❸ 求QQ.apk反编译后,重新打包的方法!
这个apk需要反编译前先脱壳,只有脱了壳,才能反编译出正常的代码,之后才能正常回编译。自行网络apk脱壳吧!
❹ Android 如何对apk文件进行反编译以及重新
第一:使用apktool直接反编译apk
第六:把生成的hellodemo.apk安装到手机,可以看到主界面上已经显示的是hello,而不再是你好。说明反编译重新打包成功!
❺ android 怎么进行反编译
下载附件解压在桌面,打开桌面Android lollipop special文件夹里点击Android lollipop special.bat文件输入apktool回车测试apktool可用性 提取ROM里的框架和ui 放在桌面Android lollipop special文件夹里点击Android lollipop special.bat文件输入apktool if framework-res.apk回车加载框架完成 反编译ui打开桌面Android lollipop special文件夹里点击Android lollipop special.bat文件输入apktool d SystemUI.apk回车反编译完成 回编译ui打开桌面Android lollipop special文件夹里点击Android lollipop special.bat文件输入apktool b SystemUI回车回编译完成
❻ 安卓QQ2014反编译谁会自己修改美化手机QQ,求大神教急求
下个diy大师,看图
❼ MIUI怎么反编译qq居右
嗨!
你好!
下面是反编译程序居右的办法:
status_bar.xml
删除
<com.android.systemui.statusbar.Clock android:textAppearance="@android:style/TextAppearance.StatusBar.Icon" android:gravity="left|center" android:paddingRight="4.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent" android:singleLine="true" />
添加
android:layout_gravity="center_horizontal"
找到
xmlns:android="http://schemas.android.com/apk/res/android">
添加
<com.android.systemui.statusbar.Clock android:layout_gravity="center_horizontal" android:paddingTop="4.0dip" android:textAppearance="@android:style/TextAppearance.StatusBar.Icon" android:layout_width="wrap_content" android:layout_height="fill_parent" android:singleLine="true" />
你也可以用WSM工具箱来进行操作。
更多更新的咨询和优惠活动可以关注MIUI官方微博http://weibo.com/miui官方微信MIUI米柚
❽ 安卓手机QQ美化修改图片后,最后进行反编译时,显示不成功,请问还需要修改其他东西吗这是怎么回事
你好:修改图片不用反编译,直接替换就ok了!至于你想用反编译工具修改其它的话则说明你的操作不对。
❾ 安卓QQ共存版制作方法
首先要安装的软件有:Notepad++,Java 以及apktool,apktool包含2个压缩包,分别为apktool-1.0.0.tar.bz2 以及apktool-install-windows-2.1_r01-1.zip 。
安装JAVA!
其次也就是把apktool里面的2个zip文件里的3个文件解压到C:\Windows下面。这样ok了
Notepad++也安装好
接下来就是制作教程了!
举个例子啊:比如你想做最新的手机QQ-0141版本的共存版,
首先把MobileQQ2011(Android)_beta1_build0141.apk 放到一个空的文件夹里面。并把这个文件夹命名!名字就随便了!
然后运行cmd,用cd命令定位到apk所在目录。
找到文件夹目录后
输入命令:apktool d MobileQQ2011(Android)_beta1_build0141.apk QQ <回车>在这里解释下:apktool是工具,后面的d是反编译,最后面的QQ是反编译以后的文件放到当前目录的QQ文件夹里面然后会显示
I: Baksmaling…
I: Decoding resource table…
I: Decoding resources…
I: Copying assets and libs…
当软件自动完成了以后,
打开Notepad++按Ctrl+F搜索,选择文件搜索,要把“包含子目录”跟“包含隐藏目录“选上
查找目标输入:com.tencent.qq替换为:com.tencent.q1
文件类型:*.*
目录:反编译以后生成的目录然后点全部替换替换好以后,换另一个关键词:
查找目标输入:com/tencent/qq替换为:com/tencent/q1
文件类型:*.*
目录:反编译以后生成的目录然后点全部替换
再换查找目标输入:android.task.qq替换为:android.task.q1(注意下:这里有个隐藏的秘密哦!)
文件类型:*.*目录:反编译以后生成的目录然后点全部替换。
这里点确定!
注意!这里在搜索!千万不要点确定!让它自己搜索完!
然后替换完了!可以点击确定了!
这样,全部替换好以后,可以把Notepad++关掉了。
进入QQ文件夹,里面有个smali的文件夹,进去后!再进com再进tencent一直进去,会看到有 7个文件夹!在这里的把风qq文件夹重命名为q1(你也可以自己改其它的),修改完毕了,现在重新编译软件。
回到CMD,输入:apktool b QQ <回车>额。。。这里我也解释下吧:d是编译的意思,QQ是之前反编译的文件夹编译好以后,到QQ里面的dist文件夹内,会看到一个out.apk的,这个就是我们重新编译好的QQ了,当然这个程序还没有签名,我们还要用其他软件签名了以后才能安装上去 。
❿ 如何反编译android应用并重新打包
下面关于反编译的例子来自于android学习手册,里面有反编译的详细过程。
android学习手册包含9个章节,108个例子,源码文档随便看,例子都是可交互,可运行,源码采用android studio目录结构,高亮显示代码,文档都采用文档结构图显示,可以快速定位。360手机助手中下载,图标上有贝壳
一.看android的源代码
1)将Apkd.apk 用zip解压后,出现了一个classes.dex文件
2014/02/19 19:42
.
2014/02/19 19:42
..
2014/02/19 15:35 1,656 AndroidManifest.xml
2014/02/19 15:35 687,024 classes.dex
2014/02/19 15:49
META-INF
2014/02/19 15:49
res
2014/02/19 15:35 2,200 resources.arsc
2)进入到dex2jar目录中,运行情况如下:
D:\developer\tools\test_apk\dex2jar-0.0.9.15>dex2jar.bat "..\Apkd(d2j)\classes.d
ex"
this cmd is deprecated, use the d2j-dex2jar if possible
dex2jar version: translator-0.0.9.15
dex2jar ..\Apkd(d2j)\classes.dex -> ..\Apkd(d2j)\classes_dex2jar.jar
Done.
在apk所在的目录会出现 classes_dex2jar.jar 文件。
3) 用JD-GUI对jar包进行查看,可以查看源文件
二.反编译apk
1.在下载APKTOOL中的三个文件(aapt.exe、apktool.bat、apktool.jar)解压缩到你的Windows安装目录下,以方便使用Dos命令.
2012/12/06 11:44 854,016 aapt.exe
2014/02/19 17:15 277,372 Apkd.apk//示例用apk文件
2012/12/23 23:39 92 apktool.bat
2013/02/03 02:37 2,655,843 apktool.jar
2.进入到apktool.bat所在的目录,运行:
apktool d Apkd.apk decode_dir
反编译后,decode_dir目录下的内容如下:
2014/02/19 17:16 716 AndroidManifest.xml
2014/02/19 17:16 237 apktool.yml
2014/02/19 17:18
build
2014/02/19 17:16
res
2014/02/19 17:16
smali
此时我可以查看原文件AndroidManifest.xml了,也是查看smali源文件(是用smali语言写的,可以对照java看)。
三.APKTOOL的使用
1).decode
该命令用于进行反编译apk文件,一般用法为
apktool d
代表了要反编译的apk文件的路径,最好写绝对路径,比如C:\MusicPlayer.apk
代表了反编译后的文件的存储位置,比如C:\MusicPlayer
如果你给定的已经存在,那么输入完该命令后会提示你,并且无法执行,需要你重新修改命令加入-f指令
apktool d –f
这样就会强行覆盖已经存在的文件
2).build
该命令用于编译修改好的文件,一般用法为
apktool b
这里的
就是刚才你反编译时输入的
(如C:\MusicPlayer),输入这行命令后,如果一切正常,你会发现C:\MusicPlayer内多了2个文件夹build和dist,其中分别存储着编译过程中逐个编译的文件以及最终打包的apk文件。
3).install-framework
该命令用于为APKTool安装特定的framework-res.apk文件,以方便进行反编译一些与ROM相互依赖的APK文件。具体情况请看常见问题
四.smali与java源码对照,并做出相应的修改
java源代码:
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.*;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView a = (TextView)this.findViewById(R.id.test) ;
a.setText("raoliang");
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
对应的smali源代码:
.class public Lali/text/apkd/MainActivity;
.super Landroid/app/Activity;
.source "MainActivity.java"
# direct methods
.method public constructor ()V
.locals 0
.prologue
.line 8
invoke-direct {p0}, Landroid/app/Activity;->()V
return-void
.end method
# virtual methods
.method protected onCreate(Landroid/os/Bundle;)V
.locals 2
.parameter "savedInstanceState"
.prologue
.line 12
invoke-super {p0, p1}, Landroid/app/Activity;->onCreate(Landroid/os/Bundle;)V
.line 13
const/high16 v1, 0x7f03
invoke-virtual {p0, v1}, Lali/text/apkd/MainActivity;->setContentView(I)V
.line 14
const/high16 v1, 0x7f08
invoke-virtual {p0, v1}, Lali/text/apkd/MainActivity;->findViewById(I)Landroid/view/View;
move-result-object v0
check-cast v0, Landroid/widget/TextView;
.line 15
.local v0, a:Landroid/widget/TextView;
const-string v1, "raoliang"
invoke-virtual {v0, v1}, Landroid/widget/TextView;->setText(Ljava/lang/CharSequence;)V
.line 16
return-void
.end method
.method public onCreateOptionsMenu(Landroid/view/Menu;)Z
.locals 2
.parameter "menu"
.prologue
.line 21
invoke-virtual {p0}, Lali/text/apkd/MainActivity;->getMenuInflater()Landroid/view/MenuInflater;
move-result-object v0
const/high16 v1, 0x7f07
invoke-virtual {v0, v1, p1}, Landroid/view/MenuInflater;->inflate(ILandroid/view/Menu;)V
.line 22
const/4 v0, 0x1
return v0
.end method
通过对比可以看到,常量是没有必变的,可以根据的smali的语法,进行相应的修改
五.3、打包、签名和安装修改后的apk
修改完了,就可以打包回apk了。执行以下命令:
apktool b decode_dir
在mygame目录下的dist在会看到打包好的apk。
当然,现在一般是无法安装的,因为apk还没有签名。下面就来签名。签名需要keystore文件,我已经有专用的keystore了,如果还没有,请参阅这里进行生成。
执行以下命令为重新编译的my_game.apk签名:
jarsigner -verbose -keystore demo.keystore Apkd.apk demo.keystore
最后,在安装到手机前,需要把手机中的已有版本先卸载,因为如果签名不同,是不能覆盖安装的,会提示“应用程序未安装”错误。
完整的运行情况如下:
D:\developer\tools\test_apk\new\decode\dist>keytool -genkey -alias demo.keystore -keyalg RSA -validity 40000 -keystore demo.keystore
输入keystore密码:
再次输入新密码:
您的名字与姓氏是什么?
[Unknown]: rao
您的组织单位名称是什么?
[Unknown]: rao
您的组织名称是什么?
[Unknown]:
您所在的城市或区域名称是什么?
[Unknown]:
您所在的州或省份名称是什么?
[Unknown]:
该单位的两字母国家代码是什么
[Unknown]:
CN=rao, OU=rao, O=Unknown, L=Unknown, ST=Unknown, C=Unknown 正确吗?
[否]: y
输入的主密码
(如果和 keystore 密码相同,按回车):
D:\developer\tools\test_apk\new\decode\dist>jarsigner -verbose -keystore demo.keystore Apkd.apk demo.keystore
输入密钥库的口令短语:
正在添加: META-INF/MANIFEST.MF
正在添加: META-INF/DEMO_KEY.SF
正在添加: META-INF/DEMO_KEY.RSA
正在签名: res/drawable-hdpi/ic_launcher.png
正在签名: res/drawable-mdpi/ic_launcher.png
正在签名: res/drawable-xhdpi/ic_launcher.png
正在签名: res/drawable-xxhdpi/ic_launcher.png
正在签名: res/layout/activity_main.xml
正在签名: res/menu/main.xml
正在签名: AndroidManifest.xml
正在签名: classes.dex
正在签名: resources.arsc
D:\developer\tools\test_apk\new\decode\dist>
到此为止,修改后的apk可以正常的安装了,不过,在安装之前,必须要先卸载以前的apk,不能直接替换(因为签名不一样)