java — серийный номер устройства Android O от нативного

Как правильно получить серийный номер с родного на Android O без вызова Java Build.getSerial(),

На андроид < 26 версий от родного мы могли получить серийный номер устройства, используя следующий код:

string serial = read_property("ro.boot.serialno");

...

string read_property(const string& property_name) {
char propertyValue[PROP_VALUE_MAX];
int propertyLen = __system_property_get(property_name.c_str(), propertyValue);
...
}

На Android O это выдает ошибку:

Access denied finding property "ro.boot.serialno"

Хотя READ_PHONE_STATE разрешение предоставлено. Кажется, связано с устаревшим Build.SERIAL в Android 26.

Мне удалось получить это свойство с помощью adb, поэтому значение не удаляется и есть:

adb shell getprop ro.boot.serialno

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …