- Cd/dvd-rom linux file-stor gadget usb device driver download and product parameters information
- Change raspberry pi zero usb gadget name from linux file-stor gadget
- List of driver files that match with the above device in our database.
- Usb — usb mass storage gadget — как убедительно эмулировать флешку?
- Вопросы без ответов. синхронизация контактов. часть 2. — android.
- Чет подозрительно
Cd/dvd-rom linux file-stor gadget usb device driver download and product parameters information
Linux File-Stor Gadget USB Device driver installation information
The following is driver installation information, which is very useful to help you find or install drivers for Linux File-Stor Gadget USB Device.For example: Hardware ID information item, which contains the hardware manufacturer ID and hardware ID. These two ID values are unique and will not be duplicated with other hardware. According to these two ID values, the matching driver information can be accurately found. This method is more effective than any others, and 100% correct.There are many other information items that you can use to find the driver version information and the required driver files.
The name of the driver type in the system is: CDROM, and the drive type GUID is: {4d36e965-e325-11ce-bfc1-08002be10318}.
For Windows OS:
Windows 10 Enterprise
Hardware ID:
USBSTOR:
USBSTORCdRomLinux___File-Stor_Gadget0310
USBSTORCdRomLinux___File-Stor_Gadget
USBSTORCdRomLinux___
USBSTORLinux___File-Stor_Gadget0
Linux___File-Stor_Gadget0
USBSTORGenCdRom
GenCdRom
USBSTOR:
USBSTORDiskLinux___File-Stor_Gadget0310
USBSTORDiskLinux___File-Stor_Gadget
USBSTORDiskLinux___
USBSTORLinux___File-Stor_Gadget0
Linux___File-Stor_Gadget0
USBSTORGenDisk
GenDisk
USBSTOR:
USBSTORDiskLinux___File-Stor_Gadget0318
USBSTORDiskLinux___File-Stor_Gadget
USBSTORDiskLinux___
USBSTORLinux___File-Stor_Gadget0
Linux___File-Stor_Gadget0
USBSTORGenDisk
GenDisk
USBSTOR:
USBSTORCdRomLinux___File-Stor_Gadget0318
USBSTORCdRomLinux___File-Stor_Gadget
USBSTORCdRomLinux___
USBSTORLinux___File-Stor_Gadget0
Linux___File-Stor_Gadget0
USBSTORGenCdRom
GenCdRom
USBSTOR:
USBSTORDiskLinux___File-Stor_Gadget0404
USBSTORDiskLinux___File-Stor_Gadget
USBSTORDiskLinux___
USBSTORLinux___File-Stor_Gadget0
Linux___File-Stor_Gadget0
USBSTORGenDisk
GenDisk
CLASS
CDROM
SERVICE
disk
SERVICE
cdrom
CLASS
DiskDrive
ENUMERATOR_NAME
USBSTOR
MFG
(Standard disk drives)
MFG
(Standard CD-ROM drives)
COMPATIBLEIDS
USBSTORDisk, USBSTORRAW
COMPATIBLEIDS
USBSTORCdRom, USBSTORRAW
PHYSICAL_DEVICE_OBJECT_NAME
Device00000b9
PHYSICAL_DEVICE_OBJECT_NAME
Device00000ba
FRIENDLYNAME
Linux File-Stor Gadget USB Device
CLASSGUID
{4D36E965-E325-11CE-BFC1-08002BE10318}
CLASSGUID
{4D36E967-E325-11CE-BFC1-08002BE10318}
COMPATIBLEIDS
USBSTORDisk, USBSTORRAW, GenDisk
DRIVER
{4D36E965-E325-11CE-BFC1-08002BE10318}000
DRIVER
{4d36e965-e325-11ce-bfc1-08002be10318}001
DRIVER
{4d36e967-e325-11ce-bfc1-08002be10318}003
COMPATIBLEIDS
USBSTORCdRom, USBSTORRAW, GenCdRom
DRIVER
{4d36e967-e325-11ce-bfc1-08002be10318}006
SECURITY_SDS
O:BAG:SYD:(A;;FX;;;WD)(A;;FA;;;SY)(A;;FA;;;BA)(A;;FX;;;RC)(A;;0x13019f;;;IU)(A;;GWGR;;;BU)
HARDWAREID
USBSTORDiskLinux___File-Stor_Gadget0310, USBSTORDiskLinux___File-Stor_Gadget, USBSTORDiskLinux___, USBSTORLinux___File-Stor_Gadget0, Linux___File-Stor_Gadget0, USBSTORGenDisk, GenDisk
HARDWAREID
USBSTORCdRomLinux___File-Stor_Gadget0310, USBSTORCdRomLinux___File-Stor_Gadget, USBSTORCdRomLinux___, USBSTORLinux___File-Stor_Gadget0, Linux___File-Stor_Gadget0, USBSTORGenCdRom, GenCdRom
Installation Parameter
[Version]
[SourceDisksNames]
[SourceDisksFiles]
[DestinationDirs]
[cdrom_copyfiles]
[ControlFlags]
[Manufacturer]
[mitsumi_cdrom.NTamd64]
[cdrom_device.NTamd64]
[mitsumi_addreg]
[ISO_addreg]
[autorun_addreg]
[nosync_addreg]
[mitsumi_install]
[mitsumi_install.HW]
[mitsumi_install.Services]
[cdrom_install]
[cdrom_install.HW]
[cdrom_install.Services]
[cdrom_install_ISO_drive]
[cdrom_install_ISO_drive.HW]
[cdrom_install_ISO_drive.Services]
[cdrom_ServiceInstallSection]
[cdrom_EventLog_InstallSection]
[cdrom_EventLog_AddReg]
[Strings]
Use the search function to find the driver you need
Many hardware names are usually named after the chip model, and each chip model has its own dedicated driver, so as long as you know the chip model used by the hardware, you can find the right driver. For example, if your graphics card is named: «AMD Radeon RX 580», while actually the core chip model used is: «Radeon RX 580», then enter «Radeon RX 580» or «RX 580» to find the driver.
If you have a laptop or an all-in-one PC, you can also use the product name to search, and then go to the download page which has all the drivers for this machine (including: graphics card, network card, sound card, etc.). For example, if your laptop product name is: «Dell A6-9220e Inspiron Flagship», then type «Dell A6-9220e» to find all the drivers for this laptop.
Search steps:
1. Enter a keyword in the input box and click the «Search» button
2. In the query results, find the driver file you need, and click the download button
Change raspberry pi zero usb gadget name from linux file-stor gadget
My goal is to convincingly emulate a well known brand of USB Flash Disk, using Raspberry Pi Zero (with or without Wifi).
For the sake of this example, I want to emulate a 4GB Sandisk Cruzer Edge, but generally speaking I want the ability to have full control of idVendor, idProduct, iProduct, iManufacturer, iSerial (and any other subtle variables of a USB flash disk)
I only want USB Mass Storage, not a composite device (with HID, or ethernet or serial or anything else)
My target USB Host devices range from: Linux AMD64, Linux MIPS, Linux ARM, Windows x86
I’ve activated dwc2, partitioned and formatted the file that is to be used as the storage & filesystem and loaded g_mass_storage. It is working fine from the perspective that it successfully mounts the Storage on all targets — I can connect and see the contents, add/delete files, eject and reconnect, seeing changes fine.
I use this to launch the USB Mass Storage gadget:
sudo modprobe g_mass_storage file=/home/pi/piusb_fat32.bin nofua=1 luns=1 ro=0 stall=0 removable=1 cdrom=0 idVendor=0x0781 idProduct=0x556e bcdDevice=0x0103 iManufacturer="SanDisk" iProduct="Cruzer Edge" iSerialNumber="990431108215FFF05368"The problem is that the name of the device remains as Linux File-Stor Gadget. Under Linux & Windows respectively:
- Linux File-Stor Gadget 0414
- USBSTORDISK&VEN_LINUX&PROD_FILE-STOR_GADGET&REV_0414
When the pi is connected to Windows 10 1903 x86 laptop, I see two devices appear:
Get-WmiObject Win32_USBControllerDevice -ComputerName localhost -Impersonation Impersonate -Authentication PacketPrivacy | Foreach-Object { [Wmi]$_.Dependent } | Sort-Object PNPClass | ft Name, PNPClass, PNPDeviceID
Name PNPClass PNPDeviceID
---- -------- -----------
Linux File-Stor Gadget USB Device DiskDrive USBSTORDISK&VEN_LINUX&PROD_FILE-STOR_GADGET&REV_0414990431108215FFF05368&0
USB Mass Storage Device USB USBVID_0781&PID_556E990431108215FFF05368Whereas with the real Sandisk USB Flash Disk:
Name PNPClass PNPDeviceID
---- -------- -----------
SanDisk Cruzer Edge USB Device DiskDrive USBSTORDISK&VEN_SANDISK&PROD_CRUZER_EDGE&REV_1.20200431108215FFF05367&0
USB Mass Storage Device USB USBVID_0781&PID_556B200431108215FFF05367 The «USB Mass Storage Device» has the correct VID, PID, SerialNumber, but the DiskDrive device does not.
Linux targets see the same two devices (see below for lsusb & dmesg examples)
From the source, It looks to me like the vendor=”Linux” and model=“File-Stor Gadget” is being set in the function fsg_common_set_inquiry_string in f_mass_storage.c
https://github.com/raspberrypi/linux/blob/rpi-4.19.y/drivers/usb/gadget/function/f_mass_storage.c
- I would like to know the best way to override that behaviour
(preferably without having to recompile f_mass_storage module every
time!)? - Is there a way that the gadget could pass through iManufacturer,
iProduct parameters to use as Vendor and Model?
The steps I used to create the Raspbian environment are:
Clean flash Rasbian onto SD card using Balena Etch
sudo su
echo "dtoverlay=dwc2" | sudo tee -a /boot/config.txt
echo "dwc2" | sudo tee -a /etc/modules
echo "g_mass_storage" | sudo tee -a /etc/modules
sudo dd if=/dev/zero of=/home/pi/piusb_fat32.bin bs=1 count=0 seek=128M
sudo mkdosfs /home/pi/piusb_fat32.bin -n FAT32VOL11
reboot nowI have tried:
- On Windows, deleting the cached reg key for the device: HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlusbflagskeyname
Where keyname is the concatenation of VID PID BCD_RELEASE_NUMBER - Changing the serial number of the device each time I create the gadget, so eliminate caching as the cause.
- Reformatting the USB disk from Windows, as Fat32, with a different volume name (rather than using mkdosfs)
- Multiple versions of raspbian
- 2021-09-26-raspbian-buster-lite (with & without running apt full-upgrade)
- 2021-06-27-raspbian-stretch-lite (with & without running apt full-upgrade)
- 2021-04-08-raspbian-stretch-lite (with & without running apt full-upgrade)
I’m certainly no USB or Linux expert, so this is what I have tried to piece together about how the Raspberry Pi USB ‘gadget’ Storage stack works. There are Five things of relevance:
- dwc2 module (does the OTG host/gadget flip dictated by OTG_SENSE)
- usb_f_mass_storage.ko module (Mass Storage Functions, handles the SCSI stuff to interface between USB & the file that acts as the storage for our USB disk)
- g_mass_storage.ko module (The Mass Storage Gadget)
- the file on the Pi that acts as the storage. this holds the filesystem and data that is read/writen to the emulated USB storage.
- The parameters that we pass to g_mass_storage module when loading it via modprobe
There is a very similar post here, but it hasn’t been active for more than 2 years now, and it didn’t solve my issue, so I’m re-posting here with more info:
And someone else had the same problem, unresolved from 2021:
—-On a Kali x86 Laptop: ———-
dmesg (output snipped to show relevant stuff)
[66925.017786] usb 1-4.3: New USB device found, idVendor=0781, idProduct=556e
[66925.017794] usb 1-4.3: New USB device strings: Mfr=3, Product=4, SerialNumber=5
[66925.017799] usb 1-4.3: Product: Cruzer Edge
[66925.017804] usb 1-4.3: Manufacturer: SanDisk
[66925.017808] usb 1-4.3: SerialNumber: 990431108215FFF05368
[66925.019129] usb-storage 1-4.3:1.0: USB Mass Storage device detected
[66925.019542] scsi host3: usb-storage 1-4.3:1.0
[66926.021250] scsi 3:0:0:0: Direct-Access Linux File-Stor Gadget 0414 PQ: 0 ANSI: 2
[66926.022471] sd 3:0:0:0: Attached scsi generic sg1 type 0
[66926.023505] sd 3:0:0:0: [sdb] 262144 512-byte logical blocks: (134 MB/128 MiB)
[66926.023729] sd 3:0:0:0: [sdb] Write Protect is off
[66926.023736] sd 3:0:0:0: [sdb] Mode Sense: 0f 00 00 00
[66926.023932] sd 3:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[66926.034208] sdb:
[66926.035170] sd 3:0:0:0: [sdb] Attached SCSI removable disk——lsusb of RPi from kali —
root@kali:~# lsusb -d 0781:556e -v
Bus 001 Device 031: ID 0781:556e SanDisk Corp.
Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 idVendor 0x0781 SanDisk Corp. idProduct 0x556e bcdDevice 1.03 iManufacturer 3 SanDisk iProduct 4 Cruzer Edge iSerial 5 990431108215FFF05368 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 32 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 0 bmAttributes 0xc0 Self Powered MaxPower 2mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 8 Mass Storage bInterfaceSubClass 6 SCSI bInterfaceProtocol 80 Bulk-Only iInterface 1 Mass Storage Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x01 EP 1 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 1
Device Qualifier (for other device speed): bLength 10 bDescriptorType 6 bcdUSB 2.00 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 bNumConfigurations 1
Device Status: 0x0000 (Bus Powered)——- Kali’s view of the USB Device from /sys/bus/usb —-
root@kali:~# cat /sys/bus/usb/devices/1-4.2/*
cat: /sys/bus/usb/devices/1-4.2/ep_00: Is a directory
556e
0781
no
SanDisk
0
cat: /sys/bus/usb/devices/1-4.2/port: Is a directory
cat: /sys/bus/usb/devices/1-4.2/power: Is a directory
Cruzer Edge
0x0
unknown
cat: /sys/bus/usb/devices/1-4.2/remove: Permission denied
990431108215FFF05368
480
cat: /sys/bus/usb/devices/1-4.2/subsystem: Is a directory
MAJOR=189
MINOR=29
DEVNAME=bus/usb/001/030
DEVTYPE=usb_device
DRIVER=usb
PRODUCT=781/556e/103
TYPE=0/0/0
BUSNUM=001
DEVNUM=030
426 2.00———-How Kali see’s the RPi SCSI vendor & model strings ———
root@kali:~# cat /sys/bus/scsi/devices/target3:0:0/3:0:0:0/vendor
Linux
root@kali:~# cat /sys/bus/scsi/devices/target3:0:0/3:0:0:0/model
File-Stor Gadget——— dmesg from Pi Zero after connecting to Windows ——————
[ 409.446304] dwc2 20980000.usb: new device is high-speed
[ 409.479146] dwc2 20980000.usb: new address 9
[ 439.684939] dwc2 20980000.usb: new device is high-speed
[ 439.717958] dwc2 20980000.usb: new address 10
[ 439.748612] g_mass_storage gadget: high-speed config #1: Linux File-Backed StorageBased on feedback from @Ephemeral (many thanks…). I have now tested using libcomposite and conclude it is the best answer.
The problem boils down to inquiry_string being unchangeable with g_mass_storage (unless you want to re-compile the module yourself with a different inquiry_string), but libcomposite gives full control of it, and many other parameters of the usb device.
One downside of libcomposite is that its not a one-liner to instantiate the gadget, it requires a bit more work.
But after the gadget is created, the inquiry_string can be changed on the fly, which is quite cool!
echo ‘ABCDEFGH123456789ABCDEFGWXYZ’ >> /sys/kernel/config/usb_gadget/gadget1/functions/mass_storage.usb0/lun.0/inquiry_string
inquirystring is tokenized by the host OS into: vendor(len 8) model(len 16) rev(len 4) which is what we see in Windows in PNPDeviceID as VEN_ PROD_ REV_
Name PNPClass PNPDeviceID
---- -------- -----------
SanDisk Cruzer Edge USB Device DiskDrive USBSTORDISK&VEN_SANDISK&PROD_CRUZER_EDGE&REV_1.20200431108215FFF05367&0and in OpenWRT Linux as vendor, model, rev in:
/sys/class/block/sda/device/vendor
/sys/class/block/sda/device/model
/sys/class/block/sda/device/revor x86 Kali Linux as vendor, model, rev in:
/sys/bus/scsi/devices/target3:0:0/3:0:0:0/vendor
/sys/bus/scsi/devices/target3:0:0/3:0:0:0/model
/sys/bus/scsi/devices/target3:0:0/3:0:0:0/revI found this article quite useful to get a better understanding of the architecture of USB composite devices:
https://lwn.net/Articles/395712/
This is the full script I use now:
#!/bin/bash
# libcomposite USB mass storage device gadget for raspberry pi zero
# Call this script on Pi Zero startup by adding its full path to /etc/rc.local
# Assumes you have created the backing file for the storage device with something like this:
# sudo dd if=/dev/zero of=/home/pi/piusb_fat32.bin bs=1 count=0 seek=128M
# sudo mkdosfs /home/pi/piusb_fat32.bin -n FAT32VOL11
# And done these two steps once:
# sudo echo "dtoverlay=dwc2" | sudo tee -a /boot/config.txt
# sudo echo "dwc2" | sudo tee -a /etc/modules
# Do some simple logging so we know the script is launching at startup
date | tee -a /home/pi/startup_script.log
echo Starting startup_script | tee -a /home/pi/startup_script.log
#Load the kernel module
modprobe libcomposite
#Gadget name (gadget1 is just an arbitrary name)
mkdir /sys/kernel/config/usb_gadget/gadget1
cd /sys/kernel/config/usb_gadget/gadget1
#hardware id
echo 0x0419 > bcdDevice
echo 0x0200 > bcdUSB
echo 0x0781 > idVendor # Sandisk
echo 0x556e > idProduct # Cruzer Edge
#device config
echo 0xEF > bDeviceClass
echo 0x02 > bDeviceSubClass
echo 0x01 > bDeviceProtocol
echo 0x08 > bMaxPacketSize0
#More stuff
mkdir strings/0x409
mkdir strings/0x407
cd strings/0x409
echo 'Sandisk' > manufacturer
echo 'Cruzer Edge' > product
echo 'Serial123456789' > serialnumber
cd ../../
cd strings/0x407
echo 'Sandisk' > manufacturer
echo 'Cruzer Edge' > product
echo 'Serial123456789' > serialnumber
cd ../../
mkdir functions/mass_storage.usb0
#Mass Storage 0 config settings
cd functions/mass_storage.usb0
echo 0 > stall
echo 1 > lun.0/removable
echo 0 > lun.0/ro
echo /home/pi/piusb_fat32.bin > lun.0/file
#Note, the next line is important. Host OS will tokenize it as: vendor(len 8) model(len 16) rev(len 4)
#Example here: vendor = ABCDEFGH model = 123456789ABCDEFG rev = WXYZ
echo 'ABCDEFGH123456789ABCDEFGWXYZ' > lun.0/inquiry_string
cd ../../
#OS Descriptor for Windows
cd os_desc
echo 1 > use
echo 0xcd > b_vendor_code
echo MSFT100 > qw_sign
cd ../
#Bus Hardware Config
mkdir configs/c.1
cd configs/c.1
echo 0x80 > bmAttributes
echo 100 > MaxPower
mkdir strings/0x409
echo "0" > strings/0x409/configuration
mkdir strings/0x407
echo "1" > strings/0x407/configuration
cd ../../
ln -s functions/mass_storage.usb0 configs/c.1
ln -s configs/c.1 os_desc
#Activate the gadget
ls /sys/class/udc > UDCThis is what it generates in dmesg on Kali x86:
[ 279.856039] usb 1-4.4: new high-speed USB device number 8 using xhci_hcd
[ 279.957788] usb 1-4.4: New USB device found, idVendor=0781, idProduct=556e
[ 279.957796] usb 1-4.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 279.957801] usb 1-4.4: Product: Cruzer Edge
[ 279.957805] usb 1-4.4: Manufacturer: Sandisk
[ 279.957809] usb 1-4.4: SerialNumber: Serial123456789
[ 279.978012] usb-storage 1-4.4:1.0: USB Mass Storage device detected
[ 279.978128] scsi host3: usb-storage 1-4.4:1.0
[ 279.978232] usbcore: registered new interface driver usb-storage
[ 279.979998] usbcore: registered new interface driver uas
[ 280.989354] scsi 3:0:0:0: Direct-Access ABCDEFGH 123456789ABCDEFG WXYZ PQ: 0 ANSI: 2
[ 280.990460] sd 3:0:0:0: Attached scsi generic sg1 type 0
[ 280.990906] sd 3:0:0:0: [sdb] 262144 512-byte logical blocks: (134 MB/128 MiB)
[ 280.991089] sd 3:0:0:0: [sdb] Write Protect is off
[ 280.991095] sd 3:0:0:0: [sdb] Mode Sense: 0f 00 00 00
[ 280.991271] sd 3:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 280.999942] sdb: sdb1
[ 281.001878] sd 3:0:0:0: [sdb] Attached SCSI removable diskAnd lsusb -vv on kali x86:
root@kali:~# lsusb -vv -d 0781:556e
Bus 001 Device 008: ID 0781:556e SanDisk Corp.
Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 239 Miscellaneous Device bDeviceSubClass 2 ? bDeviceProtocol 1 Interface Association bMaxPacketSize0 64 idVendor 0x0781 SanDisk Corp. idProduct 0x556e bcdDevice 4.19 iManufacturer 1 Sandisk iProduct 2 Cruzer Edge iSerial 3 Serial123456789 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 32 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 4 0 bmAttributes 0x80 (Bus Powered) MaxPower 100mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 8 Mass Storage bInterfaceSubClass 6 SCSI bInterfaceProtocol 80 Bulk-Only iInterface 5 Mass Storage Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x01 EP 1 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 1
Device Qualifier (for other device speed): bLength 10 bDescriptorType 6 bcdUSB 2.00 bDeviceClass 239 Miscellaneous Device bDeviceSubClass 2 ? bDeviceProtocol 1 Interface Association bMaxPacketSize0 64 bNumConfigurations 1
Device Status: 0x0000 (Bus Powered)List of driver files that match with the above device in our database.
*: 2K=Windows 2000, 2K3= Windows 2003 , XP= Windows XP , VISTA = Windows Vista , WIN7 = Windows 7,WIN10= Windows 10
Usb — usb mass storage gadget — как убедительно эмулировать флешку?
Вы не указываете ОС вашего устройства, с которым вы тестируете. Если он основан на ОС Windows, следующий фрагмент из эта статья поможет. Надеемся, у вас есть соответствующий доступ к вашему устройству. Если нет, найдите какой-либо метод, чтобы вернуть его к заводским настройкам по умолчанию.
Отладка Windows USB Stack
Будучи парнем, который всегда стремится к минимальному тестовому примеру, я
протестировал скрипт с минимальной настройкой ConfigFS для составного
последовательное сетевое устройство, но драйверы были неправильно установлены.
Затем я добавил дескрипторы ОС, но он все еще не работает. это
вызвало у меня много волосков, и я сомневался, что эта ОС
Дескриптор глупости даже работает вообще.
Только когда я полностью прочитал страницу на дескрипторах Microsoft OS
Я понимаю, что Windows кэширует наличие дескрипторов ОС первым
время, когда устройство подключено (внимание мое):
When a new device is attached to a computer for the first time, an operating system […] will request the string descriptor that is at
индекс 0xEE. […] После того, как операционная система запросит ОС Microsoft
String Descriptor с устройства, он создает следующий реестр
ключ ..
The operating system creates a registry entry, named osvc, under this registry key that indicates whether the device supports Microsoft
Дескрипторы ОС. Если устройство не дает действительного ответа,
первый раз, когда операционная система запрашивает его для ОС Microsoft
String Descriptor, операционная система не будет делать никаких дальнейших запросов
для этого дескриптора.
Это также было выделено wiki libwdi на устройствах WCID:
When Windows checks for this String Descriptor, one of the first thing that happens is the creation of a registry entry, under
HKEY_LOCAL_MACHINE SYSTEM CurrentControlSet Control usbflags, то есть
конкатенация VID PID BCD_RELEASE_NUMBER (этот ключ никогда
удален).
При тестировании в Windows, необходимо удалить
Клавиша «UsbFlags» для данного устройства, которое указывает на ОС
независимо от того, поддерживает ли он дескрипторы операционной системы Microsoft. После удаления
ключ, скрипт, который рекламирует дескрипторы ОС, должен
успешно убедить Windows автоматически использовать драйверы RNDIS.
Чтобы ваше устройство работало на других ПК с Windows, не используйте
общий или известный идентификатор поставщика /продукта, а вместо этого используйте свои собственные
VID /PID, который был вам однозначно назначен.
Вопросы без ответов. синхронизация контактов. часть 2. — android.
вот такой ПРИБЛИЗИТЕЛЬНО. что за модель загадка для нас самих. китайская под(д)елка, но вполне себе.
При втыкании появляется стандартный «диалог» о том ,что
«ВАМ тут посылка пришла ,
Только я вам её НЕ отдам,
пАтАчуЧтО у вас дОкументов нетУ»
об установке новых ДРАЙВЕРОВ.
1.
и на моё Искреннее удивление предложил поискть здесь :
C:Program FilesCompiled Driver Disk (Android)AndroidSamsung21_Searsburg
,но у меня на компьютере НЕТ такой папки. А она предлагает САМА в ней поискать..
т.е. где-то у неё (у кого у неё?) это(выделенное жирным — сам не знаю что это и откуда) прописано.
2.
В диспетчере Устройств на ЭТОТ МОМЕНТ(пока никаких драйверов предоложено НЕ было)
обнаружилось 4 новых USB устройства :
(скорее всего)Размещение(т.к. только его можно скопировать)
USB-совместимое запоминающее устройство
Драйвер:
C:WINDOWSsystem32driversUSBSTOR.SY (печатал ручками)
3.
4/4 сверху
Размещение:
Linux File-CD Gadget USB Device
код экземпляра устройства:
STORAGEREMOVABLEMEDIA8&2A14CA6A&0&RM
3/4 сверху
Размещение:
Linux File-CD Gadget USB Device
код экземпляра устройства:
STORAGEREMOVABLEMEDIA8&175B19C5&0&RM
2/4 сверху
Размещение:
Размещение 0 (CIF Single Chip )
код экземпляра устройства:
USBVID_093A&PID_24715&BFE1B0B&0&1
Коды (ID) оборудования:
USBVid_093a&PID_2471&Rev_0100
USBVid_093a&PID_2471
1/4 сверху
Размещение:
Размещение 0 (MT65xx Android Phone)
Состояние устройства:
(
Это устройство настроено неправильно. (Код 1)
Нажмите «Переустановить» для переустановки драйверов этого устройства.
)
код экземпляра устройства:
USBVID_0BB4&PID_0C03&MI_016&1E68B3CF&0&0001
Коды (ID) оборудования:
USBVid_0bb4&Pid_0c03&Rev_0255&MI_01
USBVid_0bb4&Pid_0c03&MI_01
совместимые коды (ID)
USBClass_ff&SubClass_42&Prot_01
USBClass_ff&SubClass_42
USBClass_ff
===
надо сказать, что после отказа предоставить драйвера — ну те что
C:Program FilesCompiled Driver Disk (Android)AndroidSamsung21_Searsburg
система тем не менее смогла распознать и установить устройства 4/4 и 3/4
Linux File-CD Gadget USB Device
USBSTORDISK&VEN_LINUX&PROD_FILE-CD_GADGET&REV_00007&20AB2C06&0&0123456789ABCDEF&0
USBSTORDISK&VEN_LINUX&PROD_FILE-CD_GADGET&REV_00007&20AB2C06&0&0123456789ABCDEF&1

