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

前端 未结 4 816
自闭症患者
自闭症患者 2020-12-10 13:20

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

adb shell setprop 01234567890123456789012345678901 VALUE

Erro

相关标签:
4条回答
  • 2020-12-10 13:34

    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;
    
        ...
    }
    
    0 讨论(0)
  • 2020-12-10 13:39

    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.

    0 讨论(0)
  • 2020-12-10 13:52

    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 讨论(0)
  • 2020-12-10 14:00

    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;
        ...
    }
    
    0 讨论(0)
提交回复
热议问题