[HOW-TO] Bluetooth tethering - Internet - ROOT req.!
Hello guys this is my first HOW to so please be a lil bit patient.
Questions and comments are welcomed of course!
Because I sent my SGS 2 for repair I took my older blackberry from my box with old garbage and tried to think about internet connection.
BB doesn't have wifi hotspot or something like this so how can we dial up internet connection from android?
Here we go.
Some stuff which must be installed before procedure:
1) ROOTed device
2) Busybox installed
3) Linux in loop device - maybe this is not needed but I am lazy ass and this was the fastest solution.
Procedure:
First of all we need to determine what is your bluetooth address (blackberry in my case).
For this one you have two options.
1) Determine it on your PC (I don't have windows so I will describe linux method only)
Turn bluetooth on your PC on.
Turn bluetooth on your cellphone and enable device discovery (device needs to be visible!!)
Open terminal and write:
You will get something like this: " f4:0b:93:08:a0:16 "
Write it down you will need it for later use.
2) How to determin a bluetooth address on android
Because standart busybox and asus rom don't have hcitool we will need to use it from Linux environment (from loop device).
So if you haven't installed linux distro in loop file do it! It's up to you which one you preffere. I made following steps in ubuntu 12.04.
After installing ubuntu to the loop device start it and write from command line:
Code:
sudo apt-get update && sudo apt-get install bluetooth
Ok now we have tools for bluetooth installed.
Now turn on bluetooth on your android, turn on bluetooth on cellphone (discovery enabled).
chroot into your linux in loop and write:
Write down your address like in the example above.
Now we need to determine which number of channel is dialup networking
This command is included in android terminal with busybox so you don't have to write it in the loop linux distro.
So write in the terminal like SU:
Code:
sdptool browse f4:0b:93:08:a0:16 <--- here is YOUR address of bluetooth cellphone
You will get something like this:
Code:
Browsing F4:0B:93:08:A0:16 ...
Service Name: Dialup Networking
Service RecHandle: 0x10000
Service Class ID List:
"Dialup Networking" (0x1103)
"Generic Networking" (0x1201)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 1
Profile Descriptor List:
"Dialup Networking" (0x1103)
Version: 0x0100
Service Name: Voice gateway
Service RecHandle: 0x10001
Service Class ID List:
"Headset Audio Gateway" (0x1112)
"Generic Audio" (0x1203)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 2
Language Base Attr List:
code_ISO639: 0x656e
encoding: 0x6a
base_offset: 0x100
Profile Descriptor List:
"Headset" (0x1108)
Version: 0x0100
Service Name: Hands-free
Service RecHandle: 0x10002
Service Class ID List:
"Handsfree Audio Gateway" (0x111f)
"Generic Audio" (0x1203)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 3
Language Base Attr List:
code_ISO639: 0x656e
encoding: 0x6a
base_offset: 0x100
Profile Descriptor List:
"Handsfree" (0x111e)
Version: 0x0105
Service Name: Advanced Audio
Service Provider: BlackBerry
Service RecHandle: 0x10003
Service Class ID List:
"Audio Source" (0x110a)
Protocol Descriptor List:
"L2CAP" (0x0100)
PSM: 25
"AVDTP" (0x0019)
uint16: 0x102
Profile Descriptor List:
"Advanced Audio" (0x110d)
Version: 0x0102
Service Name: AVRCP Remote Control
Service Provider: BlackBerry
Service RecHandle: 0x10004
Service Class ID List:
"AV Remote" (0x110e)
Protocol Descriptor List:
"L2CAP" (0x0100)
PSM: 23
"AVCTP" (0x0017)
uint16: 0x102
Profile Descriptor List:
"AV Remote" (0x110e)
Version: 0x0103
Service Name: AVRCP Remote Control Target
Service Provider: BlackBerry
Service RecHandle: 0x10005
Service Class ID List:
"AV Remote Target" (0x110c)
Protocol Descriptor List:
"L2CAP" (0x0100)
PSM: 23
"AVCTP" (0x0017)
uint16: 0x102
Profile Descriptor List:
"AV Remote" (0x110e)
Version: 0x0103
Service Name: SIM Access
Service RecHandle: 0x10006
Service Class ID List:
"SIM Access" (0x112d)
"Generic Telephony" (0x1204)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 4
Profile Descriptor List:
"SIM Access" (0x112d)
Version: 0x0102
Service Name: Phonebook Access PSE
Service RecHandle: 0x10007
Service Class ID List:
"Phonebook Access - PSE" (0x112f)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 5
"OBEX" (0x0008)
Language Base Attr List:
code_ISO639: 0x656e
encoding: 0x6a
base_offset: 0x100
Profile Descriptor List:
"Phonebook Access" (0x1130)
Version: 0x0100
#
In the example above we need to find dialup networking (you can grep it of course but the name can be a little different).
When you locate in your output this sevice (once again Dialup networking), look for channel.
In my case channel is 1.
Code:
Service Name: Dialup Networking
Service RecHandle: 0x10000
Service Class ID List:
"Dialup Networking" (0x1103)
"Generic Networking" (0x1201)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 1
Write the channel number down.
Now you have your address and we won't need linux distro anymore (in this case

)
Now run android terminal and write:
Code:
su
mount -o remount,rw -t ext4 /dev/block/mmcblk0p1 /system
This will remount system for read and write.
Now download latest package of berry from this address:
https://bitbucket.org/tcolar/berry4all/downloads
and save it unpacked to somewhere on sdcard.
These configurations file are for blackberry but with some modifications it can work for another cellphones !!!!!!!!!
We will use configuration files in the folder config.
I am from Czech republic and I use T-Mobile.
It unfortunately means that I didn't have right dial configuration file in the config folder. So I took tmobile and tmobile-bb-chat and rename it to tmobilecz and tmobilecz-chat. After that I created folder on the sdcard called chatscripts and moved tmobilecz-chat there.
File tmobilecz needs to be moved to the /etc/ppp/peers.
So here is how to do that from android terminal:
Code:
su
cp /sdcard/download/berry/config/tmobile /etc/ppp/peers/tmobilecz
mkdir /sdcard/chatscripts && cp /sdcard/download/berry/config/tmobile-bb-chat /sdcard/chatscripts/tmobilecz-chat
Here is output of my configs:
Code:
/ $ su
# cat /etc/ppp/peers/tmobilecz
# was tested as working by Me
#460800
115200
/dev/rfcomm1
## No detach = PPP dialing stays in foreground
nodetach
#noipdefault
defaultroute
#nomultilink
#ipcp-restart 7
#ipcp-accept-local
#ipcp-accept-remote
#lcp-echo-interval 0
#lcp-echo-failure 99
#nopcomp
#noaccomp
#noauth
nomagic
#noccp
#crtscts
#pap-timeout 20
#pap-restart 20
#lcp-restart 10
#novj
user "gprs"
password "gprs"
usepeerdns
#debug debug debug
# does not exist in all pppd versions (osx)
#replacedefaultroute
connect "/system/bin/chat -f /sdcard/chatscripts/tmobilecz-chat"
and chat file:
Code:
/ $ cat /sdcard/chatscripts/tmobilecz-chat
TIMEOUT 10
ABORT 'BUSY'
ABORT 'NO ANSWER'
ABORT 'ERROR'
ABORT "NO DIALTONE"
ABORT VOICE
ABORT RINGING
SAY 'Starting GPRS connect script\n'
'' 'BBT_OS'
'' 'ATZ'
OK 'AT+CGDCONT=1,"IP","internet.t-mobile.cz"'
ABORT 'NO CARRIER'
SAY 'Dialing...\n'
OK 'ATD*99#'
CONNECT
~p
/ $
Now we have configs on the place last thing is that we need initiate dun connection between android and phone.
You can imagine it like a tunnel for dialing, so it needs to be established before dialing (pppd daemon).
Now we will use our determined bluetooth address and chanel with rfcomm command.
Android terminal like SU:
Code:
su
rfcomm bind /dev/rfcomm1 f4:0b:93:08:a0:16 1
rfcomm is utility for creating connecting, bind option will create device under /dev/rfcomm1, after bind is bluetooth address and at the end is 1 this is number of channel.
THIS COMMAND NEEDS TO BE RUN AFTER EACH REBOOT when you want to dial internet from your phone.
During this commnd you can receive request for pairing, do it of course.
After this command run as root pppd daemon with your config file, in my case named tmobilecz:
Code:
su
pppd call tmobilecz
If you have nodetach option in the peers config file like me, dial process stays in the foreground. You can close it by ctrl+c or closing terminal window.
After pppd you should receive ip address by the phone and connectio to the internet!!
WOALA!
If it is not working or you want to check what is going on during dialing install application ALOGCAT from market and filter messages with pppd only.
If you have difficulties write it down and I will try to help you.
After this setup everytime when you want connect to the internet through phone you have to write this in terminal (i created script for myself but it's up to you)
EXAMPLE:
android terminal:
Code:
su
rfcomm bind /dev/rfcomm1 f4:0b:93:08:a0:16 1
pppd file /etc/ppp/peers/tmobilecz
That's all!
When I have a time I will better format and color this post.
Now I have to cut my grass in the garden sorry