Как я могу преодолеть ограничение длины свойства "adb shell setprop" - PullRequest
11 голосов
/ 21 февраля 2011

Я получаю сообщение об ошибке при попытке установить значение для свойства с именем> = 32 символа

adb shell setprop 01234567890123456789012345678901 VALUE

Ошибка:

could not set property

Это отлично работает

adb shell setprop 0123456789012345678901234567890 VALUE
adb shell getprop 0123456789012345678901234567890
VALUE

Есть ли способ установить свойства с более длинными именами?

Ответы [ 4 ]

10 голосов
/ 21 февраля 2011

Похоже, не было бы способа обойти это ограничение. Я вижу те же правила в Android-источниках Java.

public class SystemProperties
{
    public static final int PROP_NAME_MAX = 31;
    public static final int PROP_VALUE_MAX = 91;

    ...
}
2 голосов
/ 08 июля 2014

Я тоже столкнулся с такой же проблемой. как ответ, упомянутый выше, невозможно использовать ИМЯ, которое длиннее 31. поэтому я меняю имя пакета короче 31, и теперь оно работает.

1 голос
/ 15 января 2019

Обновление: ограничение имени свойства системы в 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;
    ...
}
0 голосов
/ 14 июля 2015

Может быть, используется перенаправление?

Установить небольшое свойство, которое будет содержать имя файла для файла conf:

setprop confFileName "myConf.yml"

в этом файле conf есть все ваши имена и значения больших свойств.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...