Attend XDA's Second Annual Developer Conference, XDA:DevCon 2014!
5,772,773 Members 52,020 Now Online
XDA Developers Android and Mobile Development Forum

[APP] FM Radio for the Droid 2!!

Tip us?
 
slayher
Old
#1  
Senior Member - OP
Thanks Meter 563
Posts: 155
Join Date: Mar 2010

 
DONATE TO ME
Default [APP] FM Radio for the Droid 2!!

Instuctions to get FM Radio on Droid2

1. Droid2 must be rooted. Remount the /system to RW

2. Unzip the archive, and use abd push to put the files in the appropriate folders.
cd system

a. adb push app/FMRadio.apk /system/app
b. adb push app/FMRadioService.apk /system/app
c. adb push bin/fmradioserver /system/bin
d. adb push lib/libFMRadio.so /system/lib
e. adb push lib/libfmradio_jni.so /system/lib
f. adb push lib/libfmradioplayer.so /system/lib

3. Remount /system to ro
4. Plug in headphones.
5. Run FMradio
6 ???
7. Profit!

For me, I live in a crappy radio area, so I was only able to pick up 2 stations. YMMV.

As always I will not be responsible for any damage, pregnancies, or missing items from your home.

Thanks!

Slayher
The Following 3 Users Say Thank You to slayher For This Useful Post: [ Click to Expand ]
 
slayher
Old
#2  
Senior Member - OP
Thanks Meter 563
Posts: 155
Join Date: Mar 2010

 
DONATE TO ME
Default Forgot the Link

Forgot the link..
LINKS! URL -> android.antbox.org/slayher/FMRadio_droid2.zip
The Following User Says Thank You to slayher For This Useful Post: [ Click to Expand ]
 
karnovaran
Old
#3  
Senior Member
Thanks Meter 70
Posts: 598
Join Date: Jul 2009
Location: PDX
Where did these files come from?
 
slayher
Old
#4  
Senior Member - OP
Thanks Meter 563
Posts: 155
Join Date: Mar 2010

 
DONATE TO ME
Quote:
Originally Posted by karnovaran View Post
Where did these files come from?
Some are already there, some from droidx
 
karnovaran
Old
#5  
Senior Member
Thanks Meter 70
Posts: 598
Join Date: Jul 2009
Location: PDX
I've tried to run it multiple times and rebooted, but it just says "FM Radio is being launched, please wait..."
 
slayher
Old
#6  
Senior Member - OP
Thanks Meter 563
Posts: 155
Join Date: Mar 2010

 
DONATE TO ME
Quote:
Originally Posted by karnovaran View Post
I've tried to run it multiple times and rebooted, but it just says "FM Radio is being launched, please wait..."
get a logcat

It sounds like either a permission issue, or one of the files didnt get pushed
 
karnovaran
Old
#7  
Senior Member
Thanks Meter 70
Posts: 598
Join Date: Jul 2009
Location: PDX
Quote:
Originally Posted by slayher View Post
get a logcat

It sounds like either a permission issue, or one of the files didnt get pushed
Code:
roid.intent.action.HEADSET_PLUG
08-31 00:07:08.619  2097  2097 D JAVA:FMRadioPlayerService: HEADSET is pluged in
/out.
08-31 00:07:08.627  2097  2097 V JAVA:FMRadioPlayerService: handleMessage headse
t plug begin
08-31 00:07:08.627  2097  2097 V JAVA:FMRadioPlayerService: mHeadset = 1
08-31 00:07:08.627  2097  2097 V JAVA:FMRadioPlayerService: mIsHeadsetPlugged =
true
08-31 00:07:08.635  2097  2097 W JAVA:FMRadioPlayerService: Headset is pluged in
!
08-31 00:07:08.658  2090  2090 D FMRadioMain: Leave getDataFromDB()
08-31 00:07:08.666  2090  2090 D FMRadioMain: leave updateListView()
08-31 00:07:08.666  2090  2090 D FMRadioMain: onStart() called
08-31 00:07:08.666  2090  2090 W FMRadioMain: onServiceConnected::fmradio java s
ervice started
08-31 00:07:08.674  2097  2101 W JAVA:FMRadioPlayerService: IFMRadioPlayerServic
e.Stub : isPowerOn
08-31 00:07:08.674  2097  2101 D JAVA:FMRadioPlayerService: FMStateUNInit:isPowe
rOn(), return misPowerOn value to UI
08-31 00:07:08.791  2090  2090 W FMRadioMain: servie is ready popup a wait dialo
g
08-31 00:07:08.791  2090  2090 D FMDataProvider: set channel table: FM_Radio
08-31 00:07:08.807  2097  2097 D JAVA:FMRadioPlayerService: Received intent: com
.motorola.fmradio.bindservice.succeed
08-31 00:07:08.807  2097  2097 D JAVA:FMRadioPlayerService: bind service succeed

