Closed Bug 844983 Opened 11 years ago Closed 6 years ago

Device mounts even with USB Mass Storage option disabled

Categories

(Firefox OS Graveyard :: General, defect)

x86
macOS
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED WONTFIX

People

(Reporter: st3fan, Unassigned)

Details

Attachments

(1 file)

I tried to make a screenshot and was greeted with a 'Memory card is in use' error.

The reason seems to be that my phone has been mounted on my Mac, even through the USB Mass Storage option has been disabled.

No STR, if it happens again I'll try to look in logs.
This on the v1-train branch.
In the past, if you had UMS enabled, plugged your phone into a PC, and them turned off UMS, you needed to disconnect USB in order to get UMS to finally turn off.
(In reply to Mike Habicher [:mikeh] from comment #2)
> In the past, if you had UMS enabled, plugged your phone into a PC, and them
> turned off UMS, you needed to disconnect USB in order to get UMS to finally
> turn off.

Yeah but that is not what happened. My phone was dead this morning so I cold-booted it and I did not touch the UMS settings before I found this issue.

So here is what happened:

1) Boot phone
2) Connect phone to Mac
3) Find that phone is mounted (because screenshots cannot be saved)
4) Open settings, storage to turn off UMS

Expected: UMS option is enabled
Actual: UMS option is set to  disabled and phone is mounted
It would be really useful to see the logcat output.
Attached file output of logcat
Output of: adb logcat -d | grep -v ONCRPC | grep -v Idle | grep -v memalloc > log.txt

I *think* this is from since the device started since it starts with 'beginning of /dev/log/system'. So it should include all logging when this issue happened.
Hmm. So what I see in the log is this:

  I/AutoMounter( 1397): Changing mode from 'Disable' to 'Enable'

So this would indicate that UMS was enabled. Then I see: 

  I/AutoMounter( 1397): Changing mode from 'Enable' to 'DisableWhenUnplugged'

which is the disabling of UMS, and it needs a cable unplug to finalize.

I then see the USB cable being removed, and the sdcard goes to the Mounted state, where it's accessible to the programs running on the phone (i.e. not shared with the PC anymore).

Technically, you're supposed to do an eject from the HOST side before disabling UMS on the phone.

But from the logcat, everything looks fine (UMS is disabled and the sdcard is mounted to the phone).

Although something doesn't look right, because normally from boot, the card starts out in the Idle state and then changes to Shared or Checking/Mounted. And there is a bunch of initialization stuff missing.

And given that UMS option was disabled, then we should have never seen the 

  I/AutoMounter( 1397): Changing mode from 'Disable' to 'Enable'

message. From the code perspective, all of this is controlled by 2 settings:

ums.mode and ums.enabled. ums.enabled is what controls the checkbox in the settings app, and ums.mode is what controls the AutoMounter.

The AutoMounter sets ums.mode to disabled at startup, and then code in gaia/apps/system/js/storage.js has some logic to make ums.mode track ums.enabled modulo some phone locked/unlocked logic.
Firefox OS is not being worked on
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: