[MOD / PATCH] Openvpn for LG G2x - T-Mobile LG G2x

After 2 weeks of trial and error I finally got openvpn working on LG G2x. I am going to list out the steps I took to make it work and hopefully it will help somebody else.
Here are the steps:
1- Root your phone
2- Install tun.ko (see link below)
Download and save the file anywhere in your sdcard
Using rootexplorer (or any other file manager), copy the tun.ko file and save it in /system/lib/modules
command:
adb remount
adb push tun.ko /system/lib/modules
adb shell
chmod 755 /system/lib/modules/tun.ko
3- Install BusyBox using BusyBox Installer (from Market)
Install to /system/xbin
4- Install OpenVPN using OpenVPN Installer (from Market)
Install binary to /system/xbin
Install route to /system/xbin/bb
5- Install OpenVPN Settings (from Market)
6. Link Busybox ifconfig and route to /system/xbin/bb
Command:
adb shell
su
mkdir /system/xbin/bb
ln -s /system/xbin/ifconfig /system/xbin/bb/ifconfig
ln -s /system/xbin/route /system/xbin/bb/route
7. Setup OpenVPN Settings (from Market)
OpenVPN settings > Advanced > Load tun kernel module <- turn ON
OpenVPN settings > Advanced > TUN module settings
Load module using - insmod
Path to tun module - /system/lib/modules/tun.ko
9- copy your .conf files to /sdcard/openvpn
REBOOT
CONNECT!~
Source:
http://forum.xda-developers.com/showthread.php?t=1104419
Link to tun.ko
https://rapidshare.com/files/756845615/tun.ko
I am not an android guru and hopefully someone else who is more knowleadgable can comment and or correct where I made a mistake.

If you use my any of my kernels (CM7 or Froyo), I have TUN/TAP built right in the kernel, no TUN.KO module is required. You should be able to use OpenVPN apps from market or OpenVPN from CM7 directly (CM7 has its own openVPN app built-in).

I have used your rom in the past and have just donated $10 to you. I appreciate your hard work. Thanks for the information you provied.

Yeah i agree with aobasha. Since u dropped your 1st rom for the G2X, I've never had a non faux123 rom or kernel in my phone. Your work's much appreciated homie. I dont have much money atm but when my situations a little better I plan on donatin to u and cyanogen. Figured i'd show my appreciation while someone broached the subject

Related

OpenVPN with Root - Updated 8/19

