Нет эмулятора, который может полностью эмулировать Android-устройство?

Правда ли, что не существует эмулятора Android (по состоянию на май 2021 года), который мог бы эмулировать телефон Android, чтобы приложение не могло его обнаружить?

Из всех существующих там эмуляторов (я видел список 15 лучших эмуляторов Android ) они не смогли это сделать? Причина в том, что может показаться немного странным, почему невозможно полностью эмулировать такую ​​среду, если телефон за 99 долларов США может справиться с этой задачей. (и что некоторые разработчики могут написать эмулятор с первоначальной целью: ни один код, работающий в эмуляторе, не может сказать, что это эмулятор).

Я думаю, что, вероятно, официальный эмулятор разработчика Android также не может справиться с этой задачей (возможно, намеренно), иначе он будет рекомендован в качестве метода на каком-то форуме.

то, что вы описываете, это какой-то эмулятор покемонов, а не эмулятор андроида
нет... эмулятор Android... а затем запустите приложение Pokemon Go внутри него. Если у нас есть виртуальная машина с Windows 10 и на ней запущен Microsoft Word, вы не скажете, что мы эмулируем Microsoft Word, но мы эмулируем машину с Windows 10, не так ли?
Смартфон имеет ~ 6 датчиков и GPS, что вам нужно, так это эмулировать значения для всех этих датчиков таким образом, чтобы не нарушалась проверка правдоподобия. эти проверки разработаны покемонами, для меня это звучит очень похоже на эмулятор покемонов

Ответы (1)

Вы говорите об устройстве Android, между реальными и эмулируемыми устройствами может быть 100 000 небольших различий. Даже устранение всех тех различий, которые можно «исправить», требует немалой работы.

Просто скорость выполнения — это показатель, который вы не сможете так легко подделать. Для эмуляции устройства ARM стоимостью 99 долларов США вам может понадобиться ПК стоимостью более 1000 долларов США, и тогда скорость выполнения эмулятора ARM все равно будет ниже, чем у физического устройства. Это связано с тем, что эмуляция ЦП ARM на ЦП x86 сложна и требует много ресурсов ЦП.

Даже если вы будете использовать один из новых компьютеров Apple с чипом M1 ARM (или другое устройство, на котором работает быстрый чип на базе ARM, который, следовательно, понимает большинство команд ARM напрямую), все равно будут различия на уровне кода, на котором вы работаете. может обнаружить и поэтому догадаться, что с большой долей вероятности это эмулятор.

Другая проблема заключается в том, что если вы сможете создать эмулятор, который приложение не сможет определить как эмулятор, вы затем продаете его кому-либо в Интернете. Очень скоро те люди, которым вы не хотите, чтобы приложение запускалось на эмуляторе, узнают ваш эмулятор, получат его и разорвут на части, пока не найдут способ обнаружить его.

Поэтому, с моей точки зрения, ответ на ваш вопрос таков: да, с большой вероятностью, эмуляторы существуют, пока ни одно приложение не может определить их как эмуляторы. Однако, чтобы сохранить это, эти эмуляторы никогда не публикуются, и их нельзя купить или получить где-либо.

Например, антивирусные компании, скорее всего, имеют такой эмулятор, потому что вредоносное ПО обычно содержит наиболее изощренный способ определить, работают ли они в эмулируемой среде или на обычном устройстве. Запуск вредоносного ПО в эмулируемой среде обычно означает, что кто-то его анализирует (что, очевидно, не нужно автору вредоносного ПО).

если это скорость, то это будет так, как будто мобильному телефону 3 года, но это не должно мешать эмулятору, например, играть в Pokemon Go ... так что скорость должна быть в порядке. Цель эмулятора должна быть такой: приложение не может точно знать, что это реальное устройство или находится в виртуальной среде... если они снесут эмулятор и найдут способ сделать это, то это не "полностью" эмулируемая среда. еще. Например, мы можем написать эмулятор процессора x86, и машинный код, работающий на нем, не должен иметь абсолютно никакой возможности сообщить о том, что он работает на процессоре Intel или в эмуляторе процессора.
@StefanieGauss Извините, но вы не поняли. Разработчики Pokemon не хотят, чтобы вы использовали эмулятор, и они всегда найдут способ проверить, используете ли вы эмулятор. Если эмулятор становится лучше, они улучшают тест, а поскольку смартфон содержит довольно много физических датчиков, будет очень сложно эмулировать все. Просто смиритесь с тем, что у разработчиков больше власти, чем у вас. Один из основных принципов игр заключается в том, что существуют правила, правила, которые вы должны принять, чтобы играть.
Я знаю, что разработчики игр хотят «превзойти»… но в современном мире кода и алгоритмов так легко сказать: «О, я нахожусь на высоте 2 метра, а телефон наклонен на 23 градуса» и далее 10 секунд, "о, я на высоте 1,8 метра, а телефон наклонен на 26 градусов". Я имею в виду, это просто кусок пирога. Сколько вещей они могут проверить? 20, 30? И трудно подделать 20 вещей или 30 вещей? В программном обеспечении мы можем подделать 1 вещь за 10 минут... существует ограниченный набор API, и все они могут быть подделаны.