Linux File-Stor Gadget USB Device driver free download for windows — System — System Product Name

Linux File-Stor Gadget USB Device driver free download for windows - System - System Product Name Гаджет

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_556E990431108215FFF05368

Whereas 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?
Гаджет:  Бесплатные и быстрые способы обойти активацию iCloud навсегда / Снять блокировку iCloud

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 now

I 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 Storage

Based 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&0

and 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/rev

or 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/rev

I 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 > UDC

This 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 disk

And 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

Гаджет:  Глобальное исследование о состоянии digital в 2021 году: люди стали смотреть в экран смартфона больше времени, чем в экран телевизора

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.

Гаджет:  Как играть в WoW Classic (или другую игру) на вашем смартфоне - Shazoo

  
  

Чтобы ваше устройство работало на других ПК с 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

2021-01-23_185837 Android Samsung Телефон Диспетчер устройств

Но что это за ДИСКИ такие ? и Как к ним получить доступ — ВОПРОС?
Ни в «Мой Компьютер» Ни где-то ещё НЕ появилось НИЧЕГО, к сожалению.

Так что что бы что-то записать и установить на сей «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
И получаем следующие результаты.

PrtSc 2021-03-23 Установка Драйвера MT65xx Android 100%

PrtSc 2021-03-23 Установка Драйвера MT65xx Android _2 100%

4.
Теперь осталось разобраться что такое есть ПО СУТИ
передача Интернета на Android устройство через USB
есть несколько статей на эту тему :
Видео-урок на 14 минут
про который я написал целую статью.

Как передать интернет с ПК на Android через USB и раздать его по Wi-Fi

но я пока е разобрался в теме ПО СУТИ — какие кнопки нажимать меня интересует в последнюю очередь. Мне бы хотелось СУТЬ понять. Что за протоколы/интерфейсы.
(
я использую ActiveSync в связке с Windows Mobile (WM) — и там Интернет через USB передаётся
(как-то сам собой — по умолчанию — и/или если галочка стоит)
)
В сравнении всё всегда становится понятнее.

Чет подозрительно

А моя жена сменила адскую работу, на которую ездила полтора часа, где до 23:00 задерживалась периодически, на не адскую, в шести минутах от дома. Мало, что платят больше, ещё и в 17-00 что б все съебались домой. Так генеральный настаивает. И с часу дня до двух у них обед. В столовке похомячили, нахуй на воздух все, мы проветриваем кабинеты.

Ну жена 40 минут гуляет по территории, там лес прям.
Сегодня 3 подосиновика нашла. Щас жарю их с картохой. Прикольно… Три гриба, а чо то клёво, хорошо же)))

П. С. Почитал коменты.
До чего же не хочется на Пикабу про хорошее писать… Обосрёте с ног до головы. Зачем?
Не понимаю… Ну может юмор такой… Не знаю…

Оцените статью
GadgetManiac
Добавить комментарий