Easy way - OpenVPN on rooted/S_OFF Incredible with BusyBox installed:
This is by far the easiest way to set up OpenVPN. Make sure you copy your config file and any relevant keys to a folder on your sdcard. First, you need to know where BusyBox is installed, and if you already have the tun.ko module. For BusyBox, for most Roms based off the 2.2 8/1 leak, the location is /system/xbin. An easy way to check on your phone:
adb shell
find / -iname "iptunnel"
The path containing the file is where BusyBox is installed. If you don't have it installed, you can follow the instructions at the bottom of this post to install it.
The tun.ko module depends on your kernel. With the hydra 2.2 kernels, the location is /system/lib/modules/tun.ko . Easy way to check:
adb shell
find / -iname "tun.ko"
If you do not have tun.ko on your system, then you can download it for 2.2 (tun.zip) or 2.1 (inside openvpn.zip) attached to this post.
Next, download the following two apps from the Android Market:
OpenVPN Installer
OpenVPN Settings
Next, run OpenVPN installer, click install, give it an install path (I prefer /system/xbin), and give it the path to BusyBox.
Finally, run OpenVPN Settings. Go to Menu -> Advanced, make sure "Load tun kernel module" is checked.
Click on "TUN module settings"
Change "Load module using" to insmod
Change "Path to tun module" to... the path to your tun.ko file. Click back.
Update "Path to configurations" and "Path to openvpn binary".
That should be it!
This is how to run OpenVPN on a rooted Incredible using unrEVOked root and the stock 2.1 ROM with S_ON
NOTE: This is only for rooted Stock 2.1 without S_OFF. If you have S_OFF via unrevoked forever, just use Openvpn Installer and Openvpn Settings, both available in the market. Much easier!
This is my first time doing something like this, so bear with me if it is a little rough!
You must have root access to set this up. You do NOT need to go back into recovery adb though.
First, download the attached openvpn.zip containing the following:
tun.ko - kernel module for 2.1.
openvpn-static - statically compiled openvpn
If you are using 2.2, tun.zip contains the module compiled for the 2.2 kernel (thanks Apalyan!)
You will already need to have a working client.conf, and any associated keys. Copy the following files into a folder named 'openvpn' on the sdcard, or push with the following:
adb mkdir /sdcard/openvpn
adb push tun.ko /sdcard/openvpn/tun.ko
adb push client.conf /sdcard/openvpn/client.conf
adb push client.key /sdcard/openvpn/client.key
adb push client.crt /sdcard/openvpn/client.crt
adb push ca.crt /sdcard/openvpn/ca.crt
adb push openvpn-static /sdcard/openvpn/openvpn-static
The following must be done in a root shell:
adb shell
su
mkdir /data/openvpn
dd if=/sdcard/openvpn/openvpn-static of=/data/openvpn/openvpn
chmod 700 /data/openvpn/openvpn
Use the OpenVPN Settings configuration below to start/stop openvpn.
Note: All of the code was already written and ported to Android by the guys behind OpenVPN Settings. I just compiled a new tun.ko from the Incredible kernel source, and recompiled the statically linked openvpn with updated paths to ifconfig and route.
ADDED (thanks wraithdu!):
If you have trouble with post-connection routing, you may need to install busybox for a more powerful route/ipconfig. Instructions are here:
---
busybox is installed by the latest rooting process, but it's not a full install, ie it does not create all the command links. I got the file from the Titanium Backup site:
http://www.matrixrewriter.com/android/files/busybox-1.15.3.zip
To install:
1) extract and push busybox to your sdcard, reboot into recovery
2) mount /system
3) if you don't have /system/xbin (you should), create it
adb shell:
# mkdir /system/xbin (if necessary)
dd if=/sdcard/busybox of=/system/xbin/busybox
cd /system/xbin
chmod 755 busybox
./busybox --install .
4) reboot and done
OPTIONAL - before rebooting replace the busybox installed by the root process in /system/bin
1) mv /system/bin/busybox /system/bin/busybox.bak
2) cp /system/xbin/busybox /system/bin/busybox
OpenVPN Settings Instructions
OpenVPN Settings v. 4.6 works flawlessly with this! Here are setup instructions:
Install OpenVPN Settings v. 4.6 from:
Can't post links yet, do a google search for OpenVPN Settings, go to the Google Code download page, and download version 4.6.
Then, launch OpenVPN Settings, press Menu -> Advanced, and fill in the following settings:
Load tun kernel module - Checked
TUN module settings:
Load module using - insmod
Path to tun module - /sdcard/openvpn/tun.ko
Path to configurations - leave default
Path to openvpn binary - /data/openvpn/openvpn
It should work beautifully then.
any way to do it with non certicate based connections? i.e., group/psk configs?
The certificate setup isn't important, it is just how mine is set up. Any valid .conf should work.
ifconfig error
i got it all installed , it connects, but then in the end it says fatal error, ifconfig failed, could not execute external program. any ideas
You can run it manually to see what exactly is happening. Try the following:
adb shell
su
/data/openvpn/openvpn --config /sdcard/openvpn/client.conf
What generates the error?
error
Wed Jun 16 08:52:50 2010 /system/xbin/bb/ifconfig tap0 192.168.200.2 netmask 255
.255.255.0 mtu 1500 broadcast 192.168.200.255
Wed Jun 16 08:52:50 2010 Linux ifconfig failed: could not execute external progr
am
Wed Jun 16 08:52:50 2010 Exiting
and ifconfig is under /system/bin not /system/xbin/bb/. do you guys know where i need to change that?
The ifconfig stuff is hardcoded. I uploaded the wrong version - try this one.
Works perfectly
THANK YOU , works great
fang0654 said:
The ifconfig stuff is hardcoded. I uploaded the wrong version - try this one.
Click to expand...
Click to collapse
Thanks very much for this! Will be trying it later today.
Fang - Thanks again. Do you have any suggestions on a util or tutorial on making a conf file? I've access to our Cisco ASDM for our ASA, the URL for the ASA, group name, Group key, and of course my username and pw.
For that, you need vpnc instead of openvpn.
I know the problem with using the VPN Connections app is that the tun.ko autoload doesn't work. There are a couple of things you may be able to do as a workaround.
1. Load the module by hand:
adb shell
su
insmod /sdcard/openvpn/tun.ko
or 2. Use the OpenVPN Settings app from above to load the tun module (just start openvpn, then stop it), then try out the VPNC app.
I don't have a Cisco vpn so I don't have any way of testing whether this works.
Gets "failed to connect" immediately. know of any way to launch the vpn connections via command line to see where it is failing?
This worked like a charm! Thanks very much for this guide.
Stupid question, how do I get to a adb shell? I already rooted the phone. I don't have to do the rooting process all over do I?
If your running Linux, just type "adb shell" in you terminal window - make sure your phone is connected via USB cable - you should get the "$" after this command and then your in your phone's shell.
I believe windows is the same way, but I only have Linux stuff running now...
Thanks a lot for putting this together!
mattwood2000 said:
If your running Linux, just type "adb shell" in you terminal window - make sure your phone is connected via USB cable - you should get the "$" after this command and then your in your phone's shell.
I believe windows is the same way, but I only have Linux stuff running now...
Click to expand...
Click to collapse
With the phone connected via USB (Disk drive or anything), I type "adb shell" and get device not found. I'm running Windows 7. Phone has been rooted (have Wifi Tethering installed). Just having issues getting it back to the shell command like when I first rooted it :/
make sure USB Debugging is enabled
OK, had a misspell in the tun.ko file.
I'm connected now. But unable to connect to anything on my network. Still looking into it.
Any ideas? I've restarted the phone. I'm connected to my OpenVPN server. I cannot ping the IP assigned to it (from OpenVPN status page). I cannot ping anything on my internal network from the shell. Shows no data moving. Do I need to do something?
I did a netconf and i have this:
tap0 UP 172.30.100.255 255.255.0.0 0x00001043

[17/12][UPDATE]OPENVPN.zip!!FLASH WITH CWM-ANY SENSE ROM

