Air Playit for Android has been stuck at version 0.9.1 since its January 2012 release, with no later update available. On Android 2.3 it generally runs without trouble, but Android 4.0 can trigger a crash in a very specific place: adding a server.
The problem usually appears after entering the server IP address. As soon as you tap to add the server, Android reports that Air Playit has stopped running. Depending on the system, it may also ask whether to send an error report, or simply show an FC message.
The cause appears to be related to IPv6. Some users have pointed out that Android 2.3 does not support IPv6 in the same way, which is why Air Playit works normally there. On Android 4.0, however, there is no obvious built-in way to disable IPv6, so Air Playit crashes when trying to add the server.
A hotfix script called rmipv6.sh has been shared as a workaround. It temporarily removes the IPv6 address from the wireless interface:
#!/system/bin/sh
ipv6=`busybox ifconfig | busybox grep -A 4 wlan0 | busybox awk '/inet6\ addr/{print $3}'`
busybox ifconfig wlan0 del $ipv6
The script first reads the IPv6 address and stores it in the ipv6 variable. It then deletes that IPv6 address from wlan0.
Before using it, there are two things to check:
- BusyBox must be installed on the phone. If it is not already present, install it manually.
- The wireless interface name may vary by device. Some phones do not use
eth0; for example, the Lenovo A789 useswlan0.
The basic procedure is as follows:
- Use Root Explorer or a similar file manager to copy
rmipv6.shto/system/bin. The external SD card path may be/mnt/sdcardor/mnt/sdcard2. - Long-press the file and change its permissions to
3 1 3, which is equivalent to747. - Tap the script to run it. If it does not work immediately, reboot the phone and try again. In one case, after installing BusyBox for the first time, the script only worked properly after restarting the device.
- Open Air Playit again and add the server IP. After IPv6 is removed, the server can be added normally.