Without any good reason and no actual need and more for because-I-am-curious, I rooted my Milestone 2 (v2.3.4).
Instructions came mostly from here which pointed me into the right direction:
- You need adb from the Android SDK
- Get SuperOneClick v2.3.3 from http://shortfuse.org/
- Turn on the USB debugging on the Milestone: Settings/Applications/Development/USB Debugging must be checked
- Connect Milestone 2 via USB to my Linux machine
- Run “adb devices” as root. This starts the adb local server which connects to the phone via USB.
- adb push Exploit/zergRush /data/local/tmp
- adb shell
- cd /data/local/tmp
- chmod 777 zergRush
- ./zergRush
- adb kill-server
- adb devices
- adb shell
- See what block device is used via: cat /proc/mounts
- In my case /system is mounted from /dev/block/mmcblk1p21
- mount -o remount,rw /dev/block/mmcblk1p21 /system
- exit
- adb push Dependencies/busybox /system/bin/busybox
- adb push Root/su-v2 /system/bin/su
- adb install Root/Superuser.apk
- adb shell
- chmod 4755 /system/bin/busybox
- chmod 4755 /system/bin/su
- mount -o remount,ro /dev/block/mmcblk1p21 /system
- exit
- adb reboot
The phone reboots here and it’s done. Next time I log in via “adb shell” I simply type “su” and I am root.