❶ 用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,不能直接替換(因為簽名不一樣)