Я получаю сообщение об ошибке при попытке установить значение для свойства с именем> = 32 символа
adb shell setprop 01234567890123456789012345678901 VALUE
Ошибка:
could not set property
Это отлично работает
adb shell setprop 0123456789012345678901234567890 VALUE adb shell getprop 0123456789012345678901234567890 VALUE
Есть ли способ установить свойства с более длинными именами?
Похоже, не было бы способа обойти это ограничение. Я вижу те же правила в Android-источниках Java.
public class SystemProperties { public static final int PROP_NAME_MAX = 31; public static final int PROP_VALUE_MAX = 91; ... }
Я тоже столкнулся с такой же проблемой. как ответ, упомянутый выше, невозможно использовать ИМЯ, которое длиннее 31. поэтому я меняю имя пакета короче 31, и теперь оно работает.
Обновление: ограничение имени свойства системы в 32 символа было удалено в Android O. Теперь вы можете иметь более длинные имена.
public class SystemProperties { /** * Android O removed the property name length limit, but com.amazon.kindle 7.8.1.5 * uses reflection to read this whenever text is selected (http://b/36095274). */ public static final int PROP_NAME_MAX = Integer.MAX_VALUE; public static final int PROP_VALUE_MAX = 91; ... }
Может быть, используется перенаправление?
Установить небольшое свойство, которое будет содержать имя файла для файла conf:
setprop confFileName "myConf.yml"
в этом файле conf есть все ваши имена и значения больших свойств.