/** * Created by maomao on 2020/3/6. */ Java.perform(function() { var cn = "android.location.LocationManager"; var locationManager = Java.use(cn); if (locationManager) { //hook getProvider locationManager.getProvider.implementation = function() { var myArray=new Array() myArray[0] = "SENSITIVE" //INTERESTED & SENSITIVE myArray[1] = cn + "." + "getProvider"; myArray[2] = Java.use("android.util.Log").getStackTraceString(Java.use("java.lang.Exception").$new()).split('\n\tat'); send(myArray); return this.getProvider.apply(this, arguments); }; // //hook getCurrentLocation // locationManager.getCurrentLocation.implementation = function() { // send("call " + cn + "->getCurrentLocation"); // return this.getCurrentLocation.apply(this, arguments); // }; //hook getLastLocation locationManager.getBestProvider.implementation = function() { var myArray=new Array() myArray[0] = "SENSITIVE" //INTERESTED & SENSITIVE myArray[1] = cn + "." + "getBestProvider"; myArray[2] = Java.use("android.util.Log").getStackTraceString(Java.use("java.lang.Exception").$new()).split('\n\tat'); send(myArray); return this.getBestProvider.apply(this, arguments); }; locationManager.getLastKnownLocation.implementation = function() { var myArray=new Array() myArray[0] = "SENSITIVE" //INTERESTED & SENSITIVE myArray[1] = cn + "." + "getLastKnownLocation"; myArray[2] = Java.use("android.util.Log").getStackTraceString(Java.use("java.lang.Exception").$new()).split('\n\tat'); send(myArray); return this.getLastKnownLocation.apply(this, arguments); }; locationManager.requestLocationUpdates.overloads[0].implementation = function(dest) { var myArray=new Array() myArray[0] = "SENSITIVE" //INTERESTED & SENSITIVE myArray[1] = cn + "." + "requestLocationUpdates"; myArray[2] = Java.use("android.util.Log").getStackTraceString(Java.use("java.lang.Exception").$new()).split('\n\tat'); send(myArray); return this.requestLocationUpdates.overloads[0].apply(this, arguments); }; locationManager.requestLocationUpdates.overloads[1].implementation = function(dest) { var myArray=new Array() myArray[0] = "SENSITIVE" //INTERESTED & SENSITIVE myArray[1] = cn + "." + "requestLocationUpdates"; myArray[2] = Java.use("android.util.Log").getStackTraceString(Java.use("java.lang.Exception").$new()).split('\n\tat'); send(myArray); return this.requestLocationUpdates.overloads[1].apply(this, arguments); }; locationManager.requestLocationUpdates.overloads[2].implementation = function(dest) { var myArray=new Array() myArray[0] = "SENSITIVE" //INTERESTED & SENSITIVE myArray[1] = cn + "." + "requestLocationUpdates"; myArray[2] = Java.use("android.util.Log").getStackTraceString(Java.use("java.lang.Exception").$new()).split('\n\tat'); send(myArray); return this.requestLocationUpdates.overloads[2].apply(this, arguments); }; locationManager.requestLocationUpdates.overloads[3].implementation = function(dest) { var myArray=new Array() myArray[0] = "SENSITIVE" //INTERESTED & SENSITIVE myArray[1] = cn + "." + "requestLocationUpdates"; myArray[2] = Java.use("android.util.Log").getStackTraceString(Java.use("java.lang.Exception").$new()).split('\n\tat'); send(myArray); return this.requestLocationUpdates.overloads[3].apply(this, arguments); }; locationManager.addGpsStatusListener.implementation = function(dest) { var myArray=new Array() myArray[0] = "SENSITIVE" //INTERESTED & SENSITIVE myArray[1] = cn + "." + "addGpsStatusListener"; myArray[2] = Java.use("android.util.Log").getStackTraceString(Java.use("java.lang.Exception").$new()).split('\n\tat'); send(myArray); return this.addGpsStatusListener.apply(this, arguments); }; locationManager.addNmeaListener.overloads[0].implementation = function(dest) { var myArray=new Array() myArray[0] = "SENSITIVE" //INTERESTED & SENSITIVE myArray[1] = cn + "." + "addNmeaListener"; myArray[2] = Java.use("android.util.Log").getStackTraceString(Java.use("java.lang.Exception").$new()).split('\n\tat'); send(myArray); return this.addNmeaListener.overloads[0].apply(this, arguments); }; locationManager.addProximityAlert.implementation = function(dest) { var myArray=new Array() myArray[0] = "SENSITIVE" //INTERESTED & SENSITIVE myArray[1] = cn + "." + "addProximityAlert"; myArray[2] = Java.use("android.util.Log").getStackTraceString(Java.use("java.lang.Exception").$new()).split('\n\tat'); send(myArray); return this.addProximityAlert.apply(this, arguments); }; locationManager.getProviders.overloads[0].implementation = function(dest) { var myArray=new Array() myArray[0] = "SENSITIVE" //INTERESTED & SENSITIVE myArray[1] = cn + "." + "getProviders"; myArray[2] = Java.use("android.util.Log").getStackTraceString(Java.use("java.lang.Exception").$new()).split('\n\tat'); send(myArray); return this.getProviders.overloads[0].apply(this, arguments); }; locationManager.getProviders.overloads[1].implementation = function(dest) { var myArray=new Array() myArray[0] = "SENSITIVE" //INTERESTED & SENSITIVE myArray[1] = cn + "." + "getProviders"; myArray[2] = Java.use("android.util.Log").getStackTraceString(Java.use("java.lang.Exception").$new()).split('\n\tat'); send(myArray); return this.getProviders.overloads[1].apply(this, arguments); }; locationManager.isProviderEnabled.implementation = function(dest) { var myArray=new Array() myArray[0] = "SENSITIVE" //INTERESTED & SENSITIVE myArray[1] = cn + "." + "isProviderEnabled"; myArray[2] = Java.use("android.util.Log").getStackTraceString(Java.use("java.lang.Exception").$new()).split('\n\tat'); send(myArray); return this.isProviderEnabled.apply(this, arguments); }; locationManager.requestSingleUpdate.overloads[0].implementation = function(dest) { var myArray=new Array() myArray[0] = "SENSITIVE" //INTERESTED & SENSITIVE myArray[1] = cn + "." + "requestSingleUpdate"; myArray[2] = Java.use("android.util.Log").getStackTraceString(Java.use("java.lang.Exception").$new()).split('\n\tat'); send(myArray); return this.requestSingleUpdate.overloads[0].apply(this, arguments); }; locationManager.requestSingleUpdate.overloads[1].implementation = function(dest) { var myArray=new Array() myArray[0] = "SENSITIVE" //INTERESTED & SENSITIVE myArray[1] = cn + "." + "requestSingleUpdate"; myArray[2] = Java.use("android.util.Log").getStackTraceString(Java.use("java.lang.Exception").$new()).split('\n\tat'); send(myArray); return this.requestSingleUpdate.overloads[1].apply(this, arguments); }; locationManager.requestSingleUpdate.overloads[2].implementation = function(dest) { var myArray=new Array() myArray[0] = "SENSITIVE" //INTERESTED & SENSITIVE myArray[1] = cn + "." + "requestSingleUpdate"; myArray[2] = Java.use("android.util.Log").getStackTraceString(Java.use("java.lang.Exception").$new()).split('\n\tat'); send(myArray); return this.requestSingleUpdate.overloads[2].apply(this, arguments); }; locationManager.requestSingleUpdate.overloads[3].implementation = function(dest) { var myArray=new Array() myArray[0] = "SENSITIVE" //INTERESTED & SENSITIVE myArray[1] = cn + "." + "requestSingleUpdate"; myArray[2] = Java.use("android.util.Log").getStackTraceString(Java.use("java.lang.Exception").$new()).split('\n\tat'); send(myArray); return this.requestSingleUpdate.overloads[3].apply(this, arguments); }; locationManager.setTestProviderEnabled.implementation = function(dest) { var myArray=new Array() myArray[0] = "INTERESTED" //INTERESTED & SENSITIVE myArray[1] = cn + "." + "setTestProviderEnabled"; myArray[2] = Java.use("android.util.Log").getStackTraceString(Java.use("java.lang.Exception").$new()).split('\n\tat'); send(myArray); return this.setTestProviderEnabled.apply(this, arguments); }; } });