![]() |
|
| Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android |
«
Tema Anterior
|
Siguiente tema
»
|
|
Herramientas |
|
#1
|
|
App que bloquea Intents en Android
Buenas Gente.
Estoy finalizando la carrera, y como Trabajo de Fin de Grado, me han asignado el desarrollo de una app que, en el caso de que una app quiera acceder a los datos de otras app, se muestre un aviso al usuario y este decida si la app puede o no acceder a los datos de dicha aplicación. Aunque ya he programado en anterioridad para android (apps sencillas usando shared preferences y poco más), me gustaría saber si conocéis de algún portal o manual que pueda ayudarme a obtener algo más de información sobre programación avanzada en android. Un saludo y gracias ![]()
|
|
|
|
#2
|
||||
|
||||
|
¿Para esa app en concreto o en términos generales?
Si es lo primero no es demasiado complejo, lo único que tendrías que hacer es mostrar un cuadro de diálogo antes de hacer el setContentView, y según lo que respondas hacerlo o cerrar la Activity. Si es lo segundo, dudo que se pueda, al menos no directamente. No se si habrá algún BroadcastReceiver para cuando se ejecuta una Activity, y en ese caso poder comparar y lanzar un Service Always On Top que te muestre la ventana de aceptar o cancelar. Si aceptas cierras el Service, y si cancelas matas a la Activity con el ActivityManager. Y como he dicho, no se si se puede. |
| Gracias de parte de: | ||
|
#3
|
||||
|
||||
|
Entiendo que hablamos de una especie de firewall de Intents pero que además pueda interceptar, preguntar y aceptar o bloquear.
Uff... Por lo que he leído, desde Android 4.2.2 hay un firewall de Intents que se configura por xml y no parece estar documentado. Serviría para bloquearlos, pero no para preguntar y dejar pasar unos si y otros no. Busca "android intent firewall" Si hablamos de apps con permiso root ya es otra historia, y entonces seria más de hackeo del sistema operativo que también hay literatura pero nunca la he tocado. Tu tutor del TFG podría darte alguna pista de cómose hace, porque como comenta kriogeN yo también dudo de que se pueda, al menos según lo has contado o según lo hemos entendido. P.D.: Para interceptar únicamente puedes inspirarte en esta app https://github.com/intrications/intent-intercept Última edición por mocelet Día 30/05/15 a las 20:03:16 |
| Gracias de parte de: | ||
|
#4
|
||||
|
||||
|
Cita:
|
| Gracias de parte de: | ||
|
#5
|
|
Lo primero gracias por las respuestas.
Como bien dice mocelet, sería una especie de firewall de intents. Algo que te avise en el caso de que una app (un juego por ejemplo) quiera acceder a los contactos, el imei, la ubicación o cualquier otra cosa sobre la que tenga permisos Hablando con mi tutor si que hemos debatido sobre la posibilidad de que para llevarlo a cabo sea necesario tocar el kernel, pero no estamos seguros de si es así. En caso de que haya que tocar el kernel es bastante probable que no se realice, ya que me vendría un poco grande seguramente. |
|
#6
|
||||
|
||||
|
No es que tengas que tocar el Kernel, es que tienes que tocar el SO, y ya no hablo de modificar ficheros, hablo de recompilarlo.
Para todo lo que mencionas no necesitas hacerlo mediante Intents, precisamente hacerlo mediante Intents es para cuando NO tienes permiso. Por ejemplo, una aplicación con permiso de cámara significa que ella misma es una cámara y puede hacer fotos en su propia interfaz (y mostrar la preview y todo eso), pero si no tiene permiso de cámara siempre puede solicitar por Intent que se abra una cámara y cuando esa aplicación se cierre le devuelva el resultado que es la foto, todo eso sin permisos. O el tema de los contactos, si tengo permisos significa que puedo crear un Cursor de los contactos y manipularlo como yo quiera y mostrarlo como yo quiera. Pero si no tengo permisos puedo solicitar un Intent que me abra los contactos y el que yo seleccione me lo devuelva como resultado para usarlo en mi app, pero sólo ese. |
| Gracias de parte de: | ||
|
#7
|
||||
|
||||
|
Algo como hace iOS vaya.
Una app "normal" imposible. Necesitas que el dispositivo tenga root y, probablemente, el framework Xposed que facilita muchos de los hacks que hay. De hecho hay módulos que hacen eso como XPrivacy, algunas ROMs ya incluyen mecanismos parecidos y hasta es posible que lo veamos pronto en Android oficial. Lo veo muy ambicioso como TFG y no veo cómo podría aportar valor añadido a lo que hay. |
| Gracias de parte de: | ||
|
#8
|
||||
|
||||
|
Si antes lo dices, justo hoy ha salido que Android M incluirá esa opción, aunque a medias, las apps podrán pedir permisos al usuario que no tengan durante su instalación. Si ya los tenían los seguirán teniendo y no se tendrán que pedir.
|
| Gracias de parte de: | ||
|
#9
|
||||
|
||||
|
Con lo paranoico que soy ya no solo tendré que mirar los permisos al instalar sino durante la ejecución, qué pereza
|
|
#10
|
|
|
Cita:
Bueno, voy a probar de momento IntentIntercept e Intent Firewall. A ver que tal funcionan y como actuan. Es probable que sea muy ambicioso y que a lo mejor solo consiga un aviso cada vez que una app accede a ciertos datos y que no se pueda bloquear. Pero veo la app todo un reto y me ayudaría muchísimo a entender la arquitectura de android. |
|
#11
|
||||
|
||||
|
El Intent Intercept como decía kriogeN no te valdrá para nada, porque los permisos no tienen que ver nada con los intents. Y el Intent Firewall son ficheros XML con las reglas para bloquear o aceptar, no te va a avisar nadie de que una app accede a algo o no.
La única forma es interceptar las llamadas de sistema, lo más "sencillo" es con el framework Xposed que comentaba. Y siempre con permisos de root, claro. |
| Gracias de parte de: | ||
|
#12
|
|
Bueno, después de darle muchas vueltas y de trastear con el Intent Firewall de Android, voy a diseñar una app que permita interactuar con el Intent Firewall de Android.
Después de mucho investigar, me he dado cuenta de que no hay manera, aún, de conocer quien es el emisor del Intent, por lo tanto bloquearlo entre apps es imposible. No obstante, si se puede bloquear el acceso a las apps que se desee. Mi app tratará de editar un fichero en xml dentro del directorio del Intent Firewall, en ese fichero se establecen las reglas que el firewall deberá seguir. Para ello, el dispositivo móvil deberá de estar rooteado. Sabeis donde puedo consultar el código para que mi app solicite permisos de super usuario? |
|
#13
|
|
Bueno, después de darle muchas vueltas y de trastear con el Intent Firewall de Android, voy a diseñar una app que permita interactuar con el Intent Firewall de Android.
Después de mucho investigar, me he dado cuenta de que no hay manera, aún, de conocer quien es el emisor del Intent, por lo tanto bloquearlo entre apps es imposible. No obstante, si se puede bloquear el acceso a las apps que se desee. Mi app tratará de editar un fichero en xml dentro del directorio del Intent Firewall, en ese fichero se establecen las reglas que el firewall deberá seguir. Para ello, el dispositivo móvil deberá de estar rooteado. Sabeis donde puedo consultar el código para que mi app solicite permisos de super usuario? Gracias por vuestras respuestas ![]() ![]()
|
|
#14
|
|
Bueno, después de darle muchas vueltas y de trastear con el Intent Firewall de Android, voy a diseñar una app que permita interactuar con el Intent Firewall de Android.
Después de mucho investigar, me he dado cuenta de que no hay manera, aún, de conocer quien es el emisor del Intent, por lo tanto bloquearlo entre apps es imposible. No obstante, si se puede bloquear el acceso a las apps que se desee. Mi app tratará de editar un fichero en xml dentro del directorio del Intent Firewall, en ese fichero se establecen las reglas que el firewall deberá seguir. Para ello, el dispositivo móvil deberá de estar rooteado. Sabeis donde puedo consultar el código para que mi app solicite permisos de super usuario? Gracias por vuestras respuestas ![]() ![]()
|
| Respuesta |
Estás aquí
|
||||||
|
||||||
«
Tema Anterior
|
Siguiente tema
»
|
|
Hora actual: 16:18:48 (GMT +1)
HTCMania: líderes desde el 2007







