• Fur Affinity Forums are governed by Fur Affinity's Rules and Policies. Links and additional information can be accessed in the Site Information Forum.

I hate Android sometimes

Sai_Wolf

Member
I really do.

Now, don't get me wrong. Put down those stones. It's pretty neat in most ways. But little things creep up on you, and make your brain full of fuck.

I have a DROID X by Motorola. Pretty awesome little phone. I've already rooted it and have enjoyed the pleasures of rageful avians many a night.

The problem I'm here to talk about is the way that Android handles the SD Card.

It's currently set up that the SD card is NOT available to the phone, when you have the device plugged in to a PC. It mounts the SD Card (provided the phone is unlocked) as a drive or mountpoint.

This is great to get to your SD Card's files. It's NOT so great when you have custom ring tones and notifications. If you get a text while you're browsing on the PC? Nothing. No sound. Remember, the SD card is not available to Android. So it can't play the sound if it can't get to it!

There is currently no app or mechanism that I am aware of that will automate the process of copying the 'tone to the phone's memory. Even RingDroid just saves it in /sdcard/media/audio/{notifications,ringtones}

This is, in partial, due to the /system partition being mounted read only in normal use.

Now I always have USB Debugging enabled on my phone. This is so I can work with it in adb. I'd rather not have to juggle with turning that off and on, and setting this mode or that, so I looked up a way to AVOID all that and copy the 'tone to the phone's memory.

(This is for the DROID X. The original Droid, IIRC, used yaffs2 instead of ext3. If you have a different phone, find out what FS your /system is and just substitute)
You will need:

1. The Android SDK. We'll be needing the assistance of ADB
2. Administrator privileges on your Windows box.
3. A phone that has been rooted and has an acceptable version of 'su' to be used with the SuperUser program (found on the Android Market)

Follow the instructions at the SDK web site to get the SDK set up and the appropriate drivers installed to allow ADB to talk to your phone (which should obviously have USB debugging enabled.)


Launch an elevated command prompt and navigate to your sdk directory. If you installed it right to C:, that'd be:

Code:
cd C:\androidsdk\platform-tools
Now launch adb and see if you get a shell.

Code:
adb shell
You should be looking at
Code:
 # _
If you are not looking at that, then you still have work to do. Most likely you didn't install the right driver for your phone or it's not in USB Debugging mode.

Once you're all set, make sure that you know the path to your ringtones or notifications.

(Instructions adapted from here

(One last time, this is for the DROID X only.)

Code:
su

(Check your phone. It will ask you if you want to allow 'su' superuser privs. Answer yes.)

mount -o remount,rw -t ext3 /dev/block/mmcblk1p21 /system
exit
You've just remounted the /system partition read-write. Now we can copy our tones over.

Since I don't do a lot in the way of tones, I just copy mine to the same directly as adb, to make it much easier on myself. My tones are in .wav and .mp3 format, but the default ones are in .ogg

Code:
adb push mytone.wav /system/media/audio/ringtones/mytone.wav

(Or, if you're putting a notification...)

adb push mynotification.wav /system/media/audio/notifications/mynotification.wav
Once either of those returns a sucess (You'll get a final size notice.), then let's go back and put things right.

Code:
adb shell
We may or may not need to fix the permissions on these files. You can skip this and go on to remounting read-only, but I err on the side of caution.*

Code:
(inside the shell of course)
su
cd /system/media/audio/ringtones (or notifications)
chmod 644 mytone.wav (Do this for every tone you have)
Now, back to putting everything right. (You should still be in the shell. If you've exited, just 'adb shell' back in and 'su' back to super user.)

Code:
mount -o remount,ro -t ext3 /dev/block/mmcblk1p21 /system
sync
reboot
If all goes well, check under Settings -> Sounds to see if your ringtone or notification is listed. Now you won't have to worry about what mode the phone's in as the tones are in phone storage.

Just remember that any reformats or ROM changes will make you go through these steps again.

If anyone knows a better way of either circumventing the SD card or somehow automating these steps, do post here. The procedure above is highly technical and that's regrettable.

*-

I noticed that all the .ogg files in either directory had rw--r--r-- permissions.

The files I pushed over had rw-rw-r--, and knowing weird things can happen with permissions, I decided to chmod them to the rest of the directory's permission scheme.
 
Last edited:
Slide down status bar from the top of the screen when plugged in via USB.

Select the USB notification.

'Charge only'.

Problem solved. SD card is available to use again on the phone. Most the people I know who have had an android phone for years always act shocked when I show them this. Wtf google, why can't you load ringtones on the phone itself.

EDIT: Before anyone asks, yeah I know this is about getting files onto the actual memory of the phone and not the SD card. But honestly I don't see the point leaving the phone plugged into the computer hours unend with the SD card loaded in windows.
 
Last edited:

Sai_Wolf

Member
Slide down status bar from the top of the screen when plugged in via USB.

Select the USB notification.

'Charge only'.

Problem solved. SD card is available to use again on the phone. Most the people I know who have had an android phone for years always act shocked when I show them this. Wtf google, why can't you load ringtones on the phone itself.

EDIT: Before anyone asks, yeah I know this is about getting files onto the actual memory of the phone and not the SD card. But honestly I don't see the point leaving the phone plugged into the computer hours unend with the SD card loaded in windows.

Copying custom ROMs to the SD card, syncing music to use with Double Twist or your mp3 player of choice. Copying all those videos and pics you took...

I can think of a lot of things that having my phone hooked up to my PC grants me, and that's not even counting the developer functions.

My OP was mainly directed at those who need the SD card, but would also like to preserve tone functionality.
 
Top