Android无线电接口层(RIL)和/dev/



有人知道RIL (/hardware/reference/reference- RIL/)如何确定在基带无线电启动时安装在/dev/中的内容吗?

在旧的手机和其他文档中,GSM手机使用/dev/smd0。不是所有的手机都使用/dev/smd0。我正试图确定一种方法来找出安装什么,而不管无线电和供应商的类型。

如果有人能明确地指出在/hardware/reference/reference-ril/中我可以看到这是在哪里设置的,以及它在初始化时从哪里提取信息,那将是完美的。

RIL在应用程序框架中。

如果您想查看RIL并使用命令提示符实现该功能,则可以使用

。命令如下:

void (*RIL_RequestFunc) (int request, void *data, size_t datalen, RIL_Token t);

我从这里找到了这个:

如果你是认真的,请通过链接:RIL研究链接

如果你想知道的例子:GIT中心

这实际上取决于您使用的连接接口。您可以使用USB, UART或SPI接口将上层与调制解调器连接。在RIL_Init函数中传递的参数决定了您要连接的设备。如果你想知道这是在哪里完成的,请参阅参考-ril.c中的RIL_Init函数。

const RIL_RadioFunctions *RIL_Init(const struct RIL_Env *env, int argc, char **argv)

{

int ret;
int fd = -1;
int opt;
pthread_attr_t attr;
s_rilenv = env;
while ( -1 != (opt = getopt(argc, argv, "p:d:s:"))) {
    switch (opt) {
        case 'p':
            s_port = atoi(optarg);
            if (s_port == 0) {
                usage(argv[0]);
                return NULL;
            }
            RLOGI("Opening loopback port %dn", s_port);
        break;
        case 'd':
            s_device_path = optarg;
            RLOGI("Opening tty device %sn", s_device_path);
        break;
        case 's':
            s_device_path   = optarg;
            s_device_socket = 1;
            RLOGI("Opening socket %sn", s_device_path);
        break;
        default:
            usage(argv[0]);
            return NULL;
    }
}
if (s_port < 0 && s_device_path == NULL) {
    usage(argv[0]);
    return NULL;
}
sMdmInfo = calloc(1, sizeof(ModemInfo));
if (!sMdmInfo) {
    RLOGE("Unable to alloc memory for ModemInfo");
    return NULL;
}
pthread_attr_init (&attr);
pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
ret = pthread_create(&s_tid_mainloop, &attr, mainLoop, NULL);
return &s_callbacks;

}

我希望现在事情都清楚了。

相关内容

  • 没有找到相关文章

最新更新