Motorola V325i and V323i

From Noah.org
Jump to: navigation, search


Manually dump phonebook

It is easy to connect to the phone using a terminal program. I used `screen`, but you could also use `minicom` or whatever you like. First, confirm that when you plug your phone into the USB port that it shows up as /dev/ttyACM0.

screen /dev/ttyACM0 19200,cs8,-parenb,-cstopb,-hupcl

Here is a sample session where I talk to the phone and cause it to dump all if its phonebook entries.

ATZ                                                                             
OK                                                                              
AT+MPIN                                                                         
ERROR                                                                           
AT+MODE?                                                                        
+MODE: 0                                                                        
                                                                                
OK                                                                              
AT+MODE=2                                                                       
OK                                                                              
                                                                                
+MBAN: Copyright 2000-2004 Motorola, Inc.                                       
AT+CPBS=?                                                                       
+CPBS: ("ME","SM","MT","ON","DC","MC","RC","AD","QD")                           
                                                                                
OK
AT+CPBS=AD                                                                      
OK
AT+MPBR=?                                                                       
+MPBR: 1-500,32,24,10,0-21,48,(0,5-9,11-15,30,32-35,38-42,59-92,255),(0),(0-1),0
                                                                                
OK
AT+MPBR=1
+MPBR: 1,"*86",129,"Voicemail",3,0,255,0,1,1,255,255,0,"",0,0,"","","","","","","","",""

OK
AT+MPBR=2
+MPBR: 2,"4155559533",129,"Tee Cell",3,0,255,255,1,1,255,0,0,"",0,0,"","","","","","","","",""

OK
AT+MPBR=3
+MPBR: 3,"4155559541",129,"Dad",3,0,255,255,1,1,255,0,0,"",0,0,"","","","","","","","",""

OK
AT+MPBF="D"
+MPBF: 3,"4155559541",129,"Dad",3,0,255,255,1,1,255,0,0,"",0,0,"","","","","","","","",""                                                                                           
                                                                                                                                                                                   
+MPBF: 4,"4155555286",129,"Dad temp",3,0,255,0,1,1,255,255,0,"",0,0,"","","","","","","","",""                                                                                     
                                                                                                                                                                                   
OK
AT+MPBR=1,500                                                                                                                                                                      
+MPBR: 1,"*86",129,"Voicemail",3,0,255,0,1,1,255,255,0,"",0,0,"","","","","","","","",""                                                                                           
                                                                                                                                                                                   
+MPBR: 2,"4155559533",129,"Tee Cell",3,0,255,255,1,1,255,0,0,"",0,0,"","","","","","","","",""                                                                              
                                                                                                                                                                                   
+MPBR: 3,"4155559541",129,"Dad",3,0,255,255,1,1,255,0,0,"",0,0,"","","","","","","","",""                                                                                           

+MPBF: 4,"4155555286",129,"Dad temp",3,0,255,0,1,1,255,255,0,"",0,0,"","","","","","","","",""                                                                                     
                                                                                                                                                                                   
+MPBR: 5,"4155165991",129,"Matt",3,0,255,255,1,1,255,0,0,"",0,0,"","","","","","","","",""                                                                                    
                                                                                                                                                                                  
+MPBR: 498,"#225",129,"#BAL",3,0,255,0,1,1,255,255,0,"",0,0,"","","","","","","","",""                                                                                             
                                                                                                                                                                                   
+MPBR: 499,"#646",129,"#MIN",3,0,255,0,1,1,255,255,0,"",0,0,"","","","","","","","",""                                                                                             
                                                                                                                                                                                   
+MPBR: 500,"#768",129,"#PMT",3,0,255,0,1,1,255,255,0,"",0,0,"","","","","","","","",""    

OK
AT+MODE=0                                                                                 
OK

External sites

Stuff that didn't work

I managed to get KMobileTools to talk to a Motorola V323i/V325i mobile phone. It was not hard, but it was very flaky. Sometimes it would work. Sometimes it would not.

The V323i appears to use an ordinary USB-to-MiniUSB connector. This will also charge the phone from a USB port.

Verify that the following device appears when you plug in the phone:

## Without the phone plugged in:
# ls -l /dev/ttyACM0
ls: /dev/ttyACM0: No such file or directory
## With the phone plugged in:
root@alpha: /root 2
# ls -l /dev/ttyACM0
crw-rw---- 1 root dialout 166, 0 2008-11-02 12:39 /dev/ttyACM0

device drivers

