{"id":125,"date":"2010-10-06T22:30:36","date_gmt":"2010-10-06T20:30:36","guid":{"rendered":"http:\/\/bininda.com\/blog\/2010\/10\/motorola-fills-up-android-property-system\/"},"modified":"2010-10-09T09:55:30","modified_gmt":"2010-10-09T07:55:30","slug":"motorola-fills-up-android-property-system","status":"publish","type":"post","link":"http:\/\/bininda.com\/blog\/2010\/10\/motorola-fills-up-android-property-system\/","title":{"rendered":"Motorola Fills up Android Property System"},"content":{"rendered":"<p><a href=\"http:\/\/bininda.com\/blog\/wp-content\/uploads\/2010\/10\/milestone-propsys.jpg\"><img decoding=\"async\" loading=\"lazy\" style=\"border-bottom: ; border-left: ; margin: ; padding-left: ; padding-right: ; display: inline; float: right; border-top: ; border-right: ; padding-top: \" title=\"milestone-propsys\" alt=\"milestone-propsys\" align=\"right\" src=\"http:\/\/bininda.com\/blog\/wp-content\/uploads\/2010\/10\/milestone-propsys_thumb.jpg\" width=\"210\" height=\"300\" \/><\/a>For almost half a year now, I have been having sporadic problems with my Mororola Milestone. After booting the phone, everything worked alright but after some usage, some features started to fail. Either WiFi connections didn\u2019t work any more or 3G data connections stopped working or VPN failed to establish a connection. Also, some settings (for example: notification sound for SD card availability) failed to persist through reboots.<\/p>\n<p><strong>I finally found out why!<\/strong><\/p>\n<p>Android has a low level property system that lives in the init process. A good writeup of how it works can be found at<\/p>\n<p><a href=\"http:\/\/rxwen.blogspot.com\/2010\/01\/android-property-system.html\">http:\/\/rxwen.blogspot.com\/2010\/01\/android-property-system.html<\/a><\/p>\n<p>The important part is that the property system only has space for 247 system properties. The properties are filled from the following files:<\/p>\n<p><i>\/default.prop      <br \/>\/system\/build.prop       <br \/>\/system\/default.prop       <br \/>\/data\/local.prop<\/i><\/p>\n<p>Additional properties are created by scripts with the setprop utility and by various processes (wifi manager, vpn manager etc.)<\/p>\n<p>Since Android 2.1, Motorola has filled the above files with lots of properties so that the property service is almost filled up by the time the phone has finished booting. When opening a WiFi connection, additional properties have to be set. If no more properties are available, things start to fail.<\/p>\n<p>I have commented out quite a few of the properties from above files to make some space and now everything works smoothly again. I am not sure yet, which properties are important and which not, once I have done some more research, I will post the changes I have made.<\/p>\n<p>I hope this helps Milestone users with similar problems.<\/p>\n<h6>Update:<\/h6>\n<p>Here is my modified \/system\/build.prop:<\/p>\n<pre class=\"brush: text\"># begin build properties\n# autogenerated by buildinfo.sh\nro.build.id=SHOLS_U2_02.36.0\nro.build.display.id=SHOLS_U2_02.36.0\nro.build.version.incremental=8985865\nro.build.version.sdk=7\nro.build.version.codename=REL\nro.build.version.release=2.1-update1\n##ro.build.svn=24\n##ro.build.date=Thu Jun  3 12:47:57 CDT 2010\n##ro.build.date.utc=1275587277\n##ro.build.type=user\n##ro.build.user=milestcm\n##ro.build.host=il93lnxebld02\n##ro.build.tags=rel-keys\nro.product.model=Milestone\nro.product.brand=MOTO_VFDE\nro.product.name=umts_sholes\nro.product.device=umts_sholes\nro.product.board=sholes\nro.product.cpu.abi=armeabi-v7a\nro.product.cpu.abi2=armeabi\nro.product.manufacturer=motorola\nro.product.locale.language=de\nro.product.locale.region=DE\nro.wifi.channels=\nro.board.platform=omap3\n# ro.build.product is obsolete; use ro.product.device\nro.build.product=umts_sholes\n# Do not try to parse ro.build.description or .fingerprint\nro.build.description=umts_sholes-user 2.1-update1 SHOLS_U2_02.36.0 8985865 rel-keys\nro.build.fingerprint=MOTO_VFDE\/umts_sholes\/umts_sholes\/sholes:2.1-update1\/SHOLS_U2_02.36.0\/8985865:user\/rel-keys\n# end build properties\n#\n# system.prop for UMTS Sholes\n#\n\nrild.libpath=\/system\/lib\/libril-moto-umts-1.so\nrild.libargs=-d \/dev\/ttyS0\nro.sf.lcd_density=240\nro.default_usb_mode=0\n\n# Default network type.\n# 3 -&gt; GSM\/WCDMA (auto mode, according to PRL)\n# AVAILABLE Application Settings menu\nro.telephony.default_network=3\n\nwifi.interface = tiwlan0\n# Time between scans in seconds. Keep it high to minimize battery drain.\n# This only affects the case in which there are remembered access points,\n# but none are in range.\nwifi.supplicant_scan_interval = 15\n\n# The OpenGL ES API level that is natively supported by this device.\n# This is a 16.16 fixed point number\nro.opengles.version = 131072\n\n# This is a high density device with more memory, so larger vm heaps for it.\ndalvik.vm.heapsize=24m\n\n#proximit sensor screen off delay\nmot.proximity.delay=450\n\n#proximit sensor disable touch distance \nmot.proximity.distance=60\n\n#\n# ADDITIONAL_BUILD_PROPERTIES\n#\nro.product.multi_touch_enabled=true\nro.product.max_num_touch=2\nro.product.tfdt_string=com.motorola.android.app.tfdt.START\ndalvik.vm.jniopts=warnonly\nro.com.motorola.smartsensor=true\nro.config.notification_sound=F1_New_SMS.ogg\nro.config.alarm_alert=Alarm_Classic.ogg\nro.telephony.call_ring.multiple=false\nro.telephony.call_ring.delay=3000\n##ro.url.safetylegal=http:\/\/www.motorola.com\/staticfiles\/Support\/legal\/?model=A855\nro.setupwizard.enable_bypass=1\nro.media.enc.hprof.file.format=mp4\nro.media.enc.hprof.codec.vid=h264\nro.media.enc.hprof.codec.aud=aac\nro.media.enc.hprof.vid.width=720\nro.media.enc.hprof.vid.height=480\nro.media.enc.hprof.vid.fps=25\nro.media.enc.hprof.vid.bps=3000000\nro.media.enc.hprof.aud.bps=96000\nro.media.enc.hprof.aud.hz=16000\nro.media.enc.hprof.aud.ch=1\nro.media.enc.hprof.duration=60\n##ro.media.enc.lprof.file.format=mp4\n##ro.media.enc.lprof.codec.vid=m4v\n##ro.media.enc.lprof.codec.aud=amrnb\n##ro.media.enc.lprof.vid.width=320\n##ro.media.enc.lprof.vid.height=240\n##ro.media.enc.lprof.vid.fps=15\n##ro.media.enc.lprof.vid.bps=200000\n##ro.media.enc.lprof.aud.bps=12200\n##ro.media.enc.lprof.aud.hz=8000\n##ro.media.enc.lprof.aud.ch=1\n##ro.media.enc.lprof.duration=30\nro.media.enc.file.format=3gp,mp4\nro.media.enc.vid.codec=h264,m4v,h263\nro.media.enc.aud.codec=aac,amrnb\nro.media.enc.vid.h264.width=176,720\nro.media.enc.vid.h264.height=144,480\nro.media.enc.vid.h264.bps=64000,8000000\nro.media.enc.vid.h264.fps=1,30\nro.media.enc.vid.h263.width=176,720\nro.media.enc.vid.h263.height=144,480\nro.media.enc.vid.h263.bps=64000,8000000\nro.media.enc.vid.h263.fps=1,30\nro.media.enc.vid.m4v.width=176,720\nro.media.enc.vid.m4v.height=144,480\nro.media.enc.vid.m4v.bps=64000,8000000\nro.media.enc.vid.m4v.fps=1,30\nro.media.enc.aud.amrnb.bps=5525,12200\nro.media.enc.aud.amrnb.hz=8000,8000\nro.media.enc.aud.amrnb.ch=1,1\nro.media.enc.aud.aac.bps=8192,96000\nro.media.enc.aud.aac.hz=16000,16000\nro.media.enc.aud.aac.ch=1,1\nro.media.dec.aud.wma.enabled=1\nro.media.dec.vid.wmv.enabled=1\nro.media.cam.preview.fps=0\nro.com.google.clientid=android-motorola\n##ro.url.legal=http:\/\/www.google.com\/intl\/%s\/mobile\/android\/basic\/phone-legal.html\n##ro.url.legal.android_privacy=http:\/\/www.google.com\/intl\/%s\/mobile\/android\/basic\/privacy.html\nro.config.vc_call_vol_steps=7\ndalvik.vm.dexopt-flags=m=y\nnet.bt.name=Android\nro.config.sync=yes\ndalvik.vm.stack-trace-file=\/data\/anr\/traces.txt\nro.config.ringtone=Red_Beats.ogg\nro.com.google.gmsversion=2.1_r1\nro.com.google.clientidbase.am=android-vf-{country}\nro.com.google.clientidbase=android-hms-vf-{country}\nro.setupwizard.mode=OPTIONAL\nro.com.google.clientidbase.gmm=android-motorola\nro.com.google.clientidbase.yt=android-motorola \nro.com.google.locationfeatures=1<\/pre>\n<p>&#160;<\/p>\n<p>The entries starting with ## have been commented out by me.<\/p>\n<ul>\n<li>The commented ro.build.* entries contain information about the host on which the system was built (who cares?) <\/li>\n<li><a href=\"http:\/\/www.motorola.com\/staticfiles\/Support\/legal\/?model=A855\" target=\"_blank\">ro.url.safetylegal<\/a> is an URL for some legal notice? <\/li>\n<li>ro.media.enc.lprof.* are modified settings for video recording with low quality. (I only use high quality anyway.) <\/li>\n<li><a href=\"http:\/\/www.google.com\/intl\/US\/mobile\/android\/basic\/phone-legal.html\" target=\"_blank\">ro.url.legal<\/a> und <a href=\"http:\/\/www.google.com\/intl\/US\/mobile\/android\/basic\/privacy.html\" target=\"_blank\">ro.url.legal.android_privacy<\/a> again are URLs fore some safety\/privacy policies? <\/li>\n<\/ul>\n<p>And here is my modified \/system\/default.prop<\/p>\n<pre class=\"brush: text\">ro.com.google.clientidbase.vs=android-motorola\nro.build.config.version=GAS_EMEA_USASHLS00VFDE_P035\nro.build.config.date=Mon Jul 12 20:51:05 -0500 2010\n##ro.bidi.Hebrew=Off\nro.keyboard.type=qwertz\nro.bidi.enabled=false\n##ro.bidi.Arabic=Off\npersist.sys.timezone=Europe\/Berlin\nro.fota.enable=1\nsms.convert.char.for.latam=0\n##ro.bidi.Russian=Off<\/pre>\n<p>bidi seems to stand for \u201cbidirectional input\u201d. Since ro.bidi.enabled is false, I assume that the other ro.bidi.* properties are irrelevant anyway.<\/p>\n<p>After thinning out the property files, is have 245 properties after using WiFi, 3G-data and VPN. Two properties left in reserve \ud83d\ude09<\/p>\n<p>Examples for properties that are created dynamically are:<\/p>\n<pre class=\"brush: text\">[dhcp.tiwlan0.result]: [ok]\n[init.svc.dhcpcd]: [running]\n[dhcp.tiwlan0.pid]: [3986]\n[dhcp.tiwlan0.reason]: [RENEW]\n[dhcp.tiwlan0.dns1]: [192.168.1.6]\n[dhcp.tiwlan0.dns2]: []\n[dhcp.tiwlan0.dns3]: []\n[dhcp.tiwlan0.dns4]: []\n[dhcp.tiwlan0.ipaddress]: [192.168.1.61]\n[dhcp.tiwlan0.gateway]: [192.168.1.6]\n[dhcp.tiwlan0.mask]: [255.255.255.0]\n[dhcp.tiwlan0.leasetime]: [14400]\n[dhcp.tiwlan0.server]: [192.168.1.6]\n[net.dns1]: [192.168.1.6]<\/pre>\n<p>&#160;<\/p>\n<p>If these properties can not be created when activating WiFi, WiFi does not work.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>For almost half a year now, I have been having sporadic problems with my Mororola Milestone. After booting the phone, everything worked alright but after some usage, some features started to fail. Either WiFi connections didn\u2019t work any more or 3G data connections stopped working or VPN failed to establish a connection. Also, some settings [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[26,27],"tags":[34,35,28,29],"_links":{"self":[{"href":"http:\/\/bininda.com\/blog\/wp-json\/wp\/v2\/posts\/125"}],"collection":[{"href":"http:\/\/bininda.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/bininda.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/bininda.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/bininda.com\/blog\/wp-json\/wp\/v2\/comments?post=125"}],"version-history":[{"count":3,"href":"http:\/\/bininda.com\/blog\/wp-json\/wp\/v2\/posts\/125\/revisions"}],"predecessor-version":[{"id":175,"href":"http:\/\/bininda.com\/blog\/wp-json\/wp\/v2\/posts\/125\/revisions\/175"}],"wp:attachment":[{"href":"http:\/\/bininda.com\/blog\/wp-json\/wp\/v2\/media?parent=125"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/bininda.com\/blog\/wp-json\/wp\/v2\/categories?post=125"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/bininda.com\/blog\/wp-json\/wp\/v2\/tags?post=125"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}