社区
Android
帖子详情
在adb shell下直接执行可以加载起来的服务,在NDK下用system命令跑不起来
Sunny_Liuqing
2017-12-28 02:35:30
在adb shell下直接执行可以加载起来的服务,在NDK下用system命令跑不起来
...全文
359
2
打赏
收藏
在adb shell下直接执行可以加载起来的服务,在NDK下用system命令跑不起来
在adb shell下直接执行可以加载起来的服务,在NDK下用system命令跑不起来
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
珊睿的爸
2018-01-04
打赏
举报
回复
不是大神,也不是小神,就是一个菜鸟。试试下载一个Linux系统源码,找到对应的文件进行编译给system权限试下。
Sunny_Liuqing
2018-01-02
打赏
举报
回复
有没有大神可以回复一下啊~
Android
NDK
获取手机部分信息 build.prop
以下是 Android 手机 build.prop 信息,可同时在java 和
NDK
获取到 下面是通过
adb
shell
cat /system/build.prop 获取到的信息 # begin build properties开始设置系统性能 # autogenerated by buildinfo.sh{通过设置形成系统信息} ro.build.id=MIUI(版本ID) ro.build.display.id=oyang06_MIUI(版本号) ro.build.version.incremental=2.2.1(版本增量) ro.build.version.sdk=8(sdk
8.1 android 串口编程
8.0以后,串口访问越来越麻烦,各种权限受限,把这两天遇到的麻烦Mark一下,希望同行看见后有所借鉴。 关于权限,我总结了下,主要有三点: 1、app 要有系统权限 在AndroidManifest.xml里加上 android:process=“system” android:sharedUserId=“android.uid.system” 不过这样的话,app就要放到源码里编译了。 2、 /dev/ttyS4要有读写权限 (你的串口不一定是这个ttyS4) ls -l /dev/ttyS4 如果没有读写权限,记得在init.rc里面添加 chmod 777 /dev/ttyS4 3、做完上面两步,本来想这会该有访问权限了吧,结果还是拒绝访问,一脸的懵逼。 后来想
起来
有可能是selinux搞得鬼,然后将selinux设为 permissive模式以后,终于可以通讯了。 不过每次
adb
shell
输入setenforce 0 还是不爽, 我们在源码里访问权限加上。 可以参考 https://blog.csdn.net/huangyabin001/article/details/79290382 我这里具体的更改为 Rk3288/system/sepolicy/private/system_app.te 加上这么两句话 allow system_app serial_device:chr_file { open read write ioctl getattr }; allow system_app proc_stat:file { getattr }; 这样那些自己驱动里创建的设备节点也就可以访问了。 然后mmm sepolicy。 串口的操作用的是android-serialport-api ,只不过我的代码里将
ndk
-build改成了cmake,如果不会操作,一搜一大把。 开发环境 androidStudio
ndk
cmake
adb
命令
零基础快速入门
本套课程,帮助你快速掌握:
adb
相关知识及相关使用技巧
adb
命令
格式_安装卸载包、
adb
启动页面、
adb
命令
查看日志
adb
模拟按键操作、
adb
获取性能指标、
adb
命令
实现monkey压力测试教你如何从零开始搞定
adb
--实战教学
高焕堂<应用框架原理与程序设计>源代码(Eclipse)
高焕堂<应用框架原理与程序设计>源代码(Eclipse) 36计本人全部测试通过。比较难的地方而书中没有相关解释的有加注释。 关于第36计windows下编译.so文件: 写C组件注意事项:将NativeHalfAdder抽出只有类定义和函数定义部分,用javac NativeHalfAdder.java, 然后将编译出的.class文件放于test\cn\目录下 用javah test.cn.NativeHalfAdder产生.h头文件。 写完各个C文件和H文件后(关于这些文件书中有源码)。开始编译.so文件 Windows下编译.so文件步骤(这里我使用
NDK
(android-
ndk
-1.6_r1)加Cygwin 在windows下编译,如果没有请安装, 注:android-
ndk
-1.6_r1只支持android 1.6或更早版本,所以这里必须将你的android工程的Target设为1.6): 关于安装Cygwin,到http://www.cygwin.cn/site/install/ 上下载setup.exe 进入后选择install from internet 然后根据说明下一步,到Select Packages页面时,在All @ Default 选项上单击Default,使其状态变为All @ Install,为防止麻烦我选择全部安装, 按提示安装完(下载的时候有点慢,耐心等待,1.5G左右)。 关于
NDK
的安装,http://android.group.javaeye.com/group/blog/494016 上下载android-
ndk
-1.6_r1.rar 注意是windows版本的。 解压该文件,打开Cygwin进入其目录(Cygwin指令:cd D:/android-
ndk
-1.6_r1)下运行Cygwin指令 build/host-setup.sh 提示安装成功。 在Ex36CModel目录下创建Application.mk文件,并创建jni目录,该目录下包含Android.mk,HalfAdder.c等文件,目录结构如下 (关于MK文件的语法请看
NDK
安装目录docs下的ANDROID-MK.TXT,或者网上查找相关资料) Ex36CModel ├ Application.mk ├ jni ├ Android.mk ├ HalfAdder.c ├ HalfAdder.h ├ lw_oopc.h ├ test_cn_NativeHalfAdder.c ├ test_cn_NativeHalfAdder.h Application.mk内容: APP_PROJECT_PATH := $(call my-dir) APP_MODULES := NativeHalfAdder Android.mk内容: LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := NativeHalfAdder LOCAL_SRC_FILES := HalfAdder.c test_cn_NativeHalfAdder.c include $(BUILD_SHARED_LIBRARY) 由于
ndk
规定Application.mk必须放在 <
NDK
安装目录>/apps/project_name,我们在<
NDK
安装目录>下创建一个符号连接: Cygwin指令:ln -s <工程目录> <
NDK
安装目录>/apps/jnitest 如:Cygwin指令:ln -s D:/wu/android/Ex36CModel D:/android-
ndk
-1.6_r1/apps/Ex36CModel 这样,我们就可以开始编译共享库了: 在<
NDK
安装目录>下运行: Cygwin指令:make APP=NativeHalfAdder 可以看到编译成功,并在<工程目录>/libs/armeabi/下生成了libNativeHalfAdder.so。 将so文件拷贝到AVD的/system/lib目录下(这里需要AVD的root权限,但是
adb
shell
就是root权限,所以用
adb
指令来拷贝): 用cmd窗口 启动AVD(必须的,否则会有out of memory错误),输入:CMD指令: emulator -avd m9 -partition-size 512 运行,运行成功后,另开一个cmd输入 : CMD指令:
adb
remount 运行, 该指令更改系统文件属性使可读写 (必须的,否则会有file read-only错误), 然后在该cmd运行指令:
adb
push D:/wu/android/Ex36CModel/libs/armeabi/libNativeHalfAdder.so /system/lib 将指定文件拷到AVD相应目录下, 工程中记得加入NativeHalfAdder.java 文件,该文件
加载
了库文件并声明外部方法 运行本程序 大功告成
rundotso:ARM linux运行共享库rundotso dlopen dlsym内联汇编器-开源
Windows具有rundll,rundotso用于linux
加载
共享库(.so)并运行功能。 您可以运行rundotso.c来
加载
共享库并运行该函数。 它喜欢Windows操作系统中的rundll.exe。 在android
ndk
下编译和测试。 您可以使用任何arm编译器进行尝试。
adb
push rundotso / data
adb
shell
/ data / rundotso /system/libc.so系统“ ls / data”
adb
shell
/ data / rundotso /system/libc.so printf“%d%c%s%d%c%s” 16 G HelloRundotsoTest 16天结束玩得开心! 由孙。勇(Songyong SUN Songjiang)制造,中国上海。 电子邮件:sunbiyong@163.com
Android
80,351
社区成员
91,288
社区内容
发帖
与我相关
我的任务
Android
移动平台 Android
复制链接
扫一扫
分享
社区描述
移动平台 Android
android
android-studio
androidx
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章