You should not need to install any device drivers to support this mobile phone. For reference, this phone supports "USB Communication Device Class - Abstract Control Model" (USB CDC-ACM). The kernel module for this is pretty standard (see usb_core and cdc_acm). The CDC-ACM interface basically means that your USB device will look and act like an old-fashioned modem at support "AT" commands. Some phones show up as "CDC-ECM" which means that they look and act just like an Ethernet NIC. It's possible to switch the V323i into ECM mode.

You can verify that you have the ACM module by looking at `lsmod`:

$ lsmod  | grep -i acm
cdc_acm                17184  0 
usbcore               138632  10 cdc_acm,hci_usb,usb_storage,libusual,usbhid,xpad,appleir,ehci_hcd,uhci_hcd

log files

Keep an eye on /var/log/messages. The same information may also appear separately in /var/log/ker.log. Watch whichever one seems to work. When you plug in the phone you should see something like this:

# tail -f /var/log/messages
Nov  2 12:48:10 alpha kernel: [356011.220000] usb 5-6.2: new full speed USB device using ehci_hcd and address 48
Nov  2 12:48:10 alpha kernel: [356011.364000] usb 5-6.2: configuration #1 chosen from 2 choices
Nov  2 12:48:10 alpha kernel: [356011.364000] cdc_acm 5-6.2:1.0: ttyACM0: USB ACM device

Similar, but different information may also appear in /var/log/syslog:

Nov  2 12:56:21 alpha kernel: [356501.536000] usb 5-6.2: new full speed USB device using ehci_hcd and address 50
Nov  2 12:56:21 alpha kernel: [356501.676000] usb 5-6.2: configuration #1 chosen from 2 choices
Nov  2 12:56:21 alpha kernel: [356501.676000] cdc_acm 5-6.2:1.0: ttyACM0: USB ACM device
Nov  2 12:56:21 alpha NetworkManager: <debug> [1225659381.236345] nm_hal_device_added(): New device added (hal udi is '/org/freedesktop/Hal/devices/usb_device_22b8_2ac2_noserial'). 
Nov  2 12:56:21 alpha NetworkManager: <debug> [1225659381.312379] nm_hal_device_added(): New device added (hal udi is '/org/freedesktop/Hal/devices/usb_device_ffffffff_ffffffff_noserial'). 

The `lsusb` command is also your friend:

# lsusb -d 22b8:
Bus 005 Device 048: ID 22b8:2ac2 Motorola PCS

verbose USB information

This is a verbose dump of just the device with Motorola's vendor ID:

# lsusb -v -d 22b8:

Bus 005 Device 048: ID 22b8:2ac2 Motorola PCS 
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.10
  bDeviceClass            2 Communications
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        16
  idVendor           0x22b8 Motorola PCS
  idProduct          0x2ac2 
  bcdDevice            0.01
  iManufacturer           1 Motorola, Inc.
  iProduct                2 Motorola A41x/V32x
  iSerial                 0 
  bNumConfigurations      2
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           67
    bNumInterfaces          2
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xc0
      Self Powered
    MaxPower              500mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         2 Communications
      bInterfaceSubClass      2 Abstract (modem)
      bInterfaceProtocol      1 AT-commands (v.25ter)
      iInterface              4 Motorola Communication Interface
      CDC Header:
        bcdCDC               1.09
      CDC Call Management:
        bmCapabilities       0x03
          call management
          use DataInterface
        bDataInterface          1
      CDC ACM:
        bmCapabilities       0x0f
          connection notifications
          sends break
          line coding and serial state
          get/set/clear comm features
      CDC Union:
        bMasterInterface        0
        bSlaveInterface         1 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0010  1x 16 bytes
        bInterval              32
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass        10 CDC Data
      bInterfaceSubClass      0 Unused
      bInterfaceProtocol      0 
      iInterface              4 Motorola Communication Interface
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x8a  EP 10 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x0b  EP 11 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           67
    bNumInterfaces          2
    bConfigurationValue     2
    iConfiguration          0 
    bmAttributes         0xc0
      Self Powered
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         2 Communications
      bInterfaceSubClass      2 Abstract (modem)
      bInterfaceProtocol      1 AT-commands (v.25ter)
      iInterface              4 Motorola Communication Interface
      CDC Header:
        bcdCDC               1.09
      CDC Call Management:
        bmCapabilities       0x03
          call management
          use DataInterface
        bDataInterface          1
      CDC ACM:
        bmCapabilities       0x0f
          connection notifications
          sends break
          line coding and serial state
          get/set/clear comm features
      CDC Union:
        bMasterInterface        0
        bSlaveInterface         1 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0010  1x 16 bytes
        bInterval              32
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass        10 CDC Data
      bInterfaceSubClass      0 Unused
      bInterfaceProtocol      0 
      iInterface              4 Motorola Communication Interface
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x8a  EP 10 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x0b  EP 11 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
Device Status:     0x0000
  (Bus Powered)

