Не рутированный смартфон с измененным IMEI на андроид
Я разрабатываю проект Android для контроля доступа пользователей. Я использую номер IMEI, например, для входа в систему, потому что мне нужно, чтобы пользователи могли использовать только одно устройство для доступа, но меня беспокоит клонирование IMEI. Я хотел бы реализовать загруженный элемент управления телефоном, чтобы быть уверенным, что IMEI является оригинальным.
Можно ли изменить телефон без рута с измененным IMEI?
2 ответа
Я думаю, что вы можете использовать MAC-адрес устройства для уникального идентификатора. Используйте коды ниже для получения MAC-адреса:
WifiManager manager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
WifiInfo info = manager.getConnectionInfo();
String uniqueId = info.getMacAddress();
Не забудьте добавить это разрешение в Manifest:
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
Да, это возможно. Большинство телефонов Android на базе MediaTek (кроме телефонов Nokia/HMD) имеют инженерное меню, доступное с *#*#3646633#*#*
(*#*#engmode#*#*
) или аналогичный секретный код, и это меню работает из контекста системы / телефонии и имеет специальный доступ RIL, который позволяет вводить AT-команды без рута. И чипсеты MediaTek известны (или, я бы сказал, пресловутый) своими AT+EGMR
команда, которая, помимо прочего, позволяет модифицировать IMEI.
Все это может быть сделано без рутирования самого смартфона, хотя некоторые модели OEM действительно требуют привилегий root явно даже для инженерного меню.
Вы также можете использовать уникальный идентификатор устройства Android:
import android.provider.Settings.Secure;
private String android_id = Secure.getString(getContext().getContentResolver(),
Secure.ANDROID_ID);
в этом блоге есть хорошее объяснение этому
http://android-developers.blogspot.in/2011/03/identifying-app-installations.html