开发者

How can I overcome the property length limitation of the "adb shell setprop"

开发者 https://www.devze.com 2023-02-12 04:16 出处:网络
I get an error when I try set a value for property with name >= 32 characters adb shell setprop 01234567890123456789012345678901 VALUE

I get an error when I try set a value for property with name >= 32 characters

adb shell setprop 01234567890123456789012345678901 VALUE

Error:

could not set property

This works fine

adb shell setprop 0123456789012345678901234567890 VALUE
adb shell getprop 0123456789012345678901234567890
VALUE
开发者_如何转开发

Is there any way to set properties with longer names?


It looks like there would be no way to bypass this limitation. I see the same rules in android java sources.

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

    ...
}


I also faced same problem. as the answer mentioned above it's not possible use the NAME which longer than 31. so i change package name to shorter than 31 and it works now.


Update: The system property name limit of 32 characters was removed in Android O. You are free to have longer names now.

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;
    ...
}


Maybe using redirection?

Set small property which will hold file name for conf file:

setprop confFileName "myConf.yml"

in that conf file have all your big property names and values.

0

精彩评论

暂无评论...
验证码 换一张
取 消