1. Hast Du Lust, bei uns mitzuarbeiten und das AH-Team zu verstärken? Alle Details zu dieser aktuellen Herausforderung findest Du hier.
  1. marc132, 16.06.2012 #1
    marc132

    marc132 Threadstarter Android-Lexikon

    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?
     
  2. DPT, 16.06.2012 #2
    DPT

    DPT Android-Guru

    mit root und z.B. ES Datei EXplorer
     
  3. marc132, 16.06.2012 #3
    marc132

    marc132 Threadstarter Android-Lexikon

    nein, ich will das in ein flashbare update.zip intrigieren, und die dann an andere user verteilen.
     
  4. DPT, 16.06.2012 #4
    DPT

    DPT Android-Guru

    achso. Sorry, dann hatte ich dich misverstanden ;)
     
  5. marc132, 16.06.2012 #5
    marc132

    marc132 Threadstarter Android-Lexikon

    kennst du eine lösung?
     
  6. steve8x8, 16.06.2012 #6
    steve8x8

    steve8x8 Android-Experte

    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.)
     
  7. mizch, 17.06.2012 #7
    mizch

    mizch Android-Guru

    Ich verstehe verschiedene Sachen hier nicht.

    Wozu sqlite? build.prop ist eine reine Textdatei, sqlite hat da nichts zu suchen.
     
  8. steve8x8, 17.06.2012 #8
    steve8x8

    steve8x8 Android-Experte

    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
     
  9. jna, 18.06.2012 #9
    jna

    jna Ehrenmitglied

    sed?
    awk?

    Sowas müsste mit busybox doch machbar sein.
     
  10. steve8x8, 18.06.2012 #10
    steve8x8

    steve8x8 Android-Experte

    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.
     
  11. jna

    jna Ehrenmitglied

    Naja, wenn's sonst nicht geht, warum nicht?
     
  12. mizch, 19.06.2012 #12
    mizch

    mizch Android-Guru

    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)
     
    marc132 und steve8x8 gefällt das.
  13. steve8x8, 19.06.2012 #13
    steve8x8

    steve8x8 Android-Experte

    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...
     
  14. mizch, 19.06.2012 #14
    mizch

    mizch Android-Guru

    Gut, dann musst Du /data/local.prop auf dieselbe Weise auch durchgehen.
     
Die Seite wird geladen...
Du betrachtest das Thema "build.prop in update" im Forum "Android Allgemein",