Android权限问题导致的系统调用bug

来源:互联网 发布:淘宝库存怎么看 编辑:程序博客网 时间:2024/06/18 17:47

昨天移植linux上的程序到android emulator上

top后发现cpu占用特别高。strace后发现循环调用SYS_282 (某参数随机生成):

 

SYS_282(0xffffffff, 0xbea0866c, 0x10, 0xd9, 0xe0d9) = -1 EBADF (Bad file descriptor)

 

查找$ANDROID/bionic/libc/kernel/arch-arm/asm/unistd.h文件

 

282调用对应:

 

#define __NR_bind (__NR_SYSCALL_BASE+282)

 

发现bind的socket没创建成功就用了

 

这个Native程序是通过Java exec调用的,Android中设置了严格的访问权限

 

修改Manifest.xml,添加

 

    <uses-permission android:name="android.permission.INTERNET" >
    </uses-permission>

 

pass