08-31 00:07:08.807  2097  2097 W JAVA:FMRadioPlayerService: Notice home to show
update current preset name on the notice bar.
08-31 00:07:08.830  2934  2934 E FMRadioService: onCreate() called***
08-31 00:07:08.853  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter, getVie
w(), position =0
08-31 00:07:08.861  2934  2934 V FMRadioService: onBind***
08-31 00:07:08.861  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter getview
, set gone
08-31 00:07:08.869  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter, getVie
w(), position =1
08-31 00:07:08.877  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter getview
, set gone
08-31 00:07:08.877  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter, getVie
w(), position =2
08-31 00:07:08.877  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter getview
, set gone
08-31 00:07:08.885  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter, getVie
w(), position =3
08-31 00:07:08.885  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter getview
, set gone
08-31 00:07:08.892  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter, getVie
w(), position =4
08-31 00:07:08.892  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter getview
, set gone
08-31 00:07:08.892  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter, getVie
w(), position =5
08-31 00:07:08.892  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter getview
, set gone
08-31 00:07:08.892  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter, getVie
w(), position =6
08-31 00:07:08.892  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter getview
, set gone
08-31 00:07:08.900  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter, getVie
w(), position =7
08-31 00:07:08.900  2934  2934 I FMRadio_Logs:  Enter JNI_OnLoad.....
08-31 00:07:08.900  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter getview
, set gone
08-31 00:07:08.900  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter, getVie
w(), position =8
08-31 00:07:08.900  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter getview
, set gone
08-31 00:07:08.908  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter, getVie
w(), position =9
08-31 00:07:08.908  2934  2934 D FMRadioPlayer: Looper = Looper.myLooper()!
08-31 00:07:08.916  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter getview
, set gone
08-31 00:07:08.916  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter, getVie
w(), position =10
08-31 00:07:08.924  2934  2934 I FMRadio_Logs: IN JNI fmradio_native_setup
08-31 00:07:08.924  2934  2934 I ServiceManager: Waiting for sevice fmradio.stac
k...
08-31 00:07:08.924  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter getview
, set gone
08-31 00:07:08.924  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter, getVie
w(), position =11
08-31 00:07:08.924  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter getview
, set gone
08-31 00:07:08.924  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter, getVie
w(), position =0
08-31 00:07:08.932  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter getview
, set gone
08-31 00:07:08.932  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter, getVie
w(), position =1
08-31 00:07:08.932  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter getview
, set gone
08-31 00:07:08.939  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter, getVie
w(), position =2
08-31 00:07:08.939  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter getview
, set gone
08-31 00:07:08.939  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter, getVie
w(), position =3
08-31 00:07:08.939  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter getview
, set gone
08-31 00:07:08.939  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter, getVie
w(), position =4
08-31 00:07:08.947  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter getview
, set gone
08-31 00:07:08.947  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter, getVie
w(), position =5
08-31 00:07:08.955  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter getview
, set gone
08-31 00:07:08.955  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter, getVie
w(), position =6
08-31 00:07:08.955  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter getview
, set gone
08-31 00:07:08.978  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter, getVie
w(), position =0
08-31 00:07:08.978  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter getview
, set gone
08-31 00:07:08.978  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter, getVie
w(), position =1
08-31 00:07:08.978  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter getview
, set gone
08-31 00:07:08.986  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter, getVie
w(), position =2
08-31 00:07:09.002  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter getview
, set gone
08-31 00:07:09.002  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter, getVie
w(), position =3
08-31 00:07:09.018  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter getview
, set gone
08-31 00:07:09.018  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter, getVie
w(), position =4
08-31 00:07:09.033  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter getview
, set gone
08-31 00:07:09.033  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter, getVie
w(), position =5
08-31 00:07:09.041  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter getview
, set gone
08-31 00:07:09.064  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter, getVie
w(), position =0
08-31 00:07:09.072  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter getview
, set gone
08-31 00:07:09.080  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter, getVie
w(), position =1
08-31 00:07:09.080  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter getview
, set gone
08-31 00:07:09.080  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter, getVie
w(), position =2
08-31 00:07:09.080  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter getview
, set gone
08-31 00:07:09.080  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter, getVie
w(), position =3
08-31 00:07:09.080  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter getview
, set gone
08-31 00:07:09.080  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter, getVie
w(), position =4
08-31 00:07:09.080  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter getview
, set gone
08-31 00:07:09.080  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter, getVie
w(), position =5
08-31 00:07:09.080  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter getview
, set gone
08-31 00:07:09.088  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter, getVie
w(), position =6
08-31 00:07:09.088  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter getview
, set gone
08-31 00:07:09.088  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter, getVie
w(), position =7
08-31 00:07:09.096  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter getview
, set gone
08-31 00:07:09.096  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter, getVie
w(), position =8
08-31 00:07:09.096  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter getview
, set gone
08-31 00:07:09.096  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter, getVie
w(), position =9
08-31 00:07:09.096  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter getview
, set gone
08-31 00:07:09.096  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter, getVie
w(), position =10
08-31 00:07:09.096  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter getview
, set gone
08-31 00:07:09.096  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter, getVie
w(), position =11
08-31 00:07:09.096  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter getview
, set gone
08-31 00:07:09.103  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter, getVie
w(), position =0
08-31 00:07:09.111  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter getview
, set gone
08-31 00:07:09.111  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter, getVie
w(), position =1
08-31 00:07:09.111  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter getview
, set gone
08-31 00:07:09.111  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter, getVie
w(), position =2
08-31 00:07:09.111  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter getview
, set gone
08-31 00:07:09.111  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter, getVie
w(), position =3
08-31 00:07:09.111  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter getview
, set gone
08-31 00:07:09.111  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter, getVie
w(), position =4
08-31 00:07:09.119  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter getview
, set gone
08-31 00:07:09.119  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter, getVie
w(), position =5
08-31 00:07:09.119  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter getview
, set gone
08-31 00:07:09.127  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter, getVie
w(), position =6
08-31 00:07:09.127  2090  2090 D FMRadioMain: FMRadio ChannelListAdapter getview
, set gone
08-31 00:07:09.189  2090  2090 D FMRadioMain ChannelListView: call onDraw
08-31 00:07:09.221  1243  1265 I ActivityManager: Displayed activity com.motorol
a.fmradio/.FMRadioMain: 816 ms (total 12066 ms)
08-31 00:07:09.924  2934  2934 I ServiceManager: Waiting for sevice fmradio.stac
k...
08-31 00:07:10.088  2090  2090 D FMRadioMain ChannelListView: call onDraw
08-31 00:07:10.119  2090  2090 D FMRadioMain ChannelListView: call onDraw
08-31 00:07:10.135  2090  2090 D FMRadioMain ChannelListView: call onDraw
08-31 00:07:10.150  2090  2090 D FMRadioMain ChannelListView: call onDraw
08-31 00:07:10.166  2090  2090 D FMRadioMain ChannelListView: call onDraw
08-31 00:07:10.182  2090  2090 D FMRadioMain ChannelListView: call onDraw
08-31 00:07:10.197  2090  2090 D FMRadioMain ChannelListView: call onDraw
08-31 00:07:10.213  2090  2090 D FMRadioMain ChannelListView: call onDraw
08-31 00:07:10.229  2090  2090 D FMRadioMain ChannelListView: call onDraw
08-31 00:07:10.244  2090  2090 D FMRadioMain ChannelListView: call onDraw
08-31 00:07:10.260  2090  2090 D FMRadioMain ChannelListView: call onDraw
08-31 00:07:10.275  2090  2090 D FMRadioMain ChannelListView: call onDraw
08-31 00:07:10.291  2090  2090 D FMRadioMain ChannelListView: call onDraw
08-31 00:07:10.924  2934  2934 I ServiceManager: Waiting for sevice fmradio.stac
k...
08-31 00:07:11.925  2934  2934 I ServiceManager: Waiting for sevice fmradio.stac
k...
08-31 00:07:12.931  2934  2934 I ServiceManager: Waiting for sevice fmradio.stac
k...
08-31 00:07:13.932  2934  2934 W FMRadio_Logs: FMRadioStackService not published
, waiting...
08-31 00:07:14.433  2934  2934 I ServiceManager: Waiting for sevice fmradio.stac
k...
08-31 00:07:15.434  2934  2934 I ServiceManager: Waiting for sevice fmradio.stac
k...
08-31 00:07:16.018  1602  1602 D dalvikvm: GC_EXPLICIT freed 897 objects / 53672
 bytes in 77ms
