簡體   English   中英

如何調試從Play商店安裝的APK(不刪除已保存的用戶數據)

[英]How to debug an APK installed from Play Store (without deleting saved user data)

問題

我正在使用Android應用程序將用戶數據保存到由SQLCipher加密的數據庫中。 Android密鑰庫用於存儲密鑰。 存在特定於設備的問題(可能與正在保存的數據有關)。 我可能會遇到遇到此問題的設備,但是,從我能找到的信息中,我可以從所述設備中提取的信息非常有限。 是否有任何可能的方法我可以以某種方式將調試器附加到當前加載到設備上的APK或以某種方式用可調試版本替換它而不丟失用戶數據?

該設備運行Android 6.0.1,我正在使用Android Studio

我發現試圖調試發布APK

當我連接加載了從PlayStore下載的APK的Android平板電腦時,我能夠看到的唯一數據是使用logcat(Android Studio)的應用特定調試日志。 當我嘗試調試應用程序時,Android Studio告訴我先卸載現有的APK,然后才能加載可調試的APK。 但是,這將刪除我不希望發生的現有數據。

我試圖解決原始問題的其他事情

嘗試讓特定用戶向我發送有問題的數據庫

這不起作用,因為我無法訪問私鑰,所以即使我拿到了文件,也無法解密數據。

嘗試讓特定用戶向我發送應用程序日志

這不起作用,因為Android 4.1,特定於應用程序的日志僅對那些特定應用程序是私有的(除非設備已植根,有問題的設備不是,並且根本不是一個選項)。 這實際上導致了另一個輕微相關的問題。 為什么我能夠在logcat中看到特定於應用程序的日志,即使它們在通過諸如CatLog之類的應用程序登錄無根設備時不可見?

您可以通過簡單地使用發行密鑰而不是調試密鑰進行簽名來安裝可調試的APK,並確保設置了Debug標志。 我總是這樣做,因為繼續卸載和重新安裝不同版本變得很痛苦,尤其是在使用不同調試密鑰庫的不同計算機之間進行交換時。

安裝使用您的發布密鑰簽名的APK只會執行就地升級,即使設置了debuggable標志,也會保留所有應用程序數據。

例如

 buildTypes {

    debug {
        minifyEnabled false
        debuggable true
        signingConfig signingConfigs.release
    }

    release {
        minifyEnabled false
        signingConfig signingConfigs.release
    }

}

只要日志是由您自己的應用程序生成的,您就可以從用戶設備獲取日志。 您自己的進程可以訪問您自己的應用程序日志條目。

在應用程序中以編程方式讀取logcat

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM