4 votos

¿Cómo desactivar RIL en Android?

En cuanto conecto un módem USB al dispositivo android, el sistema captura ttyACM0 y ttyACM1 en un intento de abrir la conexión. Como resultado, los puertos quedan bloqueados y no pueden ser abiertos por otros servicios. ¿Cómo, si es posible, puedo desactivar RIL en android para evitar que bloquee ttyACM0 y ttyACM1 tan pronto como se conecte el módem? ¿Se puede hacer sin tener que reconstruir Android?

He intentado hacer los siguientes cambios en init.rc, así como eliminar la entrada del servicio ril-daemon.

setprop ro.radio.noril yes
setprop hw.nophone true

0 votos

Construye tu ROM personalizado.

3voto

user1147688 Puntos 238

Las consecuencias de deshabilitar el demonio RIL (rild) dependen del hardware. Debido a que RIL se está involucrando cada vez más en todos los aspectos de los elementos relacionados con la radio, incluido WiFi. La forma más fácil de detener RIL es matando rild. Pero necesitas tener un dispositivo rooteado para hacer esto. Abre una terminal y obtén permisos de root (#).

# kill -9 `pidof rild`

Luego puedes verificar el estado actual con:

# getprop |grep init.svc.ril
...
[init.svc.ril-daemon]: [stopped]
[init.svc.ril-qmi]: [stopped]

Para reiniciar rild debes apuntarlo a los archivos correctos de dispositivo y biblioteca. Puedes encontrar cuáles son con:

# getprop | grep rild.lib
...
[rild.libargs]: [-d /dev/smd0]
[rild.libpath]: [/system/lib/libril-qc-qmi-1.so]

Luego reinicia con*:

# rild -l /system/lib/libril-qc-qmi-1.so -- -d /dev/smd0 

* <strong>PD.</strong> En realidad no he probado esta línea, así que siéntete libre de editar este post. Es posible que también necesites suministrar el contexto SE correcto a SU también...

0 votos

No parece haber ningún proceso llamado rild en ejecución. Esto es android 7.1.1.

0 votos

Mi publicación original fue de 2014, por lo que seguramente hoy en día, el nombre más común puede ser algo diferente ril*, como ril-daemon como se sugiere a continuación.

3voto

cmaster Puntos 427

1. cómo detener rild

nota: probado en android 4.4

intenta1

kill -9 `pidof rild`

autoiniciará un nuevo rild

intenta2

detener servicio rild

no funcionó para mí.

intenta3

detener ril-daemon

esto funcionó, lo encontré en /etc/init.rc:

on property:ril.reset.rild=1
    detener ril-daemon
    iniciar ril-daemon
    setprop ril.reset.rild 0

//entonces setprop ril.reset.rild 1 también puede reiniciar rild.

acerca del nombre del servicio

servicio ril-daemon /system/bin/rild ...

encontré esa línea en init.rc, tal vez esto define el nombre del servicio al que se hace referencia en intenta3

2. responde la pregunta

tal vez puedas imitar la configuración en intenta3, agregar esta línea de configuración.

on property:ro.radio.noril=yes
    detener ril-daemon

1voto

abs Puntos 31

Matar el demonio no es la forma correcta aunque mataría el servicio pero no podrás acceder a él de nuevo. Escribe stop service rild en adb shell y funcionará de nuevo correctamente para otros servicios. Puedes verificar escribiendo ps si el proceso rild está ahí o no. Justo trabajé en esto hace unos días.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X