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.
精彩评论