build.prop in update

marc132

marc132

Dauergast
122
ich möchte einige zusätze in die build.prop hinzufügen und dann in mein update intrigieren. also so das die zusätzlichen einträge in die bestehende build.prop eingefügt werden. wie mach ich das am besten?
 
mit root und z.B. ES Datei EXplorer
 
nein, ich will das in ein flashbare update.zip intrigieren, und die dann an andere user verteilen.
 
marc132 schrieb:
nein, ich will das in ein flashbare update.zip intrigieren, und die dann an andere user verteilen.

achso. Sorry, dann hatte ich dich misverstanden ;)
 
kennst du eine lösung?
 
Das größte Problem dabei dürfte sein, bereits existierende Einträge in der build.prop zu überschreiben (und nicht nur anzuhängen - hat mal jmd ausprobiert, wie sich das System verhält, wenn es zwei verschiedene Wertzuweisungen für dieselbe property innderhalb der gleichen Datei findet?)
Die build.prop ist nur eine von vier Dateien, die in einer bestimmten Reihenfolge eingelesen werden (google mal nach "system properties", ich kann's mir auch nicht merken); mit jeder davon wird es aber das Problem geben, daß evtl. jemand anderes "schneller" war und schon seine Änderungen gemacht hat.
Mir fällt jedenfalls auf Anhieb nichts ein, was sich innerhalb eines zip-Updates scripten ließe. (Alles in ein sqlite werfen und wieder exportieren, scheint mir ein wenig wie Kanonen auf Spatzen. Wenn es unter dem geht, wüßte ich auch gerne, wie.)
 
Ich verstehe verschiedene Sachen hier nicht.

Wozu sqlite? build.prop ist eine reine Textdatei, sqlite hat da nichts zu suchen.
 
Natürlich ist es eine Textdatei.
Wenn du eine halbwegs mit Bordmitteln (auf viel kann die update.zip ja nicht zurückgreifen) funktionierende Möglichkeit kennst, eine Textdatei nach bereits vorhandenen Properties abzusuchen und diese ggf. durch neue Werte zu ersetzen, nur her damit.
Das Ganze dann am besten noch für alle vier Dateien, in denen Properties stehen können (die /system/build.prop kann ja durch zwei andere: /system/default.prop und /data/local.prop "überstimmt" werden; um die müßte man sich also auch noch kümmern).

Details hier: just do IT: android property system
 
sed?
awk?

Sowas müsste mit busybox doch machbar sein.
 
Klar busybox. Oder gleich cfengine. :p
Was aber nichts daran ändert, daß das nicht (in /system) vorausgesetzt werden kann - und also jedesmal zur update.zip hinzugepackt werden müßte. - Wegen 2 Zeilen in der build.prop jedesmal eine komplette busybox ins zip?
sqlite ist hingegen schon im System drin, und würde zumindest das "keine Zeile darf doppelt vorkommen"-Problem auf elegante Weise lösen. Ob es praktikabel(er als der busybox-Ansatz) ist, steht auf einem anderen Blatt.
 
steve8x8 schrieb:
Wegen 2 Zeilen in der build.prop jedesmal eine komplette busybox ins zip?
Naja, wenn's sonst nicht geht, warum nicht?
 
Das geht schon. Es lassen sich ja Shellscripte aufrufen. Ein solches wäre

Code:
#!/system/bin/sh

# Zeile für Zeile durchgehen und gewünschte Properties ändern
while read line; do
  case $line in
    property1=*)  echo "property1=NewValue";;
    property2=*)  echo "property2=NewValue2"; gotProperty2=1;;
    *)  echo "$line";;
  esac
done < /system/build.prop >/system/build.prop.new || exit 1

# Falls Property2 noch nicht vorhanden, ergänzen:
if [ -z "$gotProperty2" ]; then
  echo "property2=NewValue2" >>/system/build.prop.new
fi

mv /system/build.prop.new /system/build.prop
(Ungetestet)
 
  • Danke
Reaktionen: marc132 und steve8x8
Danke, das löst aber das (zugegeben kleinere und wahrscheinlich in mehr als 90% der Fälle hypothetische) Problem nicht, daß die property in /data/local.prop noch mal anders gesetzt ist...
 
Gut, dann musst Du /data/local.prop auf dieselbe Weise auch durchgehen.
 

Ähnliche Themen

jandroid
Antworten
3
Aufrufe
495
DOT2010
DOT2010
DerAndroidUser
Antworten
1
Aufrufe
262
mblaster4711
mblaster4711
A
Antworten
6
Aufrufe
648
allsquare
A
Zurück
Oben Unten