А давайте создадим ферму девайсов, которые должны будут выполнять какие-то действия и так, чтобы это было удобно и беспалевно?
Сразу предупрежу что это будет серия статей о том, как сформировать подобную ферму для своих нужд (может быть вы хотите построить автоматизированную систему тестирования вашего мобильного приложения, а может, быть и скликивать рекламу или регистрировать аккаунты), но предупрежу сразу что все статьи написаны в ознакомительных целях. И да, я буду говорить только в рамках Xposed Framework (Magisk и прочие новомодные штуки пока не будем рассматривать).
Как могут определить такую ферму antifraud системыи побанить ваши аккаунты? Тут огромый простор для фантазий и самое первое что приходит в голову дак это:
- Все девайсы всегда стоят на зарядке и это не похоже на поведение живых пользователей. У вас телефоны всегда на зарядке?  
- GPS у них тоже в одном положении, они не двигаются
- Симки отсутсвуют почти у всех, соединение по WiFi
- Девайсы зафиксированы в достаточно жестком положении (они не крутятся в руке как у живого пользователя) и нам придется подумать о том, как обмануть гироскоп и подобные датчики
Кстати, куски кода, которые я раскрываю являются частью системы, которую мы делали и она состоит их таких частей как серверный бэкэнд (который хранит, планирует и разрадет задания девайсам по API) и фронтенд в виде девайсов, которые работают и выполняют задания. Девайсы по расписанию опрашивают сервер для того, чтобы получить таску и если ее нет, то повторяют запрос через какое-то время. Про планирование тасок я расскажу отдельно потом.
Многие данные генерируются и отдаютмя по API, попадая в SharedPref, откуда потом забираются в жизненный цикл задачи
		Многие данные генерируются и отдаютмя по API, попадая в SharedPref, откуда потом забираются в жизненный цикл задачи

Начнем как раз с батареи и типа подключения к зарядке.
У батареи есть такие параметры как temperature, level, plugged, health и другие, но если описывать все, то нам не хватит места на форуме и статья будет большой и скучной. Поэтому будет хукать то, что самое интересное, а кому нужно остальное (
	Ссылка скрыта от гостей
), по аналогии доработают под свои нужды 
Получить значения проще всего из
android.content.Intent, поэтому будем хукать именно этот метод. Для того, чтобы понять какие значения нам нужны идем смотреть в документацию Android (
	
	Ссылка скрыта от гостей
)
		Java:
	
	import android.support.v4.app.NotificationCompat;
import java.util.Random;
import de.robv.android.xposed.XC_MethodHook;
import de.robv.android.xposed.XposedBridge;
import de.robv.android.xposed.XposedHelpers;
import de.robv.android.xposed.callbacks.XC_LoadPackage.LoadPackageParam;
public class FakeBattery {
 public void fakePinStt(LoadPackageParam loadPkgParam) {
  try {
   XposedHelpers.findAndHookMethod("android.content.Intent", loadPkgParam.classLoader, "getIntExtra", String.class, Integer.TYPE, new XC_MethodHook() {
    @Override
    protected void beforeHookedMethod(MethodHookParam param)
    throws Throwable {
     // TODO: Auto-generated method stub
     super.beforeHookedMethod(param);
     if (param.args[0] != null) {
      if (param.args[0] == "temperature") {
       param.setResult(Integer.valueOf(SharedPref.getXValue("Temp")));
      }
      if (param.args[0] == "level") {
       param.setResult(Integer.valueOf(SharedPref.getXValue("Level")));
      }
      if (param.args[0] == "plugged") {
       param.setResult(Integer.valueOf(random02()));
      }
//......
      if (param.args[0] == "health") {
       param.setResult(Integer.valueOf("2"));
      }
     }
    }
   });
  } catch (Exception e) {
   XposedBridge.log("Fake Pin ERROR: " + e.getMessage());
  }
 }
 private String random02() {
  String[] arrayValue = new String[] { "0", "1", "2" };
  return arrayValue[new Random().nextInt(arrayValue.length)];
 }
}В следующих статьях будем рассматривать остальные компоненты системы и то, что нужно хукать
 Думаю что поговорим о местоположении и типе подключения девайса к сети (sim,wifi).
 Думаю что поговорим о местоположении и типе подключения девайса к сети (sim,wifi). 
	 
	 
	 
	 
	
 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
	