08-31 00:07:16.432  2934  2934 I ServiceManager: Waiting for sevice fmradio.stac
k...
08-31 00:07:17.435  2934  2934 I ServiceManager: Waiting for sevice fmradio.stac
k...
08-31 00:07:18.436  2934  2934 I ServiceManager: Waiting for sevice fmradio.stac
k...
08-31 00:07:19.435  2934  2934 W FMRadio_Logs: FMRadioStackService not published
, waiting...
08-31 00:07:19.939  2934  2934 I ServiceManager: Waiting for sevice fmradio.stac
k...
08-31 00:07:20.939  2934  2934 I ServiceManager: Waiting for sevice fmradio.stac
k...
08-31 00:07:21.197  1888  1888 D dalvikvm: GC_EXPLICIT freed 3330 objects / 1989
76 bytes in 111ms
08-31 00:07:21.943  2934  2934 I ServiceManager: Waiting for sevice fmradio.stac
k...
08-31 00:07:22.941  2934  2934 I ServiceManager: Waiting for sevice fmradio.stac
k...
08-31 00:07:23.940  2934  2934 I ServiceManager: Waiting for sevice fmradio.stac
k...
08-31 00:07:24.946  2934  2934 W FMRadio_Logs: FMRadioStackService not published
, waiting...
08-31 00:07:25.440  2934  2934 I ServiceManager: Waiting for sevice fmradio.stac
k...
08-31 00:07:26.252  1365  1365 D dalvikvm: GC_EXPLICIT freed 287 objects / 13912
 bytes in 73ms
