从JNI或NDK覆盖/重定向文件调用

时间:2014-03-09 23:51:32

标签: java android android-ndk java-native-interface smartcard

我有一张智能卡,附带一个经过预编译的专用JNI / NDK库。

智能卡的工作原理是让最终用户应用程序访问SD卡根目录中的文件。

这通过让最终用户应用程序将APDU读/写到JNI库中的接口来工作,JNI库将这些APDU转换为写入和读取到文件。

如何读取/写入此文件的APDU的规范是适用的,并且卡的客户无法使用。

现在问题: 由于新的Android 4.4.2 SD卡策略会阻止写入除SD用户空间文件夹以外的SD卡,因此无法写入SD卡根目录,因此SD智能卡的功能将丢失。

但是,如果您在最终用户应用程序中使用OPEN_DOCUMENT意图和文件选择器,则可以让最终用户在SD卡的根目录中选择相关文件,从而通过以下方式获得该文件的r / w权限:文件描述符。

但是,我想知道,是否可以从预编译的JNI库重定向/覆盖所有传出文件调用(读/写),而不是通过intent返回的文件描述符?

例如,如果我能以某种方式“覆盖”由我的应用程序加载的任何库(一些专有的.so文件)调用的原始文件打开方法,通过我的应用程序然后我不打开文件,而是我只是直接传递“OPEN_DOCUMENT”文件描述符,因此.so文件是从该文件描述符读取/写入,实际上是由OPEN_DOCUMENT意图返回的,可以访问用于APDU通信的SD卡根目录中的文件用智能卡。

0 个答案:

没有答案