gpt4 book ai didi

android - 如何调试从 Play 商店安装的 APK(不删除保存的用户数据)

转载 作者:行者123 更新时间:2023-11-29 15:40:05 24 4
gpt4 key购买 nike

问题

我正在使用一个 Android 应用程序,其中用户数据被保存到一个由 SQLCipher 加密的数据库中。 Android keystore 用于存储 key 。发生设备特定问题(可能与正在保存的数据有关)。我可能会接触到遇到此问题的设备,但是,据我所知,我可以从该设备中提取的信息非常有限。有什么可能的方法可以在不丢失用户数据的情况下以某种方式将调试器附加到加载到设备上的当前 APK 或以某种方式将其替换为可调试版本?

设备运行的是android 6.0.1,我使用的是Android Studio

我在尝试调试发布 APK 时发现了什么

当我连接一台装有从 PlayStore 下载的 APK 的安卓平板电脑时,我能看到的唯一数据是使用 logcat (Android Studio) 的特定于应用程序的调试日志。当我尝试调试应用程序时,Android Studio 告诉我先卸载现有的 APK,然后才能加载可调试的 APK。但是,这将删除现有数据,这是我不希望发生的。

我尝试解决我原来问题的其他事情

尝试让特定用户向我发送他们有问题的数据库

这行不通,因为我无权访问私钥,所以即使我获得了文件也无法解密数据。

尝试让特定用户向我发送应用日志

自 Android 4.1 起,这将不起作用,应用程序特定的日志仅对那些特定的应用程序是私有(private)的(除非设备已获得 root 权限,而有问题的设备未获得 root 权限,并且 root 并不是一个真正的选项)。这实际上引出了我的另一个稍微相关的问题。为什么我能够在 logcat 中看到应用程序特定的日志,即使在通过 CatLog 等应用程序查看没有开启Root的设备上的日志时它们是不可见的?

最佳答案

您可以通过简单地使用您的发布 key 而不是调试 key 进行签名并确保已设置调试标志来安装可调试的 APK。我总是这样做,因为不断卸载和重新安装不同版本变得很痛苦,尤其是在具有不同调试 keystore 的不同计算机之间切换时。

安装使用您的发布 key 签名的 APK 将只执行就地升级并保持所有应用数据完好无损,即使设置了可调试标志也是如此。

例如

 buildTypes {

debug {
minifyEnabled false
debuggable true
signingConfig signingConfigs.release
}

release {
minifyEnabled false
signingConfig signingConfigs.release
}

}

只要日志是由您自己的应用生成的,您就可以从用户设备获取日志。您自己的进程可以访问您自己的应用日志条目。

Read logcat programmatically within application

关于android - 如何调试从 Play 商店安装的 APK(不删除保存的用户数据),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42117674/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com