title: How does some apps(wechat) ignore fake location and then detect the real one?
body: <p>I have installed a fake location app and set my location different. Then opened Google Maps and Wechat app, </p>
  
  <ul>
  <li>Google Maps shows my location as what i set(fake)</li>
  <li>Wechat app <strong>ignores</strong> fake location and <strong>detects</strong> real location (how?)</li>
  </ul>
  
  <p>Then i wanted to prevent wechat analyze my previously received real locations and new fake location.</p>
  
  <ul>
  <li>Uninstalled Wechat</li>
  <li>Restarted my device</li>
  <li>Set my location as fake</li>
  <li>Installed Wechat again</li>
  </ul>
  
  <p>But same result, it detects my real location.</p>
  
  <p>I really want to understand how they do this. Any ideas?</p>
  
  <hr>
  
  <p><strong>What i have tried</strong> </p>
  
  <ul>
  <li>Gps provider spoof</li>
  <li>Network provider spoof</li>
  <li>Fused location provider spoof</li>
  <li>IP geolocation spoof</li>
  <li>Gps provider spoof + IP geolocation spoof</li>
  </ul>
  
  <hr>
  
  <p><strong>UPDATE</strong></p>
  
  <p>Uses GPS even when disabled. </p>
  
  <p><a href="https://i.stack.imgur.com/CdjXs.png" rel="noreferrer"><img src="https://i.stack.imgur.com/CdjXs.png" alt="enter image description here"></a></p>
  
  <p>07-02 11:46:15.504 2346-2356/? D/LocationManagerService: request 434a7e28 gps Request[ACCURACY_FINE gps requested=+1s0ms fastest=+1s0ms] from com.tencent.mm(10173)</p>
  
  <hr>
  
  <p><strong>CONCLUSION</strong></p>
  
  <ul>
  <li>You can fake location on older versions of wechat(lower than 6.0)</li>
  <li>Uses something like BaiduLocationSDK. It's not affected from any mock attempt through LocationManager and Fused provider.</li>
  <li>I'm not sure but, seems like BaiduLocationSDK uses GPS through hardware level.</li>
  </ul>