O aplicativo Mensagens do Google possui uma API de mensagens Android oculta que pode permitir que aplicativos de mensagens de terceiros enviem mensagens RCS.
Atualização 2 (09/07/2021 às 16h49 horário do leste dos EUA): Aprendemos que esta API RCS atualmente não se destina ao uso por aplicativos de terceiros. Clique aqui para obter mais informações.
Atualizações anteriores
Atualização 1 (09/07/2021 às 14h53 horário do leste dos EUA): Atualizamos o artigo com informações de que a API só pode ser encontrada na versão exclusiva da Samsung do aplicativo Google Mensagens. Clique aqui para obter mais informações.
consulte Mais informação
RCS, que significa Rich Communication Services, é geralmente visto como o sucessor do SMS. Ele oferece suporte a recursos como gerenciamento de bate-papo em grupo, compartilhamentos de arquivos de maior qualidade, recibos de leitura, indicadores de digitação e criptografia ponta a ponta. Para usar o protocolo RCS para bate-papos, ele deve ser compatível com a rede, o sistema operacional do telefone e o aplicativo de mensagens do telefone por meio de uma API. As operadoras americanas demoraram muito para adotar o RCS, então o Google as ignorou completamente e adicionou seu próprio backend RCS ao aplicativo Mensagens do Google. No entanto, no Android,
apenas o aplicativo Mensagens do Google pode acessar a API RCS do Android. Isso pode mudar se o Google abrir sua “API de mensagens do Android”.Em 2019, nós aprendemos que o Google estava trabalhando para adicionar uma API RCS. Infelizmente, as APIs foram ocultadas dos desenvolvedores e só podem ser usadas por aplicativos em uma lista de permissões oculta – que inclui o aplicativo Mensagens do Google. Embora o aplicativo Mensagens do Google tenha melhorado muito ultimamente, ainda está sendo atualizado com recursos básicos você encontrará em muitos outros aplicativos de mensagens de texto para Android. O problema de mudar para um desses outros aplicativos é que você não poderá enviar mensagens por RCS, então perderá todos os recursos de que falamos acima. No entanto, encontramos evidências de que o Google possui uma "API de mensagens do Android" não divulgada que permite que qualquer aplicativo de mensagens de texto de terceiros envie mensagens SMS/MMS/RCS usando o Mensagens do Google.
Muitas vezes, a desmontagem de um APK pode prever recursos que podem chegar em uma atualização futura de um aplicativo, mas é possível que qualquer um dos recursos mencionados aqui não chegue em uma versão futura. Isso ocorre porque esses recursos não estão atualmente implementados na versão ativa e podem ser retirados a qualquer momento pelos desenvolvedores em uma versão futura.
Quando o Mensagens do Google foi lançado hoje no Google Play, decodificamos o APK e descobrimos as seguintes strings em seus 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>
Essas strings descrevem claramente uma permissão que aplicativos de mensagens de terceiros podem solicitar para enviar mensagens SMS, MMS ou RCS por meio do aplicativo Mensagens do Google. No arquivo de manifesto do aplicativo Mensagens do Google, também encontramos a permissão que os aplicativos de mensagens terão 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"/>
O tipo de permissão está listado como “perigoso”, o que significa que não será concedido a um aplicativo solicitante sem que uma confirmação seja exibida ao usuário. Isso também é sugerido nas strings incorporadas acima, que afirmam que um aplicativo que detém a permissão pode “enviar mensagens sem qualquer extra aprovações", o que implica que a aprovação deve ser dada inicialmente. A permissão está agrupada na categoria SMS, o que faz sentido, pois se destina apenas ao uso por aplicativos de mensagens.
Embora esperássemos ver o Google abrir a API RCS da plataforma Android, há potencialmente uma grande vantagem em fazer com que o Mensagens do Google lide com o roteamento de mensagens. Isso pode significar que todas as mensagens RCS enviadas por meio de um aplicativo de mensagens de terceiros usarão o serviço de bate-papo do Google, que é até agora a implementação RCS mais usada desde nenhuma das versões das operadoras decolaram.
Ainda não encontramos um anúncio do Google sobre esta API de mensagens do Android, mas esperamos vê-la aberta em breve. Aplicativos de mensagens de texto de terceiros estão em desvantagem no momento, pois não possuem suporte RCS, mas esta API significa que você pode usar seu aplicativo de mensagens de texto favorito e aproveitar os benefícios do RCS. É claro que o aplicativo de mensagens de texto de terceiros terá que implementar a nova API, mas não parece que será muito difícil de implementar.
Preço: Grátis.
4.2.
Atualização 1: API encontrada apenas na versão Samsung do aplicativo
Pouco depois de publicarmos este artigo, aprendemos que as strings e a entrada do manifesto para a API de mensagens do Android só podem ser encontradas no arquivo Aplicativo Google Mensagens para telefones Samsung Galaxy. É o mesmo nome de aplicativo e pacote, mas o Google Play implementa dinamicamente esta versão do aplicativo para telefones Samsung Galaxy. Essas entradas foram adicionadas há várias versões, portanto a API em si não parece ser nova. Não sabemos por que as entradas só aparecem na versão do aplicativo para telefones Samsung, mas é possível O Google criou a API para que o aplicativo de mensagens da Samsung possa usar o serviço de bate-papo do Google sem que os usuários precisem mudar aplicativos. No entanto, não vemos por que esta API não pode ser aberta para outros aplicativos, e também não vemos nenhuma evidência ainda no próprio aplicativo Samsung Messages de que esteja usando esta API. Esperançosamente, o Google abre a API para todos os aplicativos de mensagens de terceiros, incluindo-a na versão principal do aplicativo.
Atualização 2: API restrita a aplicativos Samsung
Aprofundando-se no aplicativo Mensagens do Google (h/t 9to5Google), encontramos evidências de que esta API de mensagens do Android está atualmente restrita para uso por aplicativos Samsung selecionados. Especificamente, parece que esse recurso tem como objetivo permitir que wearables e tablets conectados da Samsung enviem mensagens SMS, MMS e RCS por meio do Mensagens do Google. Isso faz parte do recurso Call & Message Continuity da Samsung.
A lista de permissões atual inclui o pacote para continuidade de chamadas e mensagens, ou seja. "com.samsung.android.mdecservice", entre outros aplicativos. O código verifica o nome do pacote e a assinatura do aplicativo solicitante antes de conceder acesso à API. Um sinalizador permite que qualquer aplicativo acesse a API, mas esse valor claramente não deve ser usado publicamente. (O sinalizador é apropriadamente denominado "allow_any_app_to_connect_do_not_use_in_public_builds".)
Obrigado à PNF Software por nos fornecer uma licença para usar Descompilador JEB, uma ferramenta de engenharia reversa de nível profissional para aplicativos Android.