OpenVPN on SENSE & Buzz OC/UV 1.51Ghz 1.1.4 HOW TO
NEW UPDATE: 17/12/2010
OpenVpn.zip - FLASH IN CLOCKWORK MOD AND FOLLOW ON FROM STEP 4!!
WHAT IT DOES.
- New iptables
- New Openvpn binary
- All Symlinks created.
- All Permissions.
- Folders Created.
REQUIREMENTS:
-ROOT
-CWM-RECOVERY
-BusyBox
-OpenVpn config files, certs etc in /sdcard/openvpn
CONFIRMED WORKING ON :
-LeeDroid 1.2
-[RUU_Ace_HTC_WWE_1.32.405.6 Stock Sense Rom] - thanks to Walker Street For Testing.
Please inform me if you can confirm this working on Other ROM'S Thank you.
I AM USING ,
[KERNEL]Buzz OC/UV 1.51Ghz CFS+BFQ+SmartAss+TUN+EXT4+.27 ACE 1.1.4 [15/12/2010]
IN THEORY THIS SHOULD WORK WITH ANY SENSE ROM & KERNEL..
JUST MAKE SURE YOU THE KERNEL HAS A TUN.KO ETC CONFIGURED FOR IT.
DOWNLOAD :
http://dl.dropbox.com/u/15057375/mero01-xda/OpenVPN.zip
And a BIG thanks to ecips for helping with this
NO LONGER NEED TO DO ANY OF THIS , JUST USE OpenVPN.zip & FOLLOW ON FROM STEP 4!!
Ok guys had alot of problems gettings this too were it working, hopefully you guys might see some errors/fix's to improve on this
Requirements:
OpenVPN-Settings - Market
OpenVpn Binary File - Located in the openvpn4DesireHD.ZIP
LeeDrOiD HD v1.2 - http://forum.xda-developers.com/showthread.php?t=842802
Buzz OC/UV 1.51Ghz 1.1.4 - http://forum.xda-developers.com/showthread.php?t=835616
UPDATED 17/12/2010: CONFIRMED WORKING ON, LeeDroiD HD v1.2 & Buzz OC/UV 1.51Ghz 1.1.4
A) Not sure if this matters or not but i copied LeeDroids iptables file from the Desire.
B) Copy your client.conf or .ovpn file and certs to /sdcard/openvpn
C) Implementation:
1. Unzip/copy openvpn binary file to device.
1.b replace the current openvpn file in /system/xbin with this new one
1.c -- chmod +x with it.
Code:
adb remount
adb push openvpn /system/xbin/
adb shell
chmod +x /system/xbin/openvpn
exit
If " adb remount " didnt work
Code:
su
mount -o rw,remount -t yaffs2 /dev/block/mmcblk0p25 /system
in order to mount system as read/write
2. Make folder /system/xbin/bb
Code:
adb remount
adb shell mkdir /system/xbin/bb
exit
3. Make symbolic links to ifconfig and route & busy box.
THIS IS WERE THE PROBLEMS ALL COME FROM AND IF YOU HAVE ISSUES THIS IS WHAT WILL BE CAUSEING IT! SOMETHING TO DO WITH LINK BETWEEN BUSY BOX AND IFCONFIG......BUT I TRIED FROM FRESH BOOT AND IT WORKS FLAWLESSLY NOW WILL TALK TOO LEE ABOUT GETTING EVERYTHING INBUILT IN LEEDROID
Code:
adb remount
adb shell
ln -s /system/xbin/ifconfig /system/xbin/bb/ifconfig
ln -s /system/xbin/route /system/xbin/bb/route
ln -s /system/xbin/busybox /system/xbin/ifconfig
reboot
4. Install/Configure OpenVPN-Settings
4.0 Install OpenVPN-Settings from "Market" its free dont worrie
Code:
4.1 On device, launch OpenVPN Settings.
4.2 Long press openvpn.conf, Preferences.
4.3 Check "Use VPN DNS Server"
4.4 Enter your VPN DNS Server
4.5 Script Security Level Select Built-in + scripts
4.5 press back
4.6 Click click the sub-menu option select Advanced
4.7 Load tun kernel module and make it 'insmod /system/lib/modules/tun.ko' before starting openvpn.
7.8 Change path to openvpn binary to /system/xbin/openvpn
Click " Fix HTC Routes "
You should now be connected
IF I FORGOT ANYTHING PLS LET ME KNOW VERY TIRED WHEN I DID THIS HAHA
Here is my config anyways for reference and here is my client config
Code:
client
dev tun
proto udp
remote XXX.XXX.XXX.XX 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert mero-android.crt
key mero-android.key
comp-lzo
verb 6
script-security 2
Have also realised if you go terminal and do following gives you nice log
basicly , su root, cd to your openvpn folder location, run openvpn on your client conf
Code:
su
cd /sdcard/openvpn
openvpn client.ovpn
For added security. To make the OpenVPN request a password on connect. do the following
change step 4.5 to Script Security Level Select Built-in + scripts + passwords
add the following to your server conf.
Code:
username-as-common-name
plugin /usr/lib/openvpn/openvpn-auth-pam.so login
and this to your client
Code:
auth-user-pass
Change Log:
Use OpenVPN.zip & step 4 and beyond.
17/12/2010
DOWNLOAD:
http://dl.dropbox.com/u/15057375/mero01-xda/OpenVPN.zip
Out of curiosity, what is OpenVPN used for?
Then i will know if i have to use your spot on tutorial
no1male said:
Out of curiosity, what is OpenVPN used for?
Then i will know if i have to use your spot on tutorial
Click to expand...
Click to collapse
It's a VPN (virtual private network). I can access my home and work computers from my android.
I am super-impressed mero. But I wasn't able to get it to work .... I think it's my fault .... I've stuffed around so much. I'm right now starting a clean install.... It should work..... I hope.
Walker Street said:
I am super-impressed mero. But I wasn't able to get it to work .... I think it's my fault .... I've stuffed around so much. I'm right now starting a clean install.... It should work..... I hope.
Click to expand...
Click to collapse
thanks
I did alot of stuffing around aswell thats why i wanted to test it.
So i did a full wipe. then flash to 1.2 reboot. flash to 1.0.1.fix. and then first thing i did was follow those steps.
connection worked first go
please update me, as im sure i can help.
Walker Street,
I attached a screen shot of the actual adb session i did just incase. the bottom 3 commands to my knowledge and what i can see dont work so i ommited them from the tut. but they might do somthign and not display it so thought i might upload incase.
mero01 said:
Walker Street,
I attached a screen shot of the actual adb session i did just incase. the bottom 3 commands to my knowledge and what i can see dont work so i ommited them from the tut. but they might do somthign and not display it so thought i might upload incase.
Click to expand...
Click to collapse
Silly me. I forgot to set 'Fix HTC Routes'. Now I've done that and your method rules.
You're a genius mero. It works.
I changed permissions for the new openvpn and iptables using root explorer so they could execute. Maybe you didn't need to because you were doing adb push from linux (I was doing it from windows).
I don't have a DNS server, so I didn't need to specify one.
I would highly recommend these changes to LeeDroid for his rom. Have you messaged him yet?
Walker Street said:
Silly me. I forgot to set 'Fix HTC Routes'. Now I've done that and your method rules.
You're a genius mero. It works.
Click to expand...
Click to collapse
+1
Thank you very much
Walker Street said:
I changed permissions for the new openvpn and iptables using root explorer so they could execute. Maybe you didn't need to because you were doing adb push from linux (I was doing it from windows).
I don't have a DNS server, so I didn't need to specify one.
I would highly recommend these changes to LeeDroid for his rom. Have you messaged him yet?
Click to expand...
Click to collapse
to be honest the only part i did in adb was the symlinks did everything else in root explorer.i didnt change any permissions :S
Yes i have PM'd him, awaiting a reply
just updated to Buzz 1.0.2 , everything still works
Walker Street said:
It's a VPN (virtual private network). I can access my home and work computers from my android.
Click to expand...
Click to collapse
Yes and tunnel all your internet traffic back through the VPN encrypted in many ways
also works with buzz 1.0.8.
and after pushing the openvpn binary, you need to do chmod +x with it.
raw235 said:
also works with buzz 1.0.8.
and after pushing the openvpn binary, you need to do chmod +x with it.
Click to expand...
Click to collapse
No worries thanksss, i shall update
anyone tried with 1.1.0 ?
Hello,
i'm in trouble....
At first, i have an error when i try the adb remount command : Operation not permitted
Then i have a second message when i try to create the "bb" folder : mkdir failed for bb. Read-only file system.
I'm confused because tel is rooted, S-OFF and suped-CID. I even changed the Kernel with Buzz's one 1,2Ghz.
Did i miss something?
Thanks for your help
Lionel
EFCAugure said:
Hello,
i'm in trouble....
At first, i have an error when i try the adb remount command : Operation not permitted
Then i have a second message when i try to create the "bb" folder : mkdir failed for bb. Read-only file system.
I'm confused because tel is rooted, S-OFF and suped-CID. I even changed the Kernel with Buzz's one 1,2Ghz.
Did i miss something?
Thanks for your help
Lionel
Click to expand...
Click to collapse
hmm thats very strange... adb remount should work...
actually quite puzzled at that dunno why it wouldnt work if you do have root etc.
only other thing i can think of is have you got busybox installed ?
what state is your phone in when your trying to do this ? ie off. on, recovery mode.
Hi,
thanks for reply!
I have a branded SFR phone in France but i managed to root it and S-OFF it without problem.
I switched to another Kernel with the tun.ko file and that's all.
When i tried adb remount, the phone was ON (no recovery or anything else).
I will try in recovery mode.
Busybox is installed.
Note : impossible to connect adb while in recovery.
This seems to be the problem :
when switching kernel only, i don't change the property ro.secure because it's nested (of what i read) in the boot.img. I have a branded phone and this property is set to 1.
Is there a way to change this property without changing the whole ROM? I would llike to stay with this one.
Thanks for your advice
lionel
Ok,
switched to Leedroid 1.2 and re-changed kernel to Buzz 1,22Ghz.
This tutorial is awesome!
Thanks mero01!!!
Is there a way to use the WIFI connection instead of 3G?
EFCAugure said:
Ok,
switched to Leedroid 1.2 and re-changed kernel to Buzz 1,22Ghz.
This tutorial is awesome!
Thanks mero01!!!
Is there a way to use the WIFI connection instead of 3G?
Click to expand...
Click to collapse
no worries
yer just disable 3g and use wifi. just make sure that its not using the same wifi your openvpn server is on...
Yes, of course!
I will try from a friend's wifi this afternoon!
Thanks
lionel

