USB डिवाइस का नकली सीरियल नंबर


9

मेरे पास USB के माध्यम से मेरे पीसी से जुड़ा एक मोबाइल फोन है।

डिवाइस का उपयोग करते समय जानकारी देखें

sudo udevadm info --attribute-walk

उत्पाद और विक्रेता की आईडी ठीक दिखती है, लेकिन कोई एटीआरटी {सीरियल} नहीं है । एक एप्लिकेशन जो मैं उपयोग कर रहा हूं (एंड्रॉइड एडीबी) को ठीक से काम करने के लिए सीरियल नंबर की रिपोर्ट करने के लिए डिवाइस की आवश्यकता है।

क्या किसी भी तरह से मैं डिवाइस के सीरियल नंबर को नकली कर सकता हूं, उदाहरण के लिए एक udv नियम का उपयोग करके?

स्पष्टता: सवाल यह नहीं है कि यूएसबी डिवाइस के सीरियल नंबर कैसे प्राप्त करें, बल्कि सीरियल नंबर कैसे सेट करें।

मेरे पास एक एंड्रॉइड फोन था जो यूएसबी पर एक सीरियल नंबर की रिपोर्ट नहीं करता है, और एडीबी टूल को यह बहुत पसंद नहीं था। अभी तक इसके लिए कोई सरल उपाय नहीं दिख रहा है। हालांकि, वहाँ दिनों के विकास के लिए सिर्फ एक उचित Android फोन खरीदना बहुत आसान है।


यह एक Android फोन है? यदि नहीं, तो adb काम नहीं करेगा, वैसे भी।
कीथ

मुझे लग रहा है कि वास्तव में यह जानकारी udev से नहीं मिलती है। संभवतः इसके बजाय sysfs से, या सीधे डिवाइस से। पैचिंग अदब पर विचार करें, शायद सबसे आसान तरीका।
व्युत्पन्न

जवाबों:


1

सबसे पहले, सुनिश्चित करें कि डिवाइस एक सीरियल नंबर की रिपोर्ट नहीं कर रहा है वास्तव में समस्या है। adb devicesसीरियल नंबर को सभी प्रश्न चिह्नों के रूप में सूचीबद्ध करेगा यदि इसके अंतर्गत संबंधित डिवाइस को एक्सेस करने की अनुमति नहीं है /dev/bus/usb/। यह भी याद रखें कि adb एक सर्वर शुरू करता है, आपको इसे पुनः जांच के लिए इसे मारने की आवश्यकता हो सकती है।

यह वास्तव में डिवाइस के साथ एक समस्या है, यह मानते हुए, मैं जल्दी से अदब स्रोत कोड की जाँच की। यह डिवाइस से सीधे सीरियल नंबर register_deviceको core/adb/usb_linux.cपढ़ता है। यह करने के लिए core/adb/usb_libusb.cकॉल libusb_get_device_descriptor, जो (libusb स्रोत कोड की जाँच) यह sysfs से या सीधे डिवाइस से पकड़ लेता है। तो कोई udv प्रवंचना मदद करने वाली नहीं है, दुर्भाग्य से।

आपकी पसंद प्रतीत होगी:

  • बिना क्रम संख्या के अदब का काम करने का तरीका जानें। संभवतः, पैच adb(यह खुला स्रोत है)। यह स्टैक ओवरफ्लो के लिए अधिक प्रश्न है, मुझे लगता है।
  • adb के अनुरोध पर प्रतिक्रिया के लिए फर्जी कर्नेल usbfs ड्राइवर को पैच। यह मेरे लिए adb पैचिंग की तुलना में बहुत कठिन लगता है।
  • क्रम में # फेकिंग की अनुमति देने के लिए कर्नेल को पैच करें, मान लें कि अदब लिबास का उपयोग कर रहा है।
  • टूटे हार्डवेयर को ठीक करें।

धन्यवाद - यह इसे समझाता है। मेरे मामले में टूटे हुए हार्डवेयर को ठीक करना आसान था (बेहतर हार्डवेयर खरीदना)।
राल्फ

1

यदि आप विशिष्ट डिवाइस के डिवाइस नोड (जैसे / dev / sdb) को जानते हैं, तो आप इसे निम्न कमांड के साथ देख सकते हैं: udevadm info -a -p $(udevadm info -q path -n /dev/sdb)

आमतौर पर, यदि आप Android उपकरणों के लिए /etc/udev/rules.d/51-android.rules में एक कस्टम नियम बनाने का प्रयास कर रहे हैं, तो lsusbआपके टर्मिनल में लेखन कुछ इस तरह प्रदर्शित होगा Bus 002 Device 004: ID 062a:3270 Creative Labs । "आईडी" के बाद के चार अक्षर - इस मामले में यह उस फ़ाइल के भीतर 062aविशिष्ट इंगित करने के लिए इस्तेमाल किया जाएगा idVendor


वह udv नियम लिखने में मदद करता है, लेकिन क्या कोई नियम लिखने का कोई तरीका है जो सीरियल नंबर को बदलता है?
राल्फ

अपने विशेष फ़ोन के लिए न जानें, लेकिन मेरे अनुभव में एक बार जब udv नियम सेट हो जाते हैं (और आप adb start-serverरूट के रूप में या sudo का उपयोग करके चलाते हैं ), तो adb अपने आप ही सीरियल नंबर को पढ़ने में सक्षम हो जाएगा।
ड्रेक क्लैरिस

0

संभवतः यह धारावाहिक नहीं बल्कि FTDI है, इसलिए आप इस तरह से कोशिश कर सकते हैं:

1) धारावाहिक प्राप्त करें

sudo udevadm info --attribute-walk -n /dev/ttyUSB0  | sed -n '/FTDI/,/serial/p'

2) नियम बनाएं और XXXXXXXX को आपके द्वारा पाए गए सीरियल या FAKE सीरियल के साथ स्थानापन्न करें

sudo echo 'SUBSYSTEM=="tty", ATTRS{serial}=="XXXXXXXX", GROUP="users", MODE="0660", SYMLINK+="myusbphone"' | sudo tee /etc/udev/rules.d/99-myusbphone.rules

3) नियमों को फिर से लोड करें

sudo udevadm control --reload-rules

मामले में इस लेख के लेखक से संपर्क करने की कोशिश करें


मुझे नहीं लगता कि ओपी सीरियल प्रोटोकॉल के बारे में बात कर रहा है लेकिन यूएसबी डिवाइस का सीरियल नंबर। यह विक्रेता और उत्पाद आईडी के साथ डिवाइस डिस्क्रिप्टर में थोड़ा उपयोग किया गया फ़ील्ड है। यह प्रत्येक डिवाइस के लिए अद्वितीय होना चाहिए, लेकिन USB युक्ति में अनिवार्य नहीं है। इसे नकली कैसे किया जाए, इसका कोई जवाब नहीं। मैं शायद कर्नेल को पैच कर
दूंगा
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.