08-31 00:07:26.448  2934  2934 I ServiceManager: Waiting for sevice fmradio.stac
k...
08-31 00:07:27.449  2934  2934 I ServiceManager: Waiting for sevice fmradio.stac
k...
08-31 00:07:28.450  2934  2934 I ServiceManager: Waiting for sevice fmradio.stac
k...
08-31 00:07:28.786  1243  1255 W ActivityManager: Timeout executing service: Ser
viceRecord{45ce3bc0 com.motorola.android.fmradio/.FMRadioService}
08-31 00:07:28.791  1243  1255 I Process : Sending signal. PID: 2934 SIG: 9
08-31 00:07:28.799  1243  1382 I ActivityManager: Process com.motorola.android.f
mradio (pid 2934) has died.
08-31 00:07:28.799  1243  1382 W ActivityManager: Scheduling restart of crashed
service com.motorola.android.fmradio/.FMRadioService in 5000ms
08-31 00:07:31.275  1402  1402 D dalvikvm: GC_EXPLICIT freed 820 objects / 89352
 bytes in 94ms
08-31 00:07:33.807  1243  1255 I ActivityManager: Start proc com.motorola.androi
d.fmradio for service com.motorola.android.fmradio/.FMRadioService: pid=2945 uid
=1000 gids={3003, 3002, 3001, 1015, 2001}
08-31 00:07:33.900  2945  2945 E FMRadioService: onCreate() called***
08-31 00:07:33.900  2945  2945 V FMRadioService: onBind***
08-31 00:07:33.908  2945  2945 I FMRadio_Logs:  Enter JNI_OnLoad.....
08-31 00:07:33.908  2945  2945 D FMRadioPlayer: Looper = Looper.myLooper()!
08-31 00:07:33.908  2945  2945 I FMRadio_Logs: IN JNI fmradio_native_setup
08-31 00:07:33.908  2945  2945 I ServiceManager: Waiting for sevice fmradio.stac
k...
08-31 00:07:34.908  2945  2945 I ServiceManager: Waiting for sevice fmradio.stac
k...
08-31 00:07:35.913  2945  2945 I ServiceManager: Waiting for sevice fmradio.stac
k...
^C
C:\android-sdk-windows\android-sdk-windows\tools>
 
slayher
Old
#8  
Senior Member - OP
Thanks Meter 563
Posts: 155
Join Date: Mar 2010

 
DONATE TO ME
Either the permissions are wrong, or you didnt copy the fmradioserver to /system/bin
 
karnovaran
Old
#9  
Senior Member
Thanks Meter 70
Posts: 598
Join Date: Jul 2009
Location: PDX
I copied everything just fine. Do you have a suggestion regarding the permissions?
 
facelessuser
Old
(Last edited by facelessuser; 31st August 2010 at 04:05 PM.) Reason: typos
#10  
Senior Member
Thanks Meter 1
Posts: 410
Join Date: Jan 2009
Someone should add to the instructions to make the permissions of the files that go into system/lib 644, and the file that goes into system/bin should be 755.

I just used the other lib files and binary files in the related folders as examples. People who are new to linux environments don't know much about permissions, so its always good to post for the new guys to understand as well.

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes