手机app重编译
❶ android studio 如何回编译一个APP
android studio中不能编译反编译出来的文件,android studio只能编译源代码。
1.反编译Apk得到java源代码
首先要下载两个工具:dex2jar和JD-GUI
前者是将apk中的classes.dex转化成Jar文件,而JD-GUI是一个反编译工具,可以直接查看Jar包的源代码。
具体步骤:
首先将apk文件,将后缀改为zip,解压,得到其中的classes.dex,它就是java文件编译再通过dx工具打包而成的;
解压下载的dex2jar,将classes.dex复制到dex2jar.bat所在目录。在命令行下定位到dex2jar.bat所在目录
运行 dex2jar.bat classes.dex
生成 classes.dex.dex2jar.jar
2.反编译apk生成程序的源代码和图片、XML配置、语言资源等文件
还是下载工具,这次用到的是apktool
具体步骤:
将下载的两个包解压到同一个文件夹下,应该会有三个文件:aapt.exe,apktool.bat,apktool.jar
1.解压缩下载的两个文件包,apktool-install-windows-r04-brut1.tar解压缩后得到的包里有aapt.exe 和apktool.bat.(注意要把apktool1.4.1.tar解压后的一个.jar 文件到解压后的\apktool-install-windows-r04-brut1文件夹里)
2.特别注意:你要反编译的文件一定要放在C盘的根目录里
❷ 安卓app应用制作好了 如何更改啊
一、制作好的 .apk 文件如果有源码,可以在源码中进行修改,修改完成后重新生成即可。
二、使用类似RE管理器之类的工具,但是如果存在以后两种情况是改不了的。
1、APP非自身开发创建。
2、签名已经生成,无修改签名的权限。
❸ app精简功能
安卓:
你可以反编译安装包 apk文件(部分app安装包加了防反编译可能不行),反编译后修改APP的代码,重新编译并签名APP就可以正常安装
苹果:
如果安装包ipa文件,已上架至应用商店的话,安装包会受到加密保护,无法反编译不过可以解密,解密后修改能否安装不能保证,具体可网络查阅,未上架的app的话,一样可以反编译,修改app代码需要在macOS的xcode中修改,修改后,重新编译并签名,就可以安装
总结:可以的,不过安卓和苹果都会有安装包加密保护,苹果的app只要上架就会加密,安的一般不会加密,苹果的解密后可能会无法安装,没有加密的苹果安装包,在安装后会遇到闪退等问题,甚至无法安装
(本人小白,部分内容还需向专业人士询问)
❹ 如何修改Android应用程序的图标和名字
利用反编译工具“安卓修改大师”可以修改Android应用程序的图标和名字。具体操作请参照以下步骤。
1、在应用下载网站下载“安卓修改大师”软件,下载完成后,安装到电脑系统中。
❺ 濡备綍鍙岖紪璇悭ndroid搴旂敤骞堕吨鏂版墦鍖
涓.鐪媋ndroid镄勬簮浠g爜
銆銆1)灏咥pkd.apk 鐢▃ip瑙e帇钖庯纴鍑虹幇浜嗕竴涓猚lasses.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)杩涘叆鍒癫ex2jar鐩褰曚腑锛岃繍琛屾儏鍐靛备笅锛
銆銆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.
銆銆鍦╝pk镓鍦ㄧ殑鐩褰曚细鍑虹幇 classes_dex2jar.jar 鏂囦欢銆
銆銆3) 鐢↗D-GUI瀵筳ar鍖呰繘琛屾煡鐪嬶纴鍙浠ユ煡鐪嬫簮鏂囦欢
銆銆浜.鍙岖紪璇悭pk
銆銆1.鍦ㄣ涓嬭浇銆APKTOOL涓镄勪笁涓鏂囦欢锛坅apt.exe銆乤pktool.bat銆乤pktool.jar锛夎В铡嬬缉鍒颁綘镄刉indows瀹夎呯洰褰曚笅锛屼互鏂逛究浣跨敤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.杩涘叆鍒瘾pktool.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婧愭枃浠讹纸鏄鐢╯mali璇瑷鍐欑殑锛屽彲浠ュ圭収java鐪嬶级銆
銆銆涓.APKTOOL镄勪娇鐢
銆銆1).decode
銆銆璇ュ懡浠ょ敤浜庤繘琛屽弽缂栬疟apk鏂囦欢锛屼竴鑸鐢ㄦ硶涓
銆銆apktool d
銆銆浠h〃浜呜佸弽缂栬疟镄刟pk鏂囦欢镄勮矾寰勶纴链濂藉啓缁濆硅矾寰勶纴姣斿侰:\MusicPlayer.apk
銆銆浠h〃浜嗗弽缂栬疟钖庣殑鏂囦欢镄勫瓨鍌ㄤ綅缃锛屾瘆濡侰:\MusicPlayer
銆銆濡傛灉浣犵粰瀹氱殑宸茬粡瀛桦湪锛岄偅涔堣緭鍏ュ畬璇ュ懡浠ゅ悗浼氭彁绀轰綘锛屽苟涓旀棤娉曟墽琛岋纴闇瑕佷綘閲嶆柊淇鏀瑰懡浠ゅ姞鍏-f鎸囦护
銆銆apktool d 钬揻
銆銆杩欐牱灏变细寮鸿岃嗙洊宸茬粡瀛桦湪镄勬枃浠
銆銆2).build
銆銆璇ュ懡浠ょ敤浜庣紪璇戜慨鏀瑰ソ镄勬枃浠讹纴涓鑸鐢ㄦ硶涓
銆銆apktool b
銆銆杩欓噷镄
銆銆灏辨槸鍒氭墠浣犲弽缂栬疟镞惰緭鍏ョ殑
銆銆锛埚侰:\MusicPlayer锛,杈揿叆杩栾屽懡浠ゅ悗锛屽傛灉涓鍒囨e父锛屼綘浼氩彂鐜癈:\MusicPlayer鍐呭氢简2涓鏂囦欢澶筨uild鍜宒ist锛屽叾涓鍒嗗埆瀛桦偍镌缂栬疟杩囩▼涓阃愪釜缂栬疟镄勬枃浠朵互鍙婃渶缁堟墦鍖呯殑apk鏂囦欢銆
銆銆3).install-framework
銆銆璇ュ懡浠ょ敤浜庝负APKTool瀹夎呯壒瀹氱殑framework-res.apk鏂囦欢锛屼互鏂逛究杩涜屽弽缂栬疟涓浜涗笌ROM鐩镐簰渚濊禆镄𪞝PK鏂囦欢銆傚叿浣撴儏鍐佃风湅甯歌侀梾棰
銆銆锲.smali涓巎ava婧愮爜瀵圭収锛屽苟锅氩嚭鐩稿簲镄勪慨鏀
銆銆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;
銆銆}
銆銆}
銆銆瀵瑰簲镄剆mali婧愪唬镰侊细
銆銆.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
銆銆阃氲繃瀵规瘆鍙浠ョ湅鍒帮纴甯搁噺鏄娌℃湁蹇呭彉镄勶纴鍙浠ユ牴鎹镄剆mali镄勮娉曪纴杩涜岀浉搴旂殑淇鏀
銆銆浜.3銆佹墦鍖呫佺惧悕鍜屽畨瑁呬慨鏀瑰悗镄刟pk
銆銆淇鏀瑰畬浜嗭纴灏卞彲浠ユ墦鍖呭洖apk浜嗐傛墽琛屼互涓嫔懡浠わ细
銆銆apktool b decode_dir
銆銆鍦╩ygame鐩褰曚笅镄刣ist鍦ㄤ细鐪嫔埌镓揿寘濂界殑apk銆
銆銆褰撶劧锛岀幇鍦ㄤ竴鑸鏄镞犳硶瀹夎呯殑锛屽洜涓篴pk杩樻病链夌惧悕銆备笅闱㈠氨𨱒ョ惧悕銆傜惧悕闇瑕乲eystore鏂囦欢锛屾垜宸茬粡链変笓鐢ㄧ殑keystore浜嗭纴濡傛灉杩樻病链夛纴璇峰弬阒呰繖閲岃繘琛岀敓鎴愩
銆銆镓ц屼互涓嫔懡浠や负閲嶆柊缂栬疟镄刴y_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 姝g‘钖楋纻
銆銆[钖]锛 y
銆銆杈揿叆镄勪富瀵嗙爜
銆銆锛埚傛灉鍜 keystore 瀵嗙爜鐩稿悓锛屾寜锲炶溅锛夛细
銆銆D:\developer\tools\test_apk\new\decode\dist>jarsigner -verbose -keystore demo.keystore Apkd.apk demo.keystore
銆銆杈揿叆瀵嗛挜搴撶殑鍙d护鐭璇锛
銆銆姝e湪娣诲姞锛 META-INF/MANIFEST.MF
銆銆姝e湪娣诲姞锛 META-INF/DEMO_KEY.SF
銆銆姝e湪娣诲姞锛 META-INF/DEMO_KEY.RSA
銆銆姝e湪绛惧悕锛 res/drawable-hdpi/ic_launcher.png
銆銆姝e湪绛惧悕锛 res/drawable-mdpi/ic_launcher.png
銆銆姝e湪绛惧悕锛 res/drawable-xhdpi/ic_launcher.png
銆銆姝e湪绛惧悕锛 res/drawable-xxhdpi/ic_launcher.png
銆銆姝e湪绛惧悕锛 res/layout/activity_main.xml
銆銆姝e湪绛惧悕锛 res/menu/main.xml
銆銆姝e湪绛惧悕锛 AndroidManifest.xml
銆銆姝e湪绛惧悕锛 classes.dex
銆銆姝e湪绛惧悕锛 resources.arsc
銆銆D:\developer\tools\test_apk\new\decode\dist>
銆銆鍒版や负姝锛屼慨鏀瑰悗镄刟pk鍙浠ユe父镄勫畨瑁呬简锛屼笉杩囷纴鍦ㄥ畨瑁呬箣鍓嶏纴蹇呴’瑕佸厛鍗歌浇浠ュ墠镄刟pk锛屼笉鑳界洿鎺ユ浛鎹锛埚洜涓虹惧悕涓崭竴镙凤级
❻ 如何反编译android应用并重新打包
反编译android步骤入下:
第一:使用apktool直接反编译apk
第六:把生成的hellodemo.apk安装到手机,可以看到主界面上已经显示的是hello,而不再是你好。说明反编译重新打包成功!
❼ Android studio 如何重新编译组件
确认你工程内bulid.gradle内相关属性值及调用的jar和库描述正确
点击build-Rebuild Project(即删除build下的所有文件并且重新build)