[Q] OpenVPN on the Charge?

Dear All,
Does anyone have OpenVPN working on the Charge? I have PeanutButta Jelly Time which is suppose to have the tun.ko module in the kernel and lsmod gives me tun. however installing openvpn using the installer and settings does not work. I followed all the instruction including the push of openvpn2.1.1, sym linking of ifconfig and route, as well as various tun.ko files, but it fails to start. any thoughts?
Elviso
I am also interested in this
bump .. +1 .. anyone?
Please use the Q&A Forum for questions Thanks
Moving to Q&A
I finally got it working on mine. GummyCharged FE 2.0.
1) Install GummyCharge FE 2.0 ROM.
2) Install latest Imoseyon kernel. I don't think you need this since GC comes with the Imoseyon kernel #130 which should already have TUN support, but I upgraded mine anyway. After kernel upgrade mine was at #141. Link: http://rootzwiki.com/showthread.php...leanKernel-minimalistic-kernel-(v1.2.2-9-8-11)
3) Install Busybox.
4) Download bnred777's tun.ko from here: http://forum.xda-developers.com/showthread.php?t=1235410
5) Create a direcotyr called /system/lib/modules/ and /system/xbin/bb/
6) Copy tun.ko to /system/lib/modules/
7) Create a directory on your sdcard called /openvpn and copy all of your ovpn config and certificates there.
8) Install OpenVPN Installer from the market.
9) Run OpenVPN Installer and choose target directory of /system/xbin and /system/xbin/bb for ifconfig.
10) Create symlinks in the /system/xbin/bb/ directory:
ln -s /system/xbin/ifconfig /system/xbin/bb/ifconfig
ln -s /system/xbin/route /system/xbin/bb/route
11) Reboot your phone.
12) Run the following command from shell. You will have to run this every time you want to connect to your vpn. I would suggest making a shortcut shell script or there is probably a way to put it in start up.
insmod /system/lib/modules/tun.ko
13) Install OpenVPN Settings from the market. It should pick up your configuration settings from your sdcard/openvpn directory automatically.
14) Put in your password and you should be connected to your VPN.
The instructions are pretty much the same as other droid devices except for the Charge you need a Charge compiled tun.ko and getting the less finicky directories and symlinks took me a while to figure out. Here is a thread that helped me out with the directories and symlinks:
http://code.google.com/p/android-openvpn-installer/issues/detail?id=2

Better integrating Busybox (2012-11-17)

Most Android ROMs use toolbox as primary binary with symlinks in /system/bin and /system/xbin. The problem with toolbox is that it sucks. On some ROMs it's even so limited that it does not even allow for --prefix
Busybox is a great replacement for toolbox, but in order to use it, you have to call it using 'busybox cmd'. I would much rather use it by calling 'cmd' but this would execute toolbox instead of busybox.
Most would think the command 'busybox --install' would fix this, but it does'nt. It tries to install links at /bin and /sbin.
The script below will replace any toolbox links in /system/bin and /system/xbin that is supported by the busybox version installed on the Android device running the script. This will make busybox the default binary when executing regular commands without adding 'busybox' at the beginning of the command.
For an example 'ls' instead of 'busybox ls'
Download as an update.zip
v1.3.0 (Nov 17, 2012) (MD5: c233964f0f62a16d7376739041e8b250) - busybox_installer.zip (Only for ArmV7 devices)
v1.3.0 (Nov 17, 2012) (MD5: e921a6c4119644a18d4feea565824ab1) - busybox_installer-nobin (Without binaries)
busybox.sh
Code:
#!/sbin/sh
for cmd in test find basename readlink ln rm; do
eval export "_$cmd=\"/sbin/busybox $cmd\""
done
_busybox=$($_find /system -type f -name "busybox")
_toolbox=$($_find /system -type f -name "toolbox")
if $_test -e "$_busybox" && $_test -e "$_toolbox"; then
sToolboxList="watchprops wipe vmstat date uptime reboot getevent getprop setprop id iftop ioctl ionice log lsof nandread newfs_msdos notify ps r schedtop sendevent setconsole setprop sleep smd start stop top"
sBusyboxList="`$_busybox --list`"
for applet in $sBusyboxList; do
if $_test -L /system/bin/$applet; then
if $_test "`$_basename $($_readlink -f /system/bin/$applet)`" = "toolbox"; then
$_ln -sf $_busybox /system/bin/$applet
if $_test -L /system/xbin/$applet; then
$_rm -rf /system/xbin/$applet
fi
fi
elif $_test -L /system/xbin/$applet; then
if $_test "`$_basename $($_readlink -f /system/xbin/$applet)`" = "toolbox"; then
$_ln -sf $_busybox /system/xbin/$applet
fi
elif ! $_test -e /system/bin/$applet && ! $_test -e /system/xbin/$applet; then
$_ln -sf $_busybox /system/bin/$applet
fi
done
for applet in $sToolboxList; do
$_ln -sf $_toolbox /system/bin/$applet
done
fi
Toolbox install links
watchprops, wipe, vmstat, date, uptime, reboot, getevent, getprop, setprop, id, iftop, ioctl, ionice, log, lsof, nandread, newfs_msdos, notify, ps, r, su, schedtop, sendevent, setconsole, setprop, sleep, smd, start, stop, top
Busybox install links
Whatever the currently installed busybox supports that is not in the list of toolbox install links
Change log
Dec 10 2011, 21:39 UTC:
The script will now leave skip replacing /system/bin/reboot as it needs to be pointed at toolbox
Dec 11 2011, 10:08 UTC:
Added an update zip that will configure busybox and it provides an extended 1.4MB binary instead of the regular 480KB most ROM's provide
Dec 12 2011, 09:25 UTC:
Added new busybox build (1.20.0.git 2011-12-11) since there was problem with the old one for some people
Added more busybox search dirs (/system/sbin and /sbin)
Added Toolbox install to make sure that some android specific links uses toolbox instead of busybox. See list above.
Jun 27 2012, 13:45 UTC:
Better Busybox and Toolbox search
Added symlink check to make sure that busybox only replaces toolbox links and not things like "sh -> mksh"
Nov 17 2012, 10:30 UTC:
Added a custom toolbox binary to the ArmV7 installer
Added latest CM9 busybox binary to the ArmV7 binary
Added an auto search function to locate the binaries on the device
Fixed both installers to work with newer devices that uses EXT4 file system
Thanks, dk_zero-cool. I've been looking for a guide to installing BusyBox, since I can only find an add-supported installer in the Android Market.
Thanks, nice job!!
Ran the script, worked and did fine....ONE BIG ISSUE....now if you have any script or app that relies on the "reboot" function, it no longer works. For example, rom manager & bootstrapper will not boot into recovery. I even open up terminal and typed:
Code:
$ su
# reboot
...and nothing...does the reboot in /bin need to not be linked to busybox?
KMDonlon said:
Ran the script, worked and did fine....ONE BIG ISSUE....now if you have any script or app that relies on the "reboot" function, it no longer works. For example, rom manager & bootstrapper will not boot into recovery. I even open up terminal and typed:
Code:
$ su
# reboot
...and nothing...does the reboot in /bin need to not be linked to busybox?
Click to expand...
Click to collapse
Try to relink it back to toolbox and then I will update the script to leave reboot alone.
1: mount -o remount,rw /system
2: rm -r /system/bin/reboot
3: ln -s /system/bin/toolbox /system/bin/reboot
Great! Will try again!
Cool... can I steal this?
I'd implement it with a busybox install script
I'm not a super expert on the subject but is /system/sbin a possible location?
zeppelinrox said:
Cool... can I steal this?
I'd implement it with a busybox install script
I'm not a super expert on the subject but is /system/sbin a possible location?
Click to expand...
Click to collapse
You can use this as you like.
And you can type "echo $PATH" in an adb shell, if /system/sbin is there, then it will work. But why? /system/xbin is usually the default dir for placing busybox, otherwise /system/bin. And you will have to change the script since it will only check in /system/bin and /system/xbin
All times in my scripts report UTC time instead of system time, I am sure there is one other applet in /bin that was linked to toolbox that is now linked to busybox and reporting the date wrong or at least the date/time that busybox says (UTC time).
KMDonlon said:
All times in my scripts report UTC time instead of system time, I am sure there is one other applet in /bin that was linked to toolbox that is now linked to busybox and reporting the date wrong or at least the date/time that busybox says (UTC time).
Click to expand...
Click to collapse
Do the same as before, only this time replace 'reboot' with 'date'
This must be a setting in the busybox compile menu. A new binary might fix this because busybox should be able to display system time. But for now point date back to toolbox and it will work for you.
Yup, did what you just said and all is fine. Thanks! Is there a way you can implement the reboot and date applet ignore in the script within the .zip you made.... I think it will save users some headaches.
dk_zero-cool said:
You can use this as you like.
And you can type "echo $PATH" in an adb shell, if /system/sbin is there, then it will work. But why? /system/xbin is usually the default dir for placing busybox, otherwise /system/bin. And you will have to change the script since it will only check in /system/bin and /system/xbin
Click to expand...
Click to collapse
Well bb is sometimes installed elsewhere.
At first SuperCharger only looked in those 2 locations and stopped when it wasn't found.
What would happen if there was a second version elsewhere?
I suppose it wouldn't matter because of the symlinks.
KMDonlon said:
Yup, did what you just said and all is fine. Thanks! Is there a way you can implement the reboot and date applet ignore in the script within the .zip you made.... I think it will save users some headaches.
Click to expand...
Click to collapse
The reboot fix is already in the zip file.
The date fix I don't want in it, I would much rather fix busybox to work properly.
I'm currently looking at that.
zeppelinrox said:
Well bb is sometimes installed elsewhere.
At first SuperCharger only looked in those 2 locations and stopped when it wasn't found.
What would happen if there was a second version elsewhere?
I suppose it wouldn't matter because of the symlinks.
Click to expand...
Click to collapse
No that does not mater because of the symlinks.
That's why I referrer to the complete path, f.eks, "/system/xbin/busybox" and not just the binary name "busybox".
I am going to try your binary for Busybox and see, I am currently using JRummy's BB installer which installed v1.19.3 which is about 1.06MB....
EDIT: Just flashed the .zip, my phone will not boot past the logo....did a battery pull several times and can't get into CWR....SBF time
KMDonlon said:
I am going to try your binary for Busybox and see, I am currently using JRummy's BB installer which installed v1.19.3 which is about 1.06MB....
EDIT: Just flashed the .zip, my phone will not boot past the logo....did a battery pull several times and can't get into CWR....SBF time
Click to expand...
Click to collapse
Put in your USB cable, open a terminal/console on your computer and try "adb logcat" to see what it says when it stops booting.
You must of cause have adb installed on your computer, and USB drivers if you use windows, which I don't and cant help with.
Already reflashed phone back....sorry, no logcat....
Do it again...
C'mon take one for the team... hehe...
LMFAO!!!! Sorry dude, I ain't gonna do it....will let some other poor soul ....I got honey do's today, it's Sunday!!
Whatever it was I can't recreate it. Works fine when I flash the damn thing.
Here's a thought.....make a script that reverses the toolbox links, I can undo it and try to flash again....I was unable to manually install your busybox version so I think some other toolbox applet is causing me trouble.....

