hiking 发表于 2019-2-25 09:33:23

[已解决]无法使用各种API(FireflyApi)打开/dev/ttyS0

本帖最后由 hiking 于 2019-3-4 10:48 编辑

开发板:ROC-RK3399-PC
固件:android 8.1
前提:
adb shell 可以cat /dev/ttyS0 和echo hello >/dev/ttyS0 ,短接开发板Uart0的tx/rx ,测试通信正常;

问题:
使用google 提供的serialport api和别人的串口调试软件,进行测试总是提示打不开串口;


查看FireflyApi 使用的 是Process su = Runtime.getRuntime().exec("/system/xbin/vm");
但是android 8.1固件 只有/system/xbin/su ,没有vm;
adb :

crwxrwxrwx 1 bluetooth net_bt   4,64 2013-01-18 08:50 /dev/ttyS0
chmod 777 /dev/ttyS0
另外源码:device/rockchip/common/init.connectivity.rc这里应该怎么修改    chmod 0660 /dev/ttyS0    chown bluetooth net_bt /dev/ttyS0注释掉可以吗?

或者请告诉我ROC-RK3399-PC 的uart0,uart1,uart3,uart4串口怎么使用,维基资料上面也没有,fireflyApi也不支持。
怎么办?


jpchen 发表于 2019-2-26 09:08:42

FireflyAPI在RK3399平台上目前只有android7.1支持,android8.1暂时还未做支持,请知悉

hiking 发表于 2019-2-26 09:27:09

jpchen 发表于 2019-2-26 09:08
FireflyAPI在RK3399平台上目前只有android7.1支持,android8.1暂时还未做支持,请知悉
我没有奢望FireflyAPI能用,我只是想知道如何正确的使用Uart0,你这样回答我的问题还是没有解决,我一直在线等,非常着急。

jpchen 发表于 2019-2-26 09:47:15

hiking 发表于 2019-2-26 09:27
我没有奢望FireflyAPI能用,我只是想知道如何正确的使用Uart0,你这样回答我的问题还是没有解决,我一直 ...

你是想apk 调用串口吗?如果是可以下载android版本的串口助手然后就可以进行收发控制

jpchen 发表于 2019-2-26 09:50:05

hiking 发表于 2019-2-26 09:27
我没有奢望FireflyAPI能用,我只是想知道如何正确的使用Uart0,你这样回答我的问题还是没有解决,我一直 ...

如果apk提示没有权限,只需要对相关的串口添加777的权限即可

hiking 发表于 2019-2-26 10:18:52

本帖最后由 hiking 于 2019-2-26 10:42 编辑

jpchen 发表于 2019-2-26 09:50
如果apk提示没有权限,只需要对相关的串口添加777的权限即可
都已经增加了,还是不行;
我通过adb 修改了ttyS0的权限;
然后用android版本的串口助手打开直接崩溃。
我用自己写的jni串口程序,调试断点,卡死在su.waitfor()!=0这个地方。基本上所有的串口apk都是这个崩溃原因。
su = Runtime.getRuntime().exec("/system/xbin/su");
52               String cmd = "chmod 777 " + device.getAbsolutePath() + "\n" + "exit\n";
53               su.getOutputStream().write(cmd.getBytes());
54               if ((su.waitFor() != 0) || !device.canRead() || !device.canWrite()) {
55                     throw new SecurityException();

但是用电脑的usb转串口 可以和开发板使用cat /dev/ttyS0通信;
所以就不知道问题到底出在哪里了。
或者能不能你们使用串口助手测试一下ttyS0,然后告诉我,是我自己的原因?



jpchen 发表于 2019-2-26 10:43:19

hiking 发表于 2019-2-26 10:18
都已经增加了,还是不行;
我通过adb 修改了ttyS0的权限;
然后用android版本的串口助手打开直接崩溃。
...

这个有可能apk没有root权限,需要固件进行root权限,可以尝试在android7.1是否可以,使用你现在的程序

hiking 发表于 2019-2-26 11:12:10

jpchen 发表于 2019-2-26 10:43
这个有可能apk没有root权限,需要固件进行root权限,可以尝试在android7.1是否可以,使用你现在的程序

开发者选项里面root授权已经设置成ADB和应用了;
不知道您说的固件进行root权限如何做?
我现在计划再重新编译一下源码,请指示,谢谢!!

jpchen 发表于 2019-2-26 11:13:50

hiking 发表于 2019-2-26 11:12
开发者选项里面root授权已经设置成ADB和应用了;
不知道您说的固件进行root权限如何做?
我现在计划再重 ...

android7.1 在开发者选项有个开关是打开root权限,android8.1应该没添加进去,关于android8.1 root可以参考论坛帖子

hiking 发表于 2019-2-26 11:25:29

本帖最后由 hiking 于 2019-2-26 12:42 编辑

jpchen 发表于 2019-2-26 11:13
android7.1 在开发者选项有个开关是打开root权限,android8.1应该没添加进去,关于android8.1 root可以参 ...
我目前编译的8.1这个版本里面已经有了root选项.
好的,我搜索一下,只有这个介绍如何root固件,但是不知道按照这个做能否root8.1?http://dev.t-firefly.com/thread-12145-1-1.html

谢谢!
页: [1] 2
查看完整版本: [已解决]无法使用各种API(FireflyApi)打开/dev/ttyS0