1. Möchtest Du unser Team im Android OS-Bereich unterstützen? Details dazu findest du hier!
  2. Nimm jetzt an unserem 2. ADVENT-Gewinnspiel teil - Alle Informationen findest Du hier!

build.prop in update

Dieses Thema im Forum "Android Allgemein" wurde erstellt von marc132, 16.06.2012.

  1. marc132, 16.06.2012 #1
    marc132

    marc132 Threadstarter Android-Lexikon

    Beiträge:
    1,045
    Erhaltene Danke:
    115
    Registriert seit:
    16.04.2012
    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

    Beiträge:
    2,305
    Erhaltene Danke:
    369
    Registriert seit:
    23.03.2011
    mit root und z.B. ES Datei EXplorer
     
  3. marc132, 16.06.2012 #3
    marc132

    marc132 Threadstarter Android-Lexikon

    Beiträge:
    1,045
    Erhaltene Danke:
    115
    Registriert seit:
    16.04.2012
    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

    Beiträge:
    2,305
    Erhaltene Danke:
    369
    Registriert seit:
    23.03.2011
    achso. Sorry, dann hatte ich dich misverstanden ;)
     
  5. marc132, 16.06.2012 #5
    marc132

    marc132 Threadstarter Android-Lexikon

    Beiträge:
    1,045
    Erhaltene Danke:
    115
    Registriert seit:
    16.04.2012
    kennst du eine lösung?
     
  6. steve8x8, 16.06.2012 #6
    steve8x8

    steve8x8 Android-Experte

    Beiträge:
    847
    Erhaltene Danke:
    79
    Registriert seit:
    14.01.2011
    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

    Beiträge:
    2,310
    Erhaltene Danke:
    371
    Registriert seit:
    05.11.2010
    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

    Beiträge:
    847
    Erhaltene Danke:
    79
    Registriert seit:
    14.01.2011
    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

    Beiträge:
    7,398
    Erhaltene Danke:
    1,299
    Registriert seit:
    28.01.2011
    sed?
    awk?

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

    steve8x8 Android-Experte

    Beiträge:
    847
    Erhaltene Danke:
    79
    Registriert seit:
    14.01.2011
    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

    Beiträge:
    7,398
    Erhaltene Danke:
    1,299
    Registriert seit:
    28.01.2011
    Naja, wenn's sonst nicht geht, warum nicht?
     
  12. mizch, 19.06.2012 #12
    mizch

    mizch Android-Guru

    Beiträge:
    2,310
    Erhaltene Danke:
    371
    Registriert seit:
    05.11.2010
    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 haben sich bedankt.
  13. steve8x8, 19.06.2012 #13
    steve8x8

    steve8x8 Android-Experte

    Beiträge:
    847
    Erhaltene Danke:
    79
    Registriert seit:
    14.01.2011
    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

    Beiträge:
    2,310
    Erhaltene Danke:
    371
    Registriert seit:
    05.11.2010
    Gut, dann musst Du /data/local.prop auf dieselbe Weise auch durchgehen.
     

Diese Seite empfehlen