Но что это за ДИСКИ такие ? и Как к ним получить доступ — ВОПРОС?
Ни в «Мой Компьютер» Ни где-то ещё НЕ появилось НИЧЕГО, к сожалению.
Так что что бы что-то записать и установить на сей «Samsung»
приходится тупо
вынуть microSDHC
вставить её в компьютер (через кардридер CardReader)
записать на неё вручную всё что необходимо
БЕЗОПАСНО извечь, «ВОИЗБЕЖАНИИ, а то уже был прецедент — сбежал чёрт и украл Луну»(А.иБ.Стругацкие)
вставить назад в телефон.
И вот теперь у нас в телефоне что-то появилось..
Использовать же сей аппарат
просто как USB Storage
не представляется возможным.
И даже в меню никаких подобных настроек найти пока НЕ смог.
ХОТЯ ОНИ И УПОМИНАЮТСЯ!
=================================================================
это было всё что я смог нарыть касаемо железа
А теперь вопросы:
Android синхронизирует контакты через интернет с Контакты.Google — это прекрасно.
1.
Теперь моделируем ситуацию. Мы потеряли телефон.
Кто-то нашёл наш телефон. И ему НЕ нужны наши контакты. Он выделяет их ВСЕ и удаляет.
ВОПРОС:
Как в этом случаем послупит Синхронизация ? — по логике он должна удалить ВСЕ наши контакты на сервере Google. Но это же катастрофа! — как уберечь_ся от такой ВОЗМОЖНОЙ ситуации.
И/или
Синхронизация Телефона с Контакты.Google лишь редактирует и Добавляет контакты С ТЕЛЕФОНА.
А вот УДАЛЯТЬ позволяет только С СЕРВЕРА.
Таким образом мы получили бы определённую ЗАЩИТУ наших контактов от полного удаления.
Иначе получается какой-то Абсорд Абсурдов. Мы потеряли телефон. Но УРА — у нас сохранились все Контакты.на сервере.Google. О Нет где же они?! — их НЕТ. Их тоже нет! 🙁
Представили?!
я не знаю Закрыли ли разработчики эту дыру или нет. — Как известно часто бывает, что нет..
2.
Есть ли какая-то ИДЕАЛЬНАЯ система хранения и синхронизации КОнтактов. Такая,
что бы ДАЖЕ Я
НЕ смог бы найти и заподозрить в ней
НИ ЕДИНОЙ претензии ?
Вот было бы интересно взглянуть.
3.
Ура Заработало!
ищем
[по Коду указанному выше]по Коду указанному выше —
MT65xx Android Phone
код экземпляра устройства: USBVID_0BB4&PID_0C03&MI_016&1E68B3CF&0&0001
нужный Драйвер
Поисковик выдаёт, что это :
usb_driver_MT65xx_Android_ZTE_v821.rar
при втыкании телефона — появляется диалог «Найдено новое устройство» — необходимо установить Драйвера —
И соответсвующий диалог, когда система пытается эти самые драйвера найти.
Подставляем ей Путь куда скачали Сохранили usb_driver_MT65xx_Android_ZTE_v821.rar
И получаем следующие результаты.


