Em uma resposta, fui aconselhado a usar service call phone 2 s16 "$number"
. Funciona, mas service list
vejo outras coisas úteis que não sei usar e não consigo encontrar facilmente as informações na Internet.
Não vejo nenhuma introspecção service
além de service list
me descobrir ...
Onde encontrar uma descrição mais completa das chamadas de "serviço" e seus parâmetros?
adb
command-line
services
Vi0
fonte
fonte
Respostas:
Em resumo
Em detalhes
, enfrentei muitos problemas para saber sobre isso e, portanto, compartilharei a solução com a ajuda do serviço de área de transferência.
Primeiro, você precisa saber sobre o serviço em que está interessado -
Para isso, você precisa procurar por todo o serviço disponível para um sistema Android específico, digitando
Aqui está o que você receberá -
Como estou interessado no serviço da área de transferência, aqui está como
Portanto, a partir daqui, podemos resumir que o nome do serviço é serviço da área de transferência e o caminho do pacote é android.content.IClipboard
Então você precisa conhecer o caminho completo onde está o IClipboard.aidl.
Para saber que você precisa pesquisar no google por IClipboard.aidl.
Você precisa procurar algo no site android.googlesource.com nos resultados, como no meu caso-
Então, após + / android-4.2.2_r1, é onde está o seu caminho. Deixe esse caminho ser path_of_clipboard.aidl =
Como esses códigos de chamada de serviço são dependentes do sistema Android, portanto, você precisa saber o nome do seu sistema operacional Android. No meu caso, é 8.1.0.
Então irei ao site a seguir, onde o Google coloca o código lá e seleciona a versão do sistema operacional no lado esquerdo da página -
https://android.googlesource.com/platform/frameworks/base/
No meu caso, é android-8.1.0_r50.I clicarei nele e, depois disso, meu URL ficará assim
E depois de adicionar path_of_clipboard.aidl, meu URL completo terá a aparência de
Aqui haverá muitos métodos na interface. Como no meu caso
Portanto, o código para o primeiro método, por exemplo, setPrimaryClip, será 1, como ocorreu no primeiro lugar, e, para o último método, hasClipboardText, será 7, como ocorreu no sétimo lugar no arquivo aidl. Da mesma forma para os outros métodos.
Então, se eu quiser chamar o sétimo método, digitarei
Como você deve ter visto, eu não coloquei o nome chamandoPackage, pois não é necessário.
Se o método precisar de argumentos, você poderá transmiti-lo como mostra este exemplo.
Vamos assumir um método cujo código é 8 na área de transferência e que se parece com isso -
Então eu vou chamar assim
Aqui i32 significa número inteiro de 32 bits e s16 para a string. Podemos até passar o valor booleano como um número inteiro, como mostrado no exemplo.
No número inteiro booleano 1 significa verdadeiro e 0 como falso.
DICA Mantenha o logcat aberto (como no android studio) para verificar se há algum erro que ocorreu ao executar esse comando adb.
Fonte
fonte
O verdadeiro problema
service call
é que os códigos de transação não apenas não são documentados, mas também não são garantidos como estáveis - eles podem ser alterados silenciosamente entre as versões do Android. Por esseservice call
motivo , os comandos nunca devem ser usados, exceto para depuração privada, quando você souber qual versão do Android é usada.Exemplo:
(Aqui
FIRST_CALL_TRANSACTION
= 1, o código de transação real que deve ser usado noservice call phone
comando é o número visto na fonte mais 1.)Observe que na nova versão
TRANSACTION_supplyPuk
foi inserida no meio e todos os códigos a seguir foram alterados para 1. Qualquer coisa que costumavaservice call phone
executar essas transações seria horrivelmente interrompida quando usada no Android 4.2.2 - os mesmos códigos resultariam na chamada de métodos completamente diferentes , possivelmente com resultados desastrosos.fonte
service call
, mas ainda permite que muitas coisas sejam feitas no console do superusuário?Não há documentação. Mas você pode encontrar todas as informações que procura no código-fonte do Android.
service list
fornece o nome do pacote. Então, pelophone
serviço que écom.android.internal.telephony.ITelephony
. Você encontrará todos os parâmetros possíveisservice call phone
listados nacom/android/internal/telephony/ITelephony.java
sua versão do Android.fonte