Apktool - 应用程序在重新打包后立即崩溃

时间:2018-05-30 17:13:13

标签: android apk reverse-engineering smali apktool

在这个例子中我使用了这个应用程序: Perfect_Piano_v7.1.3_apkpure.com

Apktool版本:v2.3.3 IBotPeaches fork https://github.com/iBotPeaches/Apktool/releases/tag/v2.3.3

原始应用程序在我的设备和模拟器上工作正常,但在我解压缩并重新打包并重新安装后,应用程序立即崩溃。在重建之前,我没有对应用程序进行任何更改,并使用--no-src标志来反编译smali个文件。

apktool d -f --no-src Perfect_Piano_v7.1.3_apkpure.com.apk
rm Perfect_Piano_v7.1.3_apkpure.com.apk
apktool b -f Perfect_Piano_v7.1.3_apkpure.com
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-release-key.keystore Perfect_Piano_v7.1.3_apkpure.com.apk alias_name

我也尝试用--use-aapt2标志构建。

Logcat会抛出以下错误:

05-30 19:59:13.781 1691-1714/? W/WindowManager: Failed looking up window
                                                java.lang.IllegalArgumentException: Requested window android.view.ViewRootImpl$W@29a1c85 does not exist
                                                    at com.android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.java:8733)
                                                    at com.android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.java:8724)
                                                    at com.android.server.wm.WindowManagerService.removeWindow(WindowManagerService.java:2697)
                                                    at com.android.server.wm.Session.remove(Session.java:187)
                                                    at android.view.ViewRootImpl.dispatchDetachedFromWindow(ViewRootImpl.java:3099)
                                                    at android.view.ViewRootImpl.doDie(ViewRootImpl.java:5606)
                                                    at android.view.ViewRootImpl$ViewRootHandler.handleMessage(ViewRootImpl.java:3409)
                                                    at android.os.Handler.dispatchMessage(Handler.java:102)
                                                    at android.os.Looper.loop(Looper.java:148)
                                                    at android.os.HandlerThread.run(HandlerThread.java:61)
                                                    at com.android.server.ServiceThread.run(ServiceThread.java:46)

您可以在此pastebin

中找到完整的logcat日志

假设

  • 由于我实际上并未解码.dex个文件,因此--no-src标记,因此该问题可能与smali编译无关。
  • 可能是某种防篡改保护吗?
  • 结果文件小于原始文件(原始16.67 Mb结果13.96 Mb),所有资源都完全相同,但是在归档中查看它们时压缩得更多,那么资源压缩可能会出现问题吗?

此时我一无所知,我也遇到了与其他.apk文件相同的问题。

I submitted this issue in github.

0 个答案:

没有答案