download photos on Windows

The "Motorola V325i" is a pain in the ass -- at least with the San Francisco Bay Area carrier "Verizon Wireless". This is why Apple's iPhone is eating their lunch.

I had no luck with P2KCommander.

Install Motorola Phone Tools Version 5.13b

Install "Motorola Phone Tools" Version 5.13b. I had some old version. It may work with old versions. In fact some older ones may be better because I read that you can manually override the phone driver configuration. I used the internal update to get it to Version 5.13b before I realized that I might have been able to override the driver. With the newer versions you cannot manually override the driver.

Sometimes the Motorola will ask you when you purchased your phone so it can check if the phone is still in warranty. Just lie. I always gave it a recent date less than one year old. It does not seem to actually check. This really isn't their attempt to prevent you from using the software. I think they do this to avoid service calls. After all, what mobile phone company wants to actually hear from their customers?

Driver Update

This installs new USB Modem drivers for the phone. After you do this when you plug in your phone it will ask you if you want to automatically search for new drivers. Select that option. Just let it use the drivers it finds (the new drivers you just installed).

Install Motorola_Software_Update.exe (MSU)

Motorola's Software Update (MSU) by digging around in this site: Motorla Support Updte. You may also be able to use this direct link to the Motorola_Software_Update.exe; although, those fascist bastards might move it.

Run the setup program. Mine said that it was MSU version 01.11.36. You may already have MSU installed. It might say "Select whether you want to repair or remove Motorola Software Update". Select "Repair Motorola Software Update". Click Finish. Let it install or update the Update. After it finishes let it automatically start the updater. Go through the update process. Finish. Close the MSU. Unplug your phone. Turn it off for 20 seconds. Turn it back on. Plug the phone back into the USB cable.

Install SEEM editor: P2KSeem4V710

Don't run p2kseem.exe yet! Read the instructions below first. It's easy, but if you mess up the part about the MSU below then it can get confusing.

Install P2KSeem4V710.zip. It does not really have a setup or installer. You just open it into a folder. Do not run p2kseem.exe yet!

Run the MSU again. This is similar to what you did above, but you don't let it finish. When it starts it should identify your phone and under "phone is connected" it will fill in fields:

ESN Number: 1BE572D2
Model Number: V325i
Operator: Verizon Wireless

Now stop and leave the MSU running. You don't need to update again, but you do need to have it running while you do the next steps. Basically all this does it send a signal to the phone to tell it that it's about to have it's brain reprogrammed so it should go into a special service mode. The P2KSeem4V470 does not seem to be able to put this particular model of phone into service mode by itself, so you need help from the MSU.

Hack the SEEM

Start P2KSeem4V710 and familiarize yourself with the fields. They are not well organized, but for now pay attention to these:

Bytes (h): 7A
Seem: 41a
Record: 1

Click "Load from phone" then use mouse or cursor to highlight the bytes you see in the hex dump at the left of the screen. You want "Selected byte details" to show Offset: 006A. It's easy. It will make sense when you see it. Check the checkbox for "Bit 0 - Bluetooth or USB file transfer in MPT - on". Click "Save to phone".

Bytes (h): 22
Seem: 4ff
Record: 1

Click "Load from phone". Notice that the hex dump says "V.3.2.5.i". We are going to change this to "V.3.2.3.M". Move the cursor in the hex dump to select the Offset bytes below and set the bits as indicated then click "Save to phone".

"Offset: 0006": check bits 0-1-4-5, uncheck  bits 2-3-6-7
"Offset: 0008": check bits 0-2-3-6, uncheck  bits 1-4-5-7

clean up

Exit from P2KSeem4V710 and MSU. Unplug phone. Turn it off. Wait 20 seconds. Turn it on. This is voodoo, but it's best to be safe and start clean.

Motorola Phone Tools (MPT)

Now start MPT. Create a new profile. It will ask you to plug in your phone. It is stupid. If the phone is already plugged in then UNPLUG it and PLUG it back in again. It will show "Phone Setup". If it shows a registration window for updates then click "Register later...".

The stupid MPT program will start and it will finally show a menu item for "TRANSFER FILES". Select Pictures and you're all set.

Summary

Motorola sucks and Verizon sucks. They combine unintentionally bad engineering with deliberately consumer unfriendly policies (AKA: greed) to create a user experience that is both unpleasant and expensive. Why do they have a camera when they don't even allow you to download the pictures?