adb Shell setprop mypropertykey mypropertyvalue
の仕組みを理解したいと思います。つまり、/system/build.prop
ファイルを編集しましたが、getprop
コマンドを使用して値を読み取ろうとすると、代わりに空の値が返されているようです。
ただし、ルートモードでadb Shell setprop
を介してプロパティを設定し、エミュレータのルートを解除し、コードを使用して値を読み取ると、適切な値を取得できます。
私が理解していないのは、値がadb Shell setprop
を介して設定されている場合、なぜbuild.prop
ファイルに書き込まれないのですか?次に、getprop
はどこから値を読み取りますか?
Androidシステムプロパティは、特別なproperty_service
によって管理されています。 /system/build.prop
は、property_service
が起動中に内部インメモリデータベースに入力するために使用するデフォルト値を含む4-6(バージョンによって異なります)の読み取り専用ファイルのうちの1つにすぎません。したがって、実行中のファイルへの変更は、再起動後まで反映されません。
setprop
およびgetprop
コマンドは、そのデータベース内のデータにアクセスするために使用されます。プロパティ名がpersist.
で始まる場合を除き、値は/data/property
フォルダーに保存されます。