Android上可写和可执行的位置

前端之家收集整理的这篇文章主要介绍了Android上可写和可执行的位置前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用 Android NDK工具链编译了一个二进制文件,并尝试将其部署到设备上.使用JNI使用NDK构建的应用程序将通过本地代码执行此二进制文件.我希望避免生根器材.

该二进制文件将被多个应用程序使用,因此我想将它存储在共享位置,而不是每个应用程序一次.

我找不到适当的位置来部署这个二进制文件 – 这些是我试过的地方:

> / mnt / sdcard – 使用SDK中的getExternalStoragePublicDirectory(),然而SD卡被挂载为noexec,这意味着我无法运行它.
> / system / bin – 只读文件系统,所以不能复制.如果我在模拟器上重新安装/系统,可以使用adb push来推送文件

mount -o rw,remount -t yaffs2 /dev/block/mtd3 /system

但是我想避免这种情况,因为该设备需要根植根.
> / data / local – 使用adb push,我可以把二进制到这个位置.但是,我似乎找不到一个方法代码(使用Android SDK).内部存储机制指向/ data / data / package.

我编译了使用NDK工具链发送的arm-linux-androideabi-g调用此可执行文件的本机代码.这适用于/ system / bin和/ data / local中的二进制文件.

总而言之,我正在寻找Android文件系统中的一个位置,我可以从该文件系统从项目/ assets文件夹复制一个文件,哪个世界可执行的权限是可能的.

解决方法

如果你想避免生根设备,那么基本上SD卡是唯一可以假定是世界可写的地方(编辑:介绍到2014/2015的Android框架的最新变化).最好让你的二进制部分可安装的APK,然后将这个二进制文件从APK中提取出来,进入私有存储,使其成为可执行文件,并以某种方式宣布二进制位置,但一般来说,根据操作系统版本和供应商的预期会出现一些问题
原文链接:https://www.f2er.com/android/312312.html

猜你在找的Android相关文章