目標實現(xiàn):反編譯一個apk,在指定界面添加一個@+/id是tv_test的TextView,MainActivity的onCreate中通過設置文本"我是逆向添加的"
看下效果圖:


開始工作:
對apk文件拆包:
apktool d test.apk
解壓包之后cd到目錄里面

先對res文件找到對應activity_main.xml文件添加布局代碼,加入代碼
<TextView
? ? android:id="@+id/tv_test"
? ? android:background="@android:color/darker_gray"
? ? android:layout_width="wrap_content"
? ? android:layout_height="wrap_content"
? ? android:textSize="22dp" />
下一步,在res/values/public.xml添加id

記住id=0x7f070094 接下來要在R$id.smali文件添加改id,R$id.smali一般在包路徑下面可以找到。添加完成之后如下圖:

接下來添加res/values/ids.xml文件

下一步修改activity文件,添加smali代碼實現(xiàn)
TextView tvTest=findViewById(R.id.tv_test);
tvTest.setText("我是逆向添加的文本");
首先找到MainActivity.smali文件在onCreate方法中加入smali代碼

最后一步:
apktool b . 打包當前目錄在dist文件夾下面生成apk文件,簽名并運行。
打個廣告:reversToy一鍵合并apk和aar神器https://github.com/dyglcc/reverseToy,有需要的朋友可以下載使用。