[FOR CHEFS] xpad/cifs/hfs/squashfs/btrfs modules for stock kernel ICS v9.2.1.11

I took a vanilla 2.6.39.4 linux source tree, copied in the .config from /proc from my running ICS v9 build. And compiled it.
After that, turned on CIFS and XPAD support in the config and compiled them as modules.
These modules load fine if I insmod them, and I can confirm that after loading ff_memless and xpad I now have my xbox360 pad working on the home screen (I can move through screens and icons).
edit: Just played a round of Riptide GP, works fine .
edit: I updated the cifs module and included the md4 crypto module, and they now work! I manually 'insmodded' md4.ko and then cifs.ko, and from the command line and / or from cifsmanger I can now mount a share.
As I said, these modules load fine, but in dmesg there is a notion that the version magic isn't perfect yet. So I might make updated ones with proper versionmagic set. But for now it seems to be working.
Might be handy for ROM chefs who are working with the stock ICS kernel for which we have no sources yet.
TUN module is _builtin_ by default on ICS stock kernel, so no need for it anymore.
EDIT v2 zips: I recompiled them with the correct version info, so they give no more warnings when loaded through insmod. I added them to my stock rom to auto-load during boot (created a simple /system/etc/install-recovery.sh) and all seems fine so far.
For voodoo sound to work, is it a simple module which I can get anywhere? I only see 2.6.36 kernel trees on Project Voodoo website
----------------------------------------------------------
hfs @ http://forum.xda-developers.com/showpost.php?p=23018909&postcount=19
squashfs + btrfs @ http://forum.xda-developers.com/showpost.php?p=23019453&postcount=20
good for those complaining about cifs
dipje said:
I took a vanilla 2.6.39.4 linux source tree, copied in the .config from /proc from my running ICS v9 build. And compiled it.
After that, turned on CIFS and XPAD support in the config and compiled them as modules.
These modules load fine if I insmod them, and I can confirm that after loading ff_memless and xpad I now have my xbox360 pad working on the home screen (I can move through screens and icons).
edit: Just played a round of Riptide GP, works fine .
edit: I updated the cifs module and included the md4 crypto module, and they now work! I manually 'insmodded' md4.ko and then cifs.ko, and from the command line and / or from cifsmanger I can now mount a share.
As I said, these modules load fine, but in dmesg there is a notion that the version magic isn't perfect yet. So I might make updated ones with proper versionmagic set. But for now it seems to be working.
Might be handy for ROM chefs who are working with the stock ICS kernel for which we have no sources yet.
TUN module is _builtin_ by default on ICS stock kernel, so no need for it anymore.
For voodoo sound to work, is it a simple module which I can get anywhere? I only see 2.6.36 kernel trees on Project Voodoo website
Click to expand...
Click to collapse
in case you want to try that too because its faster than cifs
nfs support is in the kernel, no additional modules required
to get it working with cifsmanager mountings nfs shares i did the following
(it also works with commandline)
### as su and /system readwrite mounted
### remove symlink to toolbox
rm /system/bin/mount
### and use busybox instead
ln -s /system/xbin/busybox /system/bin/mount
mount options: rw,intr,soft,nolock
the modules are already working.
NFS support is nice for people with linux boxes but most windows users don't have a use for it , that's why they want cifs .
I don't care much for overclocking, so with cifs support + xbox360 support I'm more than happy with rooted stock now . And rom chefs can include the modules in their optimized ROMs until we have proper kernel source
Care to share how to get this loaded into the current ics roms. I have copied to /system/lib/modules and tried to load using mount manager and cifs manager with no luck.
comfort69 said:
Care to share how to get this loaded into the current ics roms. I have copied to /system/lib/modules and tried to load using mount manager and cifs manager with no luck.
Click to expand...
Click to collapse
you can e.g. create a script (like I believe OP did) in /etc/system/install-recovery.sh with
#!/system/bin/sh
insmod cifs.ko
insmod md4.ko
or you can mount it by hand in terminal (with insmod)
or you can simply create init.d script and call it 91modules:
#!/system/bin/sh
sleep 1
insmod /system/lib/modules/cifs.ko
echo "CIFS support activated";
and place it in system/etc/init.d if custom ROM supports init.d support.
comfort69 said:
Care to share how to get this loaded into the current ics roms. I have copied to /system/lib/modules and tried to load using mount manager and cifs manager with no luck.
Click to expand...
Click to collapse
jerry was close. Module auto-loading won't work, so you have to do it by hand.
Through an 'adb shell' or with a terminal emulator app from the market, type the following:
su -
insmod /system/lib/modules/md4.ko
insmod /system/lib/modules/cifs.ko
cifsmanager should work, until you reboot, you'll have to do the lines again.
Creating a file /system/etc/install-recovery.sh will do it auto on boot:
Code:
#!/system/bin/sh
insmod /system/lib/modules/md4.ko
insmod /system/lib/modules/cifs.ko
Make sure to create the file executable (permissions 777 will do ).
I hope rom chefs will use them and make them auto-load at boot until we have the sources from Asus.
edit: What mike said works, IF you have init.d support. Most custom ROMs have this, stock rom has not I believe.
dipje said:
jerry was close. Module auto-loading won't work, so you have to do it by hand.
Through an 'adb shell' or with a terminal emulator app from the market, type the following:
su -
insmod /system/lib/modules/md4.ko
insmod /system/lib/modules/cifs.ko
cifsmanager should work, until you reboot, you'll have to do the lines again.
Creating a file /system/etc/install-recovery.sh will do it auto on boot:
Code:
#!/system/bin/sh
insmod /system/lib/modules/md4.ko
insmod /system/lib/modules/cifs.ko
Make sure to create the file executable (permissions 777 will do ).
I hope rom chefs will use them and make them auto-load at boot until we have the sources from Asus.
Click to expand...
Click to collapse
Keep in mind that install-recovery.sh is executed from ramdisk (init.ventana.rc or init.rc, don't remember now) and some chefs (including me) removed that execution line. So much easier to add init.d script I think. Just a suggestion
EDIT:
yeah, for those on stock ROMs install-recovery.sh method is good, for those using custom ROMs it's better to use init.d
I tried to get it to run manually using terminal emulator and get
failed file exists
Sent from my Transformer TF101 using Tapatalk
comfort69 said:
I tried to get it to run manually using terminal emulator and get
failed file exists
Sent from my Transformer TF101 using Tapatalk
Click to expand...
Click to collapse
my guess is you're trying to load them double or something.
If you give the command 'lsmod' you get a listed of loaded modules. Check if they're there or not.
Anyone got Junos working with the builtin tun.ko ?
comfort69 said:
Care to share how to get this loaded into the current ics roms. I have copied to /system/lib/modules and tried to load using mount manager and cifs manager with no luck.
Click to expand...
Click to collapse
cifsmanager - preferences:
check "load with insmod"
if its not already, adjust path to cifs.ko and other modules
btw: as rmmod tries to remove /lib/modules/cifs.ko instead of /system/lib/modules/cifs.ko there's no way to unload the module other than rebooting.
just sharing how I did manage cifs to work
I've installed Revolution HD 3.00 (ICS 4.0.3), installed CifsManager, didn't work, tried to copy cifs.ko and md4.ko in /system/lib/modules with File Expert or Root Explorer, couldn't because of a read-only system files, plugged my tablet on a PC, launched an adb session and typed:
$ adb shell
$ su
$ mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system
pushed through adb cifs.ko and md4.ko in /system/lib/modules
changed the permission to 777 using File Expert
launched cifs and md4 using terminal emulator:
insmod /system/lib/modules/cifs.ko
insmod /system/lib/modules/md4.ko
in cifsmanager settings, didn't check load modules on boot and load through insmod
tried to connect my shares: succeed
Hope it will help somebody
jeanvdr said:
$ mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system
Click to expand...
Click to collapse
hmm strange
my /system is mounted elsewhere
/dev/block/mmcblk0p1 on /system type ext4
anyway
another method without terminal (and.revol hd 3.0.0 only)
adb shell sysrw
adb push cifs.ko /system/lib/modules
adb push md4.ko /system/lib/modules
adb shell chmod 644 /system/lib/modules/*.ko
adb shell insmod /system/lib/modules/cifs.ko
adb shell insmod /system/lib/modules/md4.ko
If the modules don't cause problems, they will likely be in the next ARHD version.
Remounting goes like this: busybox mount -o remount,rw /system
Yaffs2 filesystem isn't used anymore, and 'remount ' ignores these parameters anyway .
Please keep it readable for people on stock ics, custom roms will get these modules somehow anyway.
Adb sysrw will not work without modified bootdisk AFAIK.
Wat is Janos? ? Maybe it needs more than the tun module, like crypto modules?
Btw, my tablet still working fine. Never had a Sleep of Death. Actually, never EVER had a SOD with my tablet, and I can't seem how any cifs module can cause it like some people are saying.
woti23 said:
cifsmanager - preferences:
check "load with insmod"
if its not already, adjust path to cifs.ko and other modules
Click to expand...
Click to collapse
The problem is this cifs.ko module required md4.ko, and AFAIK cifsmanager doesn't try to load it.
dipje said:
The problem is this cifs.ko module required md4.ko, and AFAIK cifsmanager doesn't try to load it.
Click to expand...
Click to collapse
actually it does, if you
check "load cifs module at start"
check "load per insmod"
fill out "path to cifs.ko":
/system/lib/modules/cifs.ko:/system/lib/modules/md4.ko:/system/lib/modules/nls_iso8859_1.ko
[email protected]:/~# >lsmod
nls_iso8859_1 3107 0 - Live 0xbf066000
cifs 218286 0 - Live 0xbf12a000
md4 3007 0 - Live 0xbf003000
it is a little work to type the pathes, and you surely are right that for most people its easier if it is loaded in the rom (init.d or somewhere else) automagically
btw: if you once compile modules again would you mind compiling the hfsplus module en passant? it should compile without any troubles and dependencies and allows manually (command line) mounting a mac os x external harddisk?
woti23 said:
btw: if you once compile modules again would you mind compiling the hfsplus module en passant? it should compile without any troubles and dependencies and allows manually (command line) mounting a mac os x external harddisk?
Click to expand...
Click to collapse
I haven't tested them (as in, didn't even try if they would load OK).
I just noticed I screwed up the vermagic again, so you'll get a warning in dmesg while loading. Should load ok though.
edit: Ok I've redone them. Proper cpu + vermagic now
And if people wanna experiment, mess with stuff:
squashfs
btrfs

Categories

Resources