La aplicación Google Messages tiene una API de mensajes de Android oculta que podría permitir que aplicaciones de mensajería de terceros envíen mensajes RCS.
Actualización 2 (09/07/2021 a las 4:49 p.m. ET): Hemos aprendido que esta API RCS actualmente no está diseñada para que la utilicen aplicaciones de terceros. Haga clic aquí para más información.
Actualizaciones anteriores
Actualización 1 (09/07/2021 a las 02:53 p.m. ET): Hemos actualizado el artículo con información de que la API solo se puede encontrar en la versión exclusiva de Samsung de la aplicación Google Messages. Haga clic aquí para más información.
leer más
RCS, que significa Rich Communication Services, se considera generalmente el sucesor de SMS. Admite funciones como gestión de chat grupal, recursos compartidos de archivos de mayor calidad, confirmaciones de lectura, indicadores de escritura y cifrado de extremo a extremo. Para poder utilizar el protocolo RCS para chats, debe ser compatible con la red, el sistema operativo del teléfono y la aplicación de mensajería del teléfono a través de una API. Los operadores estadounidenses tardaron demasiado en adoptar RCS, por lo que Google los pasó por alto por completo y agregó su propio backend RCS a la aplicación Google Messages. Sin embargo, en Android,
solo La aplicación Google Messages puede acceder a la API RCS de Android. Eso podría cambiar si Google abre su "API de mensajes de Android".En 2019, Aprendimos que Google estaba trabajando para agregar una API RCS. Lamentablemente, las API estaban ocultas para los desarrolladores y solo pueden ser utilizadas por aplicaciones en una lista de permitidos ocultos, que incluye la aplicación Google Messages. Si bien la aplicación Google Messages ha mejorado mucho últimamente, todavía se está actualizado con características básicas lo encontrarás en muchos otros aplicaciones de mensajería de texto para Android. El problema al cambiar a una de esas otras aplicaciones es que no podrás enviar mensajes a través de RCS, por lo que perderás todas las funciones de las que hablamos anteriormente. Sin embargo, encontramos evidencia de que Google tiene una "API de mensajes de Android" no publicada que permite que cualquier aplicación de mensajería de texto de terceros envíe mensajes SMS/MMS/RCS utilizando Google Messages.
Un desmontaje de APK a menudo puede predecir funciones que pueden llegar en una futura actualización de una aplicación, pero es posible que cualquiera de las funciones que mencionamos aquí no aparezca en una versión futura. Esto se debe a que estas características no están implementadas actualmente en la versión en vivo y los desarrolladores pueden eliminarlas en cualquier momento en una versión futura.
Cuando Google Messages se lanzó hoy en Google Play, decodificamos el APK y descubrimos las siguientes cadenas en sus recursos:
<stringname="external_messaging_api_description">With this permission the app will be allowed to send SMS/MMS/RCS using Android Messages. It will have an access to send messages without any extra approvals.string>
<stringname="external_messaging_api_label">Permission to send SMS/MMS/RCS messages using Android Messages APIstring>
Estas cadenas describen claramente un permiso que las aplicaciones de mensajería de terceros pueden solicitar para poder enviar mensajes SMS, MMS o RCS a través de la aplicación Google Messages. Dentro del archivo Manifiesto de la aplicación Google Messages, también encontramos el permiso que las aplicaciones de mensajería tendrán que declarar:
<permissionandroid: description="@string/external_messaging_api_description"android: label="@string/external_messaging_api_label"android: name="com.google.android.apps.messaging.EXTERNAL_MESSAGING_API"android: permissionGroup="android.permission-group.SMS"android: protectionLevel="dangerous"/>
El tipo de permiso aparece como "peligroso", lo que significa que no se otorgará a una aplicación que lo solicite sin que se muestre una confirmación al usuario. Esto también se insinúa en las cadenas incrustadas arriba, que establecen que una aplicación que tiene el permiso puede "enviar mensajes sin ningún tipo de permiso". extra aprobaciones", lo que implica que la aprobación debe otorgarse inicialmente. El permiso está agrupado en la categoría SMS, lo cual tiene sentido ya que solo está destinado a ser utilizado por aplicaciones de mensajería.
Si bien esperábamos que Google abriera la API RCS de la plataforma Android, existe potencialmente una gran ventaja en que Google Messages maneje el enrutamiento de mensajes. Esto podría significar que todos los mensajes RCS enviados a través de una aplicación de mensajería de terceros utilizarán el servicio Chat de Google, que hasta ahora es la implementación RCS más utilizada desde ninguna de las versiones de los transportistas han despegado.
Todavía no hemos encontrado un anuncio de Google sobre esta API de mensajes de Android, pero esperamos verlo abierto pronto. Las aplicaciones de mensajería de texto de terceros están en desventaja en este momento porque carecen de soporte RCS, pero esta API le permitirá usar su aplicación de mensajería de texto favorita y disfrutar de los beneficios de RCS. Por supuesto, la aplicación de mensajería de texto de terceros tendrá que implementar la nueva API, pero no parece que sea demasiado difícil de implementar.
Precio: Gratis.
4.2.
Actualización 1: API solo se encuentra en la versión Samsung de la aplicación
Poco después de publicar este artículo, supimos que las cadenas y la entrada del manifiesto para la API de mensajes de Android solo se pueden encontrar en el Aplicación Google Messages para teléfonos Samsung Galaxy. Es la misma aplicación y nombre de paquete, pero Google Play implementa dinámicamente esta versión de la aplicación en los teléfonos Samsung Galaxy. Estas entradas se agregaron hace varias versiones, por lo que la API en sí no parece ser nueva. No estamos seguros de por qué las entradas solo aparecen en la versión de la aplicación para teléfonos Samsung, pero es posible. Google creó la API para que la aplicación de mensajería de Samsung pueda usar el servicio de chat de Google sin que los usuarios tengan que cambiar aplicaciones. Sin embargo, no vemos por qué esta API no se puede abrir a otras aplicaciones, y tampoco vemos ninguna evidencia dentro de la aplicación Samsung Messages de que esté usando esta API. Con suerte, Google abre la API a todas las aplicaciones de mensajería de terceros incluyéndola en la versión principal de la aplicación.
Actualización 2: API restringida a aplicaciones de Samsung
Profundizando en la aplicación Google Messages (h/t 9to5Google), encontramos evidencia de que esta API de mensajes de Android está actualmente restringida para su uso en determinadas aplicaciones de Samsung. Específicamente, parece que esta función tiene como objetivo permitir que los dispositivos portátiles y tabletas conectadas de Samsung envíen mensajes SMS, MMS y RCS a través de Google Messages. Esto es parte de la función Continuidad de llamadas y mensajes de Samsung.
La lista de permitidos actual incluye el paquete de continuidad de llamadas y mensajes, es decir. "com.samsung.android.mdecservice", entre otras apps. El código verifica el nombre del paquete y la firma de la aplicación solicitante antes de otorgar acceso a la API. Una bandera permite que cualquier aplicación acceda a la API, pero este valor está claramente destinado a no usarse públicamente. (La bandera se llama acertadamente "allow_any_app_to_connect_do_not_use_in_public_builds".)
Gracias a PNF Software por proporcionarnos una licencia de uso. Descompilador JEB, una herramienta de ingeniería inversa de nivel profesional para aplicaciones de Android.