• Nenhum resultado encontrado

Android Core. Felipe Silveira felipesilveira.com.br. Aula 5

N/A
N/A
Protected

Academic year: 2021

Share "Android Core. Felipe Silveira felipesilveira.com.br. Aula 5"

Copied!
29
0
0

Texto

(1)

Android Core

Felipe Silveira

(2)
(3)

RIL: Radio Interface Layer

O que é RIL?

Camada de abstração entre os serviços de telefonia de android (android.telephony) e o hardware de rádio.

● 2 principais componentes:

- RIL Daemon (rild) - Vendor RIL

(4)

RIL: Radio Interface Layer

(5)

RIL: Radio Interface Layer

Packet Driver PPP, for example Linux IP stack Vendor RIL system/libs/libril-vendor.so

Radio Daemon (rild)

commands/rild

Phone

android.telephony.*

Applications (Phone, Messaging, Contacts, etc.)

RIL API (RILJ)

android.telephony.gsm.*

(6)

RIL: Radio Interface Layer

Packet Driver PPP, for example Linux IP stack Vendor RIL system/libs/libril-vendor.so

Radio Daemon (rild)

commands/rild

Phone

android.telephony.*

Applications (Phone, Messaging, Contacts, etc.)

RIL API (RILJ)

android.telephony.gsm.*

(7)

RIL: Radio Interface Layer

Packet Driver PPP, for example Linux IP stack Vendor RIL system/libs/libril-vendor.so

Radio Daemon (rild)

commands/rild

Phone

android.telephony.*

Applications (Phone, Messaging, Contacts, etc.)

RIL API (RILJ)

android.telephony.gsm.*

(8)

RIL: Radio Interface Layer

Packet Driver PPP, for example Linux IP stack Vendor RIL system/libs/libril-vendor.so

Radio Daemon (rild)

commands/rild

Phone

android.telephony.*

Applications (Phone, Messaging, Contacts, etc.)

RIL API (RILJ)

android.telephony.gsm.*

(9)

RIL: Radio Interface Layer

Packet Driver PPP, for example Linux IP stack Vendor RIL system/libs/libril-vendor.so

Radio Daemon (rild)

commands/rild

Phone

android.telephony.*

Applications (Phone, Messaging, Contacts, etc.)

RIL API (RILJ)

android.telephony.gsm.*

(10)

RIL: Radio Interface Layer

Packet Driver PPP, for example Linux IP stack Vendor RIL system/libs/libril-vendor.so

Radio Daemon (rild)

commands/rild

Phone

android.telephony.*

Applications (Phone, Messaging, Contacts, etc.)

RIL API (RILJ)

android.telephony.gsm.*

Baseband

(11)

RILD - Radio Interface Layer Daemon

O termo RILD se refere ao componente responsável por controlar as tarefas de telefonia.

A abreviação terminada em D indica que ele é um

(12)

RILD - Radio Interface Layer Daemon

Em linux, daemons são softwares responsáveis por

receber comandos que serão executados em background. Este software é executado em um processo que nunca é terminado.

Exemplos: sshd, ftpd, httpd, etc

(13)

RILD - Radio Interface layer daemon

● Responsável por inicializar o Vendor RIL

● Faz o processamento de toda comunicação entre os

serviços de telefonia android e dispara chamadas para o Vendor RIL através dos Solicited Commands. Por

(14)
(15)

RILC

● Escrito em C ● hardware/lib/ril ● Event Scheduler responsável por processar as requisições solicitadas e não-solicitadas.

(16)

Vendor RIL

● hardware/ril/ reference-ril ● Lib proprietária, responsável por acessar o BP para serviços de voz/mensagens/contro le e a IP stack para dados

(17)

RILD Startup

Inicialização do RIL daemon é feita pelo init.rc:

service ril-daemon /system/bin/rild

class main

socket rild stream 660 root radio

socket rild-debug stream 660 radio system

user root

(18)

RILD Startup

Após a inicialização do rild, este executa a seguinte sequência para inicializar toda a stack de telefonia e o Vendor RIL:

1) O rild lê as system properties rild.libpath e rild.libargs

para determinar qual será o Vendor RIL utilizado e quais são os parâmetros necessários. Por exemplo:

rild.libpath=/system/lib/libreference-ril.so rild.libargs=-d /dev/pts/0

(19)

RILD Startup

2) O rild então carrega o Vendor RIL e invoca o seu

método RIL_Init para obter uma referência para as funções da interface do RIL.

(20)

RILD Startup

3) O rild invoca o método RIL_register para obter uma

(21)

Interações com o RIL

O RIL interage com os outros componentes de um telefone android através de dois mecanismos:

Comandos solicitados

Comandos originados da RIL lib (RILJ) ● Comandos não solicitados

(22)

Comandos Solicitados

Requisições solicitadas são aquelas que se originam da RIL API, na maioria das vezes a partir de alguma ação do

usuário. Exemplos:

DIAL HANGUP

(23)

Comandos Solicitados

Interface de tratamento de requisições solicitadas:

void RIL_OnRequest (int request_id, void *data, size_t datalen, RIL_Token t);

void RIL_OnRequestComplete (RIL_Token t, RIL_Error e, void *response, size_t

(24)

Comandos Solicitados

Mais de 60 comandos disponíveis, divididos nos seguintes grupos:

SIM PIN, IO, and IMSI/IMEI (11)

Call status and handling (dial, answer, mute…) (16) Network status query (4)

Network setting (barring, forwarding, selection…) (12) SMS (3)

PDP connection (4) Power and reset (2)

Supplementary Services (5) Vendor defined and support (4)

(25)
(26)

Comandos Não Solicitados

As requisições não solicitadas, por sua vez, são aquelas que ocorrem a partir de um evento na camada de

Baseband. Exemplos:

CALL_STATE_CHANGED NEW_SMS

(27)

Comandos Não Solicitados

Interface de tratamento de requisições não solicitadas: void OnUnsolicitedResponse (int unsolResponse, void *data, size_t datalen);

(28)

Comandos Não Solicitados

Mais de 10 comandos disponíveis, divididos nos seguintes grupos:

Network status changed (4) New SMS notify (3)

New USSD notify (2)

(29)

Referências

Documentos relacionados

Moss e Moss (2004), verificaram um aumento significativo no crescimento e/ou sobrevivência de camarões juvenis de Litopenaeus vannamei através da adição de substrato

Como resultando, Hollanda (2002, também Hollanda et al., 2006) publicaram uma classificação baseada na distribuição de idades modelo T DM , não levando em conta critérios

A partir de 20 de fevereiro de 2017, os excedentes serão convocados para matrícula, por ordem rigorosa de classificação, em listagem divulgada no endereço eletrônico www.fm.usp.br

A avaliação mais profunda da questão da penetração da eficiência energética no planejamento energético de longo prazo, bem como os resultados obtidos por meio

O Reitor do Instituto Federal de Santa Catarina (IFSC) torna público pelo presente Edital, de acordo com as disposições legais em vigor, o início do período de manifestação de

Assim, o artigo que aqui se apresenta, “Precisamos vestirmo-nos com a luz negra”: uma análise autoral nos cinemas africanos - o caso Flora Gomes, é uma síntese do

S RI A UROBINDO Por último, sobre as palavras alto, dentro, dentro, alto: elas denotam referências e relações espaciais; para Sri Aurobindo, são também

(2016), os frutos da variedade Breda e Margarida podem ser classificados como grandes, o teor de polpa como mediano a alto, o teor de casca como baixo, já o teor de caroço