4.
Теперь осталось разобраться что такое есть ПО СУТИ
передача Интернета на Android устройство через USB
есть несколько статей на эту тему :
Видео-урок на 14 минут
про который я написал целую статью.
Как передать интернет с ПК на Android через USB и раздать его по Wi-Fi
но я пока е разобрался в теме ПО СУТИ — какие кнопки нажимать меня интересует в последнюю очередь. Мне бы хотелось СУТЬ понять. Что за протоколы/интерфейсы.
(
я использую ActiveSync в связке с Windows Mobile (WM) — и там Интернет через USB передаётся
(как-то сам собой — по умолчанию — и/или если галочка стоит)
)
В сравнении всё всегда становится понятнее.
Чет подозрительно
А моя жена сменила адскую работу, на которую ездила полтора часа, где до 23:00 задерживалась периодически, на не адскую, в шести минутах от дома. Мало, что платят больше, ещё и в 17-00 что б все съебались домой. Так генеральный настаивает. И с часу дня до двух у них обед. В столовке похомячили, нахуй на воздух все, мы проветриваем кабинеты.
Ну жена 40 минут гуляет по территории, там лес прям.
Сегодня 3 подосиновика нашла. Щас жарю их с картохой. Прикольно… Три гриба, а чо то клёво, хорошо же)))
П. С. Почитал коменты.
До чего же не хочется на Пикабу про хорошее писать… Обосрёте с ног до головы. Зачем?
Не понимаю… Ну может юмор такой… Не знаю…
