четверг, 20 сентября 2012 г.


I've got a lot of messages about the same issues from different people every day. I decide to write the answers once in a one place instead of writing tons of replies. If you found a new issue which is not in the list below - feel free to  contact me.

Q: I've got my phone stacked at the last faked location
Q: My phone can't fetch the real location
Q: After uninstalling your app I still got wrong location even after factory reset

All of this are the same issue which happened with you when you forgot to disable "Wireless/Network location provider" as it's recommended in the description. Don't worry - yout gps sensor is ok. Read this article to understand why you are pinned to a wrong location after playing with Fake GPS:

You have two options to do:
1st way:
  • Enable "Wireless/Network location provider" back
  • Install "GPS status" app from Google Play
  • Get a fresh GPS fix
  • Wait for 24 hours (may be less) until google updates your Wi-Fi access point's location (don't use Fake GPS during this time)
  • When you've got it and wish to continue using Fake GPS remember to DISABLE "Wireless/Network location provider" to avoid this issue in future
2nd way:
  • Add "_nomap" suffix at the end of your Wi-Fi access point name. E.g.: "JohnSmith" => "JohnSmith_nomap"
  • After that you can enable "Wireless/Network location provider" back without any future issues
This force google not to use your Wi-Fi access point to determine your location. But you may find that GPS stop working in your premises. So don't use this method unless you understand what you are doing clearly. For more details see http://googleblog.blogspot.com/2011/11/greater-choice-for-wireless-access.html

Q: It doesn't work with MLB At Bat!

MLB At Bat uses double check of your location: GPS location + GeoIP location. The second one means they can get your rough location by your IP address (issued by your local internet provider) and black you out so. The only way to cope with it is using Fake GPS paired with a VPN service that could replace your external IP address with a new one. But if the new IP address match an area which is blacked out too you'd try to use another VPN provider.

Q: It doesn't work with Google+

When you tap a location button and see that yes/no dialog - just press back and you'll got a list of places near your faked location. You should have "Wireless/Network location provider" option disabled to do this.

Q: It stopped working after some time

Go to the Settings and check the Accuracy value - it should not be zero! If it is - set it to 1 meter or more.

Q: Where can I find apk for the donate version

For Android 4.1 and higher google stores paid apps on a local device in an encrypted way. More details can be found at http://nelenkov.blogspot.com/2012/07/using-app-encryption-in-jelly-bean.html
So the apk for donated version can be found at /mnt/asec/com.lexa.fakegpsdonate-1/pkg.apk Note please that "-1" at the end of the package name could be any other number. You should do the follow steps:
- copy apk to SD card
- install application from apk on SD card
- you'll get /data/app/com.lexa.fakegpsdonate.apk which could be moved to /system/app/
On some devices it is necessary to set permission to 644 and reboot your device

Q: Moving apk to /system/app/ doesn't work on Android 4.4 kitkat

You should put apk to /system/app-priv/ instead

Q: Does your app have a command line support (Donate version only)

Yes, you can start and stop Fake GPS using command line only:

am startservice -a com.lexa.fakegps.START -e lat 56.1234 -e long 44.0011
am startservice -a com.lexa.fakegps.STOP
If you don't want to save location in the History just add --ez no_history true to a start string

Q: Tasker integration (Donate version only)

To start Fake GPS at (38.89765, -77.0365)
1. Create a new task and entitle it "Start Fake GPS"
2. Add Action -> Misc -> Send Intent
3. Fill fields:
    - Action: com.lexa.fakegps.START
    - Extra: lat:38.89768D
    - Extra: long:-77.0365D
    - Target: Service

To stop Fake GPS use
    - Action: com.lexa.fakegps.STOP
    - Target: Service

You can use variables to specify lat/long as well. Please remember to add "D" to extras to specify it as Double

среда, 11 апреля 2012 г.

Почему отваливается VPN

При работе периодически отваливается VPN. Поднять заново недолго, но когда по 20 раз на дню ... Глянул в логи - при отваливании пишет:
nm-pptp-service warn[decaps_gre:pptp_gre.c:331]: short read (-1): Message too long

Погуглил я на эту тему - и вот что обнаружилось:

Солюшн оказался простым - в VPNовском фрагменте сети может быть установлен меньший MTU (maximum transmission unit), чем у нас - в результате мы и получаем у себя Message too long.
Чтобы найти правильное значение MTU нужно сделать traceroute на интересующий узел VPNа:
traceroute -n --mtu xxx.xxx.xxx.xxx

берем минимальный и проставляем в настройках Network Manager или ручками:
sudo ifconfig eth0 mtu VALUE

понедельник, 19 марта 2012 г.

Поднимаем WiFi Access Point под Ubuntu 11.10

Очень подробный мануал вот здесь:

На моем буке Asus K73S все заработало практически без напильника
Два маленьких дополнения:
dhcpd под Ubuntu оказывается называется isc-dhcp-server, о как!
Соответственно стартует он через
sudo service isc-dhcp-server start

И конфиги его лежат не в /etc/dhcp3/ как указано в источнике, а в

среда, 14 марта 2012 г.

Custom screen resolution for android-x86 under Virtual Box

Занимаюсь сейчас проектом под планшеты с Андроидом 4.0. Эмулятор тормозит, несмотря на свежее железо. В основном видимо из-за большого экрана - при стандартном HVGA все летает. Решил вернуться обратно на android-x86 + Virtual Box. Скачал 8 гигов исходников, собрал за 3 часа - все работает. Одна беда - разрешение нужно нетривиальное: 1280х800. VESA такое не поддерживает, поэтому в загрузе kernel параметр vga=xxx не помогает. Решено было задействовать uvesafb:

1. меняем строчку загрузки: kernel ... video=-16 vga=xxx video=uvesa UVESA_MODE=1280x800 (обязательно большими буквами!)
2. из консоли запускаем: VBoxManage setextradata "Your VM name" "CustomVideoMode1" "1280x800x32"

вуаля )))