Dalam satu jawaban saya disarankan untuk menggunakannya service call phone 2 s16 "$number"
. Ini berfungsi, tetapi dalam service list
saya melihat hal-hal berguna lainnya saya tidak tahu cara menggunakan dan tidak dapat dengan mudah menemukan informasi di Internet.
Saya tidak melihat adanya introspeksi service
selain service list
untuk mencari tahu sendiri ...
Di mana menemukan deskripsi yang lebih lengkap tentang panggilan "layanan" dan parameternya?
Jawaban:
Pendeknya
Secara rinci
saya menghadapi banyak masalah untuk mengetahuinya dan karenanya saya akan membagikan solusinya dengan bantuan layanan clipboard.
Pertama, Anda perlu tahu tentang layanan yang Anda minati -
Untuk itu Anda perlu mencari semua layanan yang ada untuk sistem android tertentu dengan mengetik
Inilah yang akan Anda dapatkan -
Karena saya tertarik dengan layanan clipboard, berikut tampilannya
Jadi dari sini kita dapat meringkas bahwa nama layanan adalah layanan clipboard dan jalur paket adalah android.content.IClipboard
Maka Anda perlu tahu jalur lengkap di mana IClipboard.aidl berada.
Untuk mengetahui bahwa Anda perlu mencari di IClipboard.aidl google.
Anda perlu mencari sesuatu dari situs web android.googlesource.com dalam hasil, seperti dalam case- saya
Jadi setelah + / android-4.2.2_r1 di mana jalur Anda berada. Biarkan jalur itu menjadi path_of_clipboard.aidl =
Karena kode panggilan layanan ini tergantung pada sistem android, maka Anda perlu tahu nama os android Anda - Dalam kasus saya adalah 8.1.0
Jadi saya akan pergi ke situs web berikut di mana google meletakkan kode di sana dan memilih versi os saya dari sisi kiri untuk halaman -
https://android.googlesource.com/platform/frameworks/base/
Dalam kasus saya ini adalah android-8.1.0_r50. Saya akan mengkliknya dan kemudian setelah itu url saya akan terlihat seperti ini
Dan kemudian setelah menambahkan path_of_clipboard.aidl, url lengkap saya akan terlihat seperti
Di sini akan ada banyak metode dalam antarmuka. Seperti dalam kasus saya
Jadi kode untuk metode pertama yaitu setPrimaryClip akan menjadi 1 seperti yang terjadi di tempat pertama dan bahwa untuk metode terakhir yaitu hasClipboardText akan menjadi 7 seperti yang terjadi di tempat ketujuh dalam file Aidl. Demikian pula untuk metode lainnya.
Jadi jika saya ingin memanggil metode ketujuh saya akan mengetik
Seperti yang Anda mungkin telah melihat bahwa saya belum memasukkan nama callingPackage karena tidak diperlukan.
Jika metode ini membutuhkan argumen, maka Anda dapat meneruskannya seperti yang ditunjukkan pada contoh ini.
Mari kita asumsikan metode yang kodenya 8 di clipboard dan terlihat seperti ini -
Jadi saya akan menyebutnya seperti ini
Di sini i32 berarti integer 32 bit dan s16 untuk string. Kita dapat, bahkan meneruskan nilai boolean sebagai integer seperti yang ditunjukkan dalam contoh.
Dalam boolean integer 1 berarti true dan 0 untuk false.
TIP Biarkan logcat tetap terbuka (seperti di android studio) untuk memeriksa kesalahan yang terjadi saat menjalankan perintah adb itu.
Sumber
sumber
Masalah sebenarnya
service call
adalah bahwa kode transaksi tidak hanya tidak terdokumentasi, tetapi juga tidak dijamin stabil - kode tersebut dapat diubah secara diam-diam di antara versi Android. Karena itu,service call
perintah tidak boleh digunakan kecuali untuk debugging pribadi, ketika Anda tahu versi Android apa yang digunakan.Contoh:
(Di sini
FIRST_CALL_TRANSACTION
= 1, jadi kode transaksi aktual yang harus digunakan dalamservice call phone
perintah adalah angka yang terlihat di sumber ditambah 1.)Perhatikan bahwa dalam versi baru
TRANSACTION_supplyPuk
telah disisipkan di tengah, dan semua kode berikut sekarang digeser oleh 1. Apa pun yang digunakanservice call phone
untuk melakukan transaksi tersebut akan rusak parah ketika digunakan pada Android 4.2.2 - kode yang sama akan menghasilkan memanggil metode yang sama sekali berbeda , mungkin dengan hasil bencana.sumber
service call
, namun masih memungkinkan banyak hal dilakukan dari konsol superuser?Tidak ada dokumentasi. Tetapi Anda dapat menemukan semua informasi yang Anda cari dalam kode sumber android.
service list
memberi Anda nama paket. Jadi untukphone
layanannyacom.android.internal.telephony.ITelephony
. Anda akan menemukan semua parameter yang mungkin untukservice call phone
dicantumkan dicom/android/internal/telephony/ITelephony.java
versi Android Anda.sumber