Apa yang saya cari:
Apakah ada cara untuk membuat perangkat mengklaim sebagai keyboard / HID ketika dicolokkan ke port USB dan "ketik" isi clipboard? Lebih akurat; Apa yang diperlukan untuk mewujudkannya?
Memotivasi use case:
Saya memiliki program penyimpan kata sandi di ponsel saya, tetapi menjengkelkan harus membaca kata sandi dari perangkat dan mencoba mengetiknya di komputer lain.
Latar Belakang:
Saya memiliki perangkat Android yang dibangun sebelum MTP didukung untuk mentransfer file tetapi, dengan peningkatan terbaru, sekarang mendukungnya. Berdasarkan ini, kelas USB yang diklaimnya tidak dapat didefinisikan perangkat keras dan harus ditentukan dalam perangkat lunak.
IIRC, proyek ini memiliki perangkat Android (dengan apa yang saya pikir adalah kernel saham) berbicara sebagai beberapa kelas USB yang pasti tidak built-in. Ini menunjukkan kepada saya bahwa Anda mungkin dapat mengontrol kelas USB apa yang didukung tanpa kerja kernel tapi saya tidak tahu pasti.
Sedangkan untuk sisi Host (yaitu PC), saya belum pernah melihat PC, Mac atau Linux membutuhkan drive khusus untuk keyboard, bahkan untuk beberapa perangkat yang agak esoteris yang mengklaim sebagai keyboard (pemindai kode batang, kartu kredit, dan smart pembaca kartu, dll.) sehingga driver generik harus cukup baik untuk apa yang saya inginkan.
Semua yang berpendapat bahwa apa yang saya cari dapat dilakukan dari sudut pandang perangkat keras , tetapi mengatakan sangat sedikit tentang apa yang ada dukungan perangkat lunak dan apa-apa tentang jika ada aplikasi untuk itu.
Jawaban:
Iya. Ini sangat mungkin, tidak memerlukan modifikasi atau driver pada PC. Seperti yang disebutkan OP, identifikasi USB pada ujung telepon pada akhirnya dilakukan dalam perangkat lunak (dalam file ini https://github.com/android/kernel_msm/blob/android-msm-2.6.35/drivers/usb/gadget/composite .c ), dan dapat dimodifikasi untuk mengidentifikasi dirinya sebagai keyboard USB standar.
Perubahan ini akan membutuhkan beberapa hal.
Ada sebuah makalah yang diterbitkan beberapa tahun yang lalu (berjudul Mengeksploitasi konektivitas USB ponsel pintar untuk kesenangan dan keuntungan ) yang menggambarkan penggunaan ponsel untuk memaksa layar masuk desktop. Metode yang mereka gunakan melibatkan membuat ponsel tampil sebagai keyboard USB.
sumber
Ini tidak persis menjawab pertanyaan Anda, tetapi mungkin membantu dalam kasus penggunaan Anda.
Mungkin Anda ingin melihat InputStick . Ini akan menjadi USB thumb drive yang Anda pasangkan ke Android melalui Bluetooth. Dicolokkan ke komputer, ia mengemulasi HID USB generik untuk mengirim coretan keyboard. API Java tingkat lanjut juga akan memungkinkan untuk menentukan mis deskriptor perangkat untuk meniru fungsi-fungsi non-standar. Itu bisa memberikan contoh yang bagus bahwa itu didefinisikan dalam perangkat lunak daripada perangkat keras.
Sebagai referensi, pengembang juga sedang mengerjakan contoh program, seperti Demo Password Manager.
sumber
Paling tidak, ini akan membutuhkan perangkat lunak pada ponsel dan PC. 2 buah perangkat lunak harus berkomunikasi satu sama lain. Tidak ada yang seperti ini, yang saya tahu saat ini, ada.
Dan bagi PC untuk berpikir bahwa perangkat itu benar-benar keyboard, itu akan memerlukan driver baru yang akan memberi tahu PC bahwa perangkat itu adalah keyboard, dan bagaimana "menggunakannya sebagai keyboard".
Saya tidak mengatakan bahwa itu tidak mungkin, karena hampir semua hal mungkin terjadi dalam hal-hal seperti ini. Apa yang saya katakan adalah tidak ada yang seperti ini yang ada saat ini.
USB adalah perangkat keras dan perangkat lunak, jika perangkat lunak itu sendiri, maka driver USB yang sama akan bekerja untuk semua perangkat Android di Windows, dan ini bukan masalahnya. Penyimpanan massal USB dan MTP ditangani oleh driver pada PC, bukan perangkat. Perangkat apa yang mendukung MTP dan penyimpanan massal USB dan pada saat yang sama? Saya telah menemukan artikel yang menyatakan bahwa perangkat dapat mendukung UMS dan MTP, tetapi hanya mendukung UMS jika ada sdcard eksternal. Anda tidak dapat memasang sdcard eksternal dengan MTP dan dengan UMS. MTP adalah untuk penyimpanan internal. Dan saya belum membaca apa pun yang dapat mengkonfirmasi atau menyangkal bahwa Anda dapat menggunakan keduanya sekaligus.
Anda tidak harus menginstal driver untuk keyboard, jika mereka mengikuti spesifikasi "default" karena windows sudah memiliki driver untuk itu. Ada keyboard yang datang dengan driver mereka sendiri. Seperti yang saya katakan, itu mungkin. Saya tidak yakin bagaimana itu akan dilakukan. Hampir pasti membutuhkan kernel khusus setidaknya untuk bertindak seperti keyboard dan tidak ada driver tambahan yang diperlukan di sisi PC.
Selain itu, saya setuju dengan @davidbb bahwa itu mungkin dan saya sudah mengatakan itu. Masalah dengan pertanyaan yang menanyakan apakah sesuatu mungkin terjadi, tidak pernah menyelesaikan masalah. Ini akan seperti saya mengatakan "apakah mungkin bagi saya untuk menjalankan aplikasi ios secara native di windows?". Ini secara teori mungkin, tetapi tidak ada yang melakukan ini sekarang dan tidak ada sesuatu yang dapat dilakukan oleh "pengguna normal" (atau bahkan pengguna tingkat lanjut) untuk mewujudkannya. Situs ini ditujukan untuk pengguna, jadi dengan mengatakan Anda hanya perlu menulis kernel yang dimodifikasi bukanlah jawaban yang akan menguntungkan siapa pun. Jadi jawaban sebenarnya untuk pertanyaannya adalah tidak, karena tidak ada kernel yang dimodifikasi di luar sana.
sumber
Sudahkah Anda mencoba Remote Terpadu . Ini adalah alat yang hebat untuk menggunakan ponsel sebagai keyboard dan mouse. Itu tidak menggunakan USB tetapi wifi sebagai gantinya. Ada aplikasi di ponsel dan komputer yang bekerja bersama. Bekerja bagus untukku. Juga jika Anda mendapatkan versi lengkap, Anda mendapatkan integrasi dengan banyak aplikasi umum.
sumber
Saya sedang mencari sesuatu yang serupa dan ditemukan
https://github.com/pelya/android-keyboard-gadget
Tampaknya hal yang sama dapat digunakan dalam kasus Anda. Secara singkat apa yang saya dapatkan adalah Anda harus menulis driver usb di kernel android untuk mendeteksi deivce sebagai HID.
sumber
Sekarang> enam tahun kemudian dan di suatu tempat di antara seseorang menciptakan Keepass2 USB Keyboard Plugin untuk Keepass2Android .
Ingin menambahkan informasi ini di sini demi kelengkapan dan karena saya menemukan pertanyaan ini belum terjawab dan plugin yang disebutkan di atas ketika mencari sesuatu seperti itu.
Saya belum mengujinya sendiri ...
sumber
InputStick adalah penerima USB nirkabel, yang dirancang untuk perangkat Android. Ini memungkinkan aplikasi Android untuk meniru berbagai jenis perangkat, misalnya: Keyboard USB, Mouse USB, Gamepad USB, dan banyak lagi. Dengan InputStick, aplikasi Android dapat melakukan apa saja yang dapat dilakukan perangkat fisik: ketik, pindahkan pointer mouse, kontrol multimedia dan game.
Informasi dapat ditemukan di http://inputstick.com/
sumber