Android 在项目中实现的库(.jar)能够访问用户数据吗?
假设我已考虑通过添加project的gradle来使用库:Android 在项目中实现的库(.jar)能够访问用户数据吗?,android,security,Android,Security,假设我已考虑通过添加project的gradle来使用库: implementation fileTree(dir: 'libs', include: ['*.jar']) 该jar文件中运行的代码能否访问用户详细信息,如设备id、位置、文件等。。如果用户已在我的应用程序中授予这些权限 我很担心,因为我正在使用一些.jar库,但我无法验证这些库的可信度。我只是担心这些库访问这些信息并将其存储在服务器上。是的。如果您在任何时候调用库的代码(甚至导致加载其类),它可以使用与您自己编写代码
implementation fileTree(dir: 'libs', include: ['*.jar'])
该jar文件中运行的代码能否访问用户详细信息,如设备id、位置、文件等。。如果用户已在我的应用程序中授予这些权限
我很担心,因为我正在使用一些.jar库,但我无法验证这些库的可信度。我只是担心这些库访问这些信息并将其存储在服务器上。是的。如果您在任何时候调用库的代码(甚至导致加载其类),它可以使用与您自己编写代码相同的权限执行代码
至于这是为什么,一旦应用程序被编译,所有东西(或多或少)都会被合并到同一个字节码文件中。这通常是可取的-应用程序可能希望库在大多数时间使用其应用程序的权限。但这确实意味着没有简单的方法“沙箱”一个库的代码来阻止它使用权限/访问/传输数据。如果.jar文件中的类在.so文件的其他地方调用本机代码,也会发生这种情况吗?是的,你在应用程序中调用的任何代码都可以做任何你能做的事情,但我知道有些模块有自己的清单文件。这些库是否能够在其清单中权限之外执行代码?是的,它们将能够使用您的应用程序的所有权限执行代码。所有清单文件也合并为一个,因此应用程序中的所有代码都具有相同的Android权限。当然,我已经对其进行了升级,您是否可以提供一个指向资源的链接来解释其工作原理?