我知道为什么。我不是京东金融的员工,只是刚好认得“uil-images”这个目录。
这是一个叫做Android-Universal-Image-Library的库,用来加载图片的,代码见下面链接:
简单介绍一下这类加载库是做什么的:
你看到的各种相册、照片列表,包括很多App中上传图片的界面(比如知乎回答界面选择图片的),都是上面图片里的样子。它们可能从手机的存储空间里列举所有的照片,把它们的缩略图展现出来。但是有的照片很大,或者这个相册是在线相册,图片都是线上存储的,没办法立刻加载完成。况且如果把这么多几百万像素的照片加载进RAM,手机就会资源不足。
这样就需要一个图片加载工具,把原图缩放到比较小的尺寸,做一次缓存。等到以后再加载的时候,速度更快一点。即使是本地图片,进行一次缩放,存到缓存中,也有性能的提升。
这就是为什么你会在京东金融App的 cache/uil-images 里见到相册里的图片。至于命名为什么是”233333333.0“ 这种格式,是因为前面的“233333333”是原图路径的hashCode,后面的“.0”则是因为这个目录的缓存实现是这么做的。代码在下方链接。
至于为什么没打开京东金融,图片就在缓存里找到,那十有八九就是它一直驻留后台,并且注册了“新照片添加”的事件。可以说明它在后台不老实,但是没法直接证明京东金融有备份用户的私人图片。
最后真的很想吐槽,很多国产App根本没有获得存储权限的必要,尤其是获得权限之后就在存储空间里乱放垃圾。目前京东金融是可以把这个权限关掉的,我就关掉了这个权限,以及一大堆其他的权限,只保留电话和位置,图个清静。
分析结果已经出来
京东金融本身没有窃取用户隐私,但是存在一个莫名其妙的显示截图的功能,因为开源库的代码设计导致截图出现在私有目录下
请程序员和产品经理享受五emoji分尸
具体分析看我文章