Saya memiliki ponsel yang terhubung ke PC saya melalui USB.
Saat melihat info perangkat menggunakan
sudo udevadm info --attribute-walk
id produk dan vendor muncul dengan baik, tetapi tidak ada ATTR {serial} . Aplikasi yang saya gunakan (Android adb) membutuhkan perangkat untuk melaporkan nomor seri agar berfungsi dengan benar.
Apakah ada cara saya bisa memalsukan nomor seri perangkat, misalnya dengan menggunakan aturan udev?
Klarifikasi: Pertanyaannya bukan pada bagaimana mendapatkan nomor seri perangkat USB, tetapi tentang bagaimana mengatur nomor seri.
Saya memiliki ponsel Android yang tidak melaporkan nomor seri melalui USB, dan alat adb tidak terlalu menyukai ini. Sejauh ini sepertinya tidak ada solusi sederhana untuk ini. Namun, ada hari-hari sangat mudah untuk hanya membeli ponsel Android yang tepat untuk pengembangan.
Jawaban:
Pertama, pastikan bahwa perangkat tidak melaporkan nomor seri benar-benar masalah.
adb devices
akan mencantumkan nomor seri sebagai semua tanda tanya jika tidak memiliki izin untuk mengakses perangkat yang sesuai/dev/bus/usb/
. Ingat juga adb memulai server, Anda mungkin perlu mematikannya untuk memeriksanya kembali.Dengan asumsi itu benar-benar masalah dengan perangkat, saya dengan cepat memeriksa kode sumber adb. Muncul
register_device
dalamcore/adb/usb_linux.c
membaca nomor seri langsung dari perangkat.core/adb/usb_libusb.c
panggilanlibusb_get_device_descriptor
untuk melakukannya, yang (memeriksa kode sumber libusb) mengambilnya dari sysfs atau langsung dari perangkat. Jadi tidak ada tipuan udev yang akan membantu, sayangnya.Pilihan Anda tampaknya:
adb
(ini adalah open source). Ini adalah pertanyaan yang lebih banyak untuk Stack Overflow, saya pikir.sumber
Jika Anda tahu simpul perangkat dari perangkat tertentu (mis. / Dev / sdb), Anda dapat mencarinya dengan perintah berikut:
udevadm info -a -p $(udevadm info -q path -n /dev/sdb)
Biasanya, jika Anda mencoba membuat aturan khusus di /etc/udev/rules.d/51-android.rules untuk perangkat android, penulisan
lsusb
di terminal Anda akan menampilkan sesuatu sepertiBus 002 Device 004: ID 062a:3270 Creative Labs
. Keempat karakter setelah "ID" - dalam hal ini akan -062a
digunakan untuk menunjukkan spesifikidVendor
dalam file itu.sumber
adb start-server
sebagai root atau menggunakan sudo), adb akan dapat membaca nomor seri sendiri.Mungkin ini bukan serial tetapi FTDI, jadi Anda dapat mencoba cara ini:
1) Dapatkan serial
2) Buat aturan dan gantikan XXXXXXXX dengan serial yang Anda temukan atau serial FAKE
3) Muat ulang aturan
.
Dalam hal ini cobalah untuk menghubungi penulis artikel ini .
sumber