免root安卓手机虚拟定位

虚拟定位在github找到一个开源的https://github.com/pengliangAndroid/VirtualLocation,在这基础上进行简单的修改,由于VirtualLocation项目其使用的虚拟化容器框架VirtualApp受使用授权限制,其VirtualApp框架的代码仅供个人研究

修改百度地图AK

app/src/main/AndroidManifest.xml

  • 申请百度地图AK

applicationId "com.wstro.virtuallocation"

application sha1

修改虚拟定位接口

app/src/main/java/com/wstro/virtuallocation/Constants.java

  • 查看apk签名信息

jarsigner -verify -verbose -certs /var/www/VirtualLocation/app/build/outputs/apk/app-debug.apk

  • 查看apk信息shell
#!/bin/bash
get_signature() {
    path=`jar tf "$1" | grep RSA`
    jar xf $1 $path
    keytool -printcert -file $path
    rm -r $path
}

mypath=`pwd`
filepath=""
if [ -d .temp_for_certificate ]
then
    echo ".temp_for_certificate is exist,remove it first!"
    exit
fi

mkdir .temp_for_certificate
cd .temp_for_certificate
count=0
while [ -n "$1" ]
do
    if [ `expr substr "$1" 1 1` = "/" ] #绝对路径
    then
        filepath="$1"
    else #相对路径
        filepath="$mypath/$1"
    fi
    if [ -d $filepath ]
    then
        all_apk=`find $filepath -name "*.apk"`
        for apk_path in $all_apk
        do
            count=$[$count+1]
            echo "(#$count) "`basename "$apk_path"`":"
            filepath=$apk_path
            get_signature "$filepath"
            echo "-----------------------------------------------------------"
        done
    else
        count=$[$count+1]
        echo "(#$count) "`basename "$1"`":"
        get_signature "$filepath"
        echo "-----------------------------------------------------------"
    fi
    shift
done
cd ..
rm -r .temp_for_certificate
echo "done!"
  • 查看apk信息,获取apk的sha1

$ sh ./apk.sh app-debug.apk

(#1) app-debug.apk:
Owner: C=US, O=Android, CN=Android Debug
Issuer: C=US, O=Android, CN=Android Debug
Serial number: 1
Valid from: Tue Apr 13 18:12:21 CST 2021 until: Thu Apr 06 18:12:21 CST 2051
Certificate fingerprints:
         MD5:  47:15:21:DA:1A:D9:C9:E3:7E:7C:CF:27:37:18:CE:CC
         SHA1: 45:31:DD:E3:D9:E7:6D:E9:E6:F7:5E:A6:E8:94:77:22:0E:52:D2:74
         SHA256: E4:79:3F:14:C9:64:B1:63:BB:3B:A3:14:07:F1:C1:E1:7F:9B:BD:21:FA:C6:4B:C7:4A:EE:86:D3:11:4B:40:47
Signature algorithm name: SHA1withRSA
Subject Public Key Algorithm: 2048-bit RSA key
Version: 1
  • 模拟虚拟定位接口数据

这个VirtualLocation采用http://www.cellocation.com/的免费接口,gps定位转wifi接口功能无法使用,解决方法采用模拟接口数据

反向基站查询接口
根据经纬度反查所在位置附近的基站编号
接口地址: http://api.xxx.com/recell/

反向WIFI查询接口
根据经纬度反查所在位置附近的WIFI热点MAC地址
接口地址: http://api.xxx.com/rewifi/

第一步 :百度地图经纬度拾取坐标系统,获取需要模拟的定位地方的经纬度

http://api.map.baidu.com/lbsapi/getpoint/index.html

第二步: 后台接口模拟返回数据


标签:虚拟定位 apk签名 经纬度拾取