我想使用adb命令获取在应用程序中使用的库的名称。对此有何看法?对此有任何帮助。
由于某些原因,不可能可靠地枚举应用程序使用的库。
主要原因是混淆:如果用户打开Proguard或R8,他们将重命名库的类,可能会导致无法识别它们。
另一个原因是,现有的每个Android库都没有一个完整的列表,也不存在类名到库的映射。
但是,如果您确实想try进行此操作,则想要retrieve the application's class files,然后从您关心的库中搜寻它们以寻找包名的开头(因为混淆器不太可能重命名完整的软件包名称,尽管它们仍然可以)。例如,如果要查看应用程序是否使用okhttp3,则需要查看是否存在okhttp/okhttp3
文件夹(对于程序包okhttp.okhttp3
)。
您甚至可以也许通过查找流行的Maven / Gradle软件包列表,下载它们,提取类名并将其用作数据集来使其自动化。