TWRP: Eigene Flashbare ZIP macht nicht alles was sie soll

Nein auch nicht. Aber hab es jetzt wohl unter dem Terminal in TWRP geht:

chcon -u u -r object_r -t users_system_data_file -l s0 wallpaper_lock_image

Dann müsste es im Script auch so gehen. werde es mal testen.
Beiträge automatisch zusammengeführt:

So das geht alles nicht:
run_program("/tmp/busybox", "chcon", "-t users_system_data_file", "/data/system/users/0/wallpaper_lock_images");
run_program("chcon", "-t users_system_data_file", "/data/system/users/0/wallpaper_lock_images/wallpaper_lock");
run_program("/bin/chcon", "-u u", "-r object_r", "-t users_system_data_file", "-l s0", "/data/system/users/0/wallpaper_lock_images/wallpaper_lock_orig");
run_program("/tmp/busybox", "chcon", "-u u", "-r object_r", "-t users_system_data_file", "-l s0", "/data/system/users/0/wallpaper_lock_images/wallpaper_lock_orig");
 
Zuletzt bearbeitet:
@bobwooton Ich probiere es auch mal aus.
 
Z.b. geht im Terminal von TWRP ohne Probleme:
"busybox chcon -t users_system_data_file /system_root/data/system/users/0/wallpaper_lock_images"

Aber im Script als:
run_program("/tmp/busybox", "chcon", "-t", "users_system_data_file", "/system_root/data/system/users/0/wallpaper_lock_images");

geht es nicht.
 
@bobwooton Der Befehl im Terminal busybox chcon ist nicht derselbe wie im Script run_program("/tmp/busybox", "chcon"...

Im Script nimmst du die Binary (busybox), die sich in dem Ordner META-INF, bzw. innerhalb der update-binary befindet.
Im Terminal wird die Binary unter /sbin verwendet.

Probier mal aus, ob das hier funktioniert:
run_program("/sbin/busybox", "chcon"...
 
War jetzt davon ausgegangen das die beiden busyboxen sich nicht darin unterscheiden...... Geht aber auch nicht :

run_program("/sbin/busybox", "chcon", "-t", "users_system_data_file", "/system_root/data/system/users/0/wallpaper_lock_images");

Bleibt auch bei "unlabled".
 
du hast die offizielle Version von TWRP für das S10?
 
Auf dem S10+ hab ich nur bis gestern getestet. Da ich da nicht weiter das System versauen will teste ich
im Moment auf dem S9+ mit dem offiziellen twrp-3.4.0-0-star2lte.img.
Auf dem S10+ hab ich twrp-beyond2lte-3.4.0-3_ianmacd.img . Da geht es aber auch nicht.
 
Zuletzt bearbeitet:
@bobwooton Aber da gibt es keinen großen Unterschied bei /sbin. Die meisten Befehke im Terminal laufen per Symlink über toybox, so wie bei busybox auch. Nur das toybox die offizielle Version von Android ist.

Ich versuche mal einen Befehl zu basteln.
 
Stop.... war mein (Tip)fehler. Das letzte geht jetzt doch . Also :

run_program("/sbin/busybox", "chcon", "-t", "users_system_data_file", "/data/system/users/0/wallpaper_lock_images");

funktioniert.
 
Zuletzt bearbeitet:
Ich würde folgendes probieren:
Code:
ch_con("u:object_r:users_data_system_file:s0", "/data/system/users/0/wallpaper_lock_images");
oder
Code:
run_program("/sbin/chcon", "u:object_r:users_data_system_file:s0", "/data/system/users/0/wallpaper_lock_images");
Beiträge automatisch zusammengeführt:

@bobwooton Du hast nur "unlabled" durch den korrekten Kontext ersetzt, anstatt alles neu zu schreiben. Auch gut! :)
Beiträge automatisch zusammengeführt:

@bobwooton Wird denn auch der Hintergrund jetzt geändert mit dem Script?
 
Zuletzt bearbeitet:
So geht es jetzt . Wenn vorher ein anderer Hintergrund gesetzt war oder gar keiner gesetzt
war kommt jetzt richtig nach dem Start der geflashte Hintergrund. Ringtones, Notificatons und hosts wird auch ausgetauscht.
 
Zuletzt bearbeitet:
Das war jetzt aber eine schwere Geburt. :) Aber cool, dass es geklappt hat!
Ich persönlich hab noch keine flashable .zip auf diese Weise erstellt. Aber es gibt auch die Möglichkeit, ganz auf die update-binary zu verzichten und sie durch ein Shell-Script zu ersetzen. Das wäre dann die Art und Weise, wie die Magisk Module aufgebaut sind. Das finde ich um einiges komfortabler, weil du alles so schreiben kannst, wie du es auch brauchst.
Nur so wie bei dir, hätte ich das wahrscheinlich nicht hinbekommen. 😂
 
Ja jetzt wo man weiß wie es geht werden ich heute rst mal das Chaos im Script beseitigen. Da kann ja noch vieles überflüssiges raus.
 
@bobwooton Die Stammverzeichnisse wie "/data/system/users/0" könntest du durch Variablen ersetzen. Damit sparst du auch sehr viel Platz.
 
Ja da wird noch einiges gekürzt. Ist viel drin durch das basteln. Aber ist auch viel "Überflüssiges" drin da es ja nicht nur auf einem Smartphone laufen soll. Das für die Klingeltöne nutze ich ja seit Jahren. Hab hier ja vom S6 bis S10+ einiges im Einsatz weil die Handys hier auch für die Smarthomesteuerung oder als Überwachungskameras laufen.

Ein Zip ohne die update-binary war es mal. Da es aber mit den Wallpapers nicht geklapt hatte, hatte ich es noch mal neu so wie jetzt gemacht.
 
Zuletzt bearbeitet:
@BOotnoOB So Script ist jetzt zwar aufgeräumt aber wie Meistens will mal wieder was nicht obwohl man genau das nicht anders macht als im alten Script. Und zwar wird /system anscheinend nicht gemountet.
Denn Alles was die Wallpaper angeht geht wunderbar. Nur da wird ja auch /data geschrieben. Aber alles im Script was die Töne und die hosts angeht geht nicht ( was ja auf /system geschieht ) . Weswegen ich vermute das /system nicht gemountet wird. Nur warum was überseh ich diesmal ( die "update-binary" in dem ZIP ist das Script :) ) :

#!/sbin/sh

export OUTFD="/proc/self/fd/$2"
ui_print() {
echo "ui_print ${1}" > "$OUTFD"
}

ui_print " "
ui_print "--------------------------------------------"
ui_print " "
ui_print " personalisation Script 1o.1o.2o2o "
ui_print " "
ui_print " Install hosts, ringtones and notifications "
ui_print " "
ui_print "--------------------------------------------"
ui_print
ui_print " "

ui_print "- detecting system mountpoint "
system_as_root=`getprop ro.build.system_root_image`
if [ "$system_as_root" == "true" ]; then
SYSTEM_MOUNT=/system_root/system
UP=/system_root/data/system/users/0
else
SYSTEM_MOUNT=/system
UP=/data/system/users/0
fi
TEMP=/tmp/TWRPscript
sleep 3
ui_print "- done "




ui_print "- mounting "$SYSTEM_MOUNT
mount /system
mount -o rw,remount /system
mount -o rw,remount /system /system
mount -o rw,remount /
mount -o rw,remount / /
mount /system_root
mount -o rw,remount /system_root
mount -o rw,remount /system_root /system_root
sleep 3
ui_print "- done "




ui_print "- extract archiv "$3
cd /tmp; mkdir TWRPscript; cd TWRPscript;
/bin/unzip -o "$3"
unzip -o "$3"
sleep 5
ui_print "- done "

ui_print "- Delete old files "
/sbin/busybox rm -f $SYSTEM_MOUNT/etc/hosts
/sbin/busybox rm -f $SYSTEM_MOUNT/audio/notifications/*
/sbin/busybox rm -f $SYSTEM_MOUNT/audio/ringtones/*

sleep 3
ui_print "- done "

ui_print "- copy hosts "
cp $TEMP/hosts $SYSTEM_MOUNT/etc/
/sbin/busybox chmod 644 $SYSTEM_MOUNT/etc/hosts
sleep 1
ui_print "- done "

ui_print "- copy notifications "
cp $TEMP/notifications/* $SYSTEM_MOUNT/media/audio/notifications
/sbin/busybox chmod 644 $SYSTEM_MOUNT/media/audio/notifications/*
sleep 1
ui_print "- done "

ui_print "- copy ringtones "
cp $TEMP/ringtones/* $SYSTEM_MOUNT/media/audio/ringtones
/sbin/busybox chmod 644 $SYSTEM_MOUNT/media/audio/ringtones/*
sleep 1
ui_print "- done "

ui_print " "
ui_print "--------------------------------------------"
ui_print " "
ui_print " personalisation Script 1o.1o.2o2o "
ui_print " "
ui_print " Install wallpaper "
ui_print " "
ui_print "--------------------------------------------"
ui_print " "

ui_print "- delete wallpaper "
/sbin/busybox rm -rf $UP/wallpaper_lock_images
/sbin/busybox rm -f $UP/wallpaper*
sleep 3
ui_print "- done "

ui_print "- copy new wallpaper "
cp $TEMP/wallpaper/wallpaper* $UP
/sbin/busybox chmod 600 $UP/wallpaper
/sbin/busybox chmod 600 $UP/wallpaper_info.xml
/sbin/busybox chmod 600 $UP/wallpaper_backup_info.xml
/sbin/busybox chmod 771 $UP/wallpaper_lock_images
/sbin/busybox chmod 600 $UP/wallpaper_lock_images/wallpaper_lock
/sbin/busybox chmod 600 $UP/wallpaper_lock_images/wallpaper_lock_orig
/sbin/busybox chown system:system $UP/wallpaper
/sbin/busybox chown system:system $UP/wallpaper_info.xml
/sbin/busybox chown system:system $UP/wallpaper_backup_info.xml
/sbin/busybox chown -R system:system $UP/wallpaper_lock_images
ui_print "- done "
sleep 3

ui_print "- set SELinux context "
/sbin/busybox chcon -t users_system_data_file $UP/wallpaper_lock_images
/sbin/busybox chcon -t wallpaper_file $UP/wallpaper_lock_images/wallpaper_lock
/sbin/busybox chcon -t wallpaper_file $UP/wallpaper_lock_images/wallpaper_lock_orig
/sbin/busybox chcon -t wallpaper_file $UP/wallpaper
/sbin/busybox chcon -t users_system_data_file $UP/wallpaper_info.xml
/sbin/busybox chcon -t users_system_data_file $UP/wallpaper_backup_info.xml
ui_print "- done "
sleep 3

ui_print "- unmounting filesystem "
/sbin/busybox rm -rf $TEMP
/sbin/busybox umount $SYSTEM_MOUNT
sleep 3
ui_print "- Done.... Ready to reboot "
ui_print "------------------------------------------"
ui_print " "
 

Anhänge

  • test.zip
    4,2 MB · Aufrufe: 24
Zuletzt bearbeitet:
@bobwooton Obwohl "getprop" dir ausgibt, dass dein Gerät system_as_root ist, lautet der Befehl trotzdem "mount /system". Denn deine ramdisk besitzt kein Verzeichnis /system_root, sondern nur /system.
.
├── acct
├── bin -> /system/bin
├── bugreports -> /data/user_de/0/com.android.shell/files/bugreports
├── charger -> /sbin/charger
├── config
├── d -> /sys/kernel/debug
├── data
├── default.prop -> prop.default
├── dev
├── etc
├── file_contexts
├── file_contexts.bin
├── fstab.samsungexynos9810
├── init
├── init.rc
├── init.recovery.hlthchrg.rc
├── init.recovery.ldconfig.rc
├── init.recovery.service.rc
├── init.recovery.usb.rc
├── license
├── mnt
├── odm
├── oem
├── plat_file_contexts
├── plat_hwservice_contexts
├── plat_property_contexts
├── plat_seapp_contexts
├── plat_service_contexts
├── proc
├── product -> /system/product
├── prop.default
├── res
├── sbin
├── sdcard
├── sepolicy
├── storage
├── sys
├── system
├── tmp
├── twres
├── ueventd.rc
├── ueventd.samsungexynos9810.rc
├── vendor_file_contexts
├── vendor_hwservice_contexts
├── vendor_property_contexts
├── vendor_seapp_contexts
├── vendor_service_contexts
└── vndservice_contexts

21 directories, 27 files
Du kannst in TWRP im Terminal diesen Befehl "mount /system" testweise ausführen und über "Einhängen" checken, ob damit ein Häkchen gesetzt wurde bei "System". Genau das sollte nämlich dadurch geschehen.
Beiträge automatisch zusammengeführt:

@bobwooton Es reicht in TWRP auch völlig aus, nur "mount /system" oder "mount /system_root" (je nach Gerät) zu verwenden. Du brauchst keine anderen Optionen wie "-o rw, remount" zu setzen.
 
Zuletzt bearbeitet:
Gehe halt nur auf nummer sicher .... deswegen die Optionen und im anderen Script mountet er ja so.
Es wird übrigens /system genutzt. Deswegen lasse ich es mir ja ausgeben um es zu sehen ( ui_print "- mounting "$SYSTEM_MOUNT ). Er nutzt also /system und nicht /system_root ( in der Variabel $SYSTEM_MOUNT liegt /system ). Da kann der Fehler also nicht liegen :). Hatte den Verdacht auch schon und hatte auch schon mal testweise im Scipt die Variabel fest durch /system ersetzt und es mir dann als es daran nicht lag jetzt anzeigen lassen vom Scipt wärend des flashens.
Beiträge automatisch zusammengeführt:

Hätte auch eher im Terminal nachsehen können. Im alten Script ging es dann wohl weil ich bei allem Beides gemacht hab ( /system und /system_root ).
Bei "mount /system" hab ich beim S9+ nen Fehler. Bei "mount /system_root" was das Script nicht erkennt und
was ich nicht getestet hab ( weil es für mich eigentlich auch /system war ) wird System gemountet. Also werde ich die "Erkennung" also etwas umbasteln das sie richtig läuft :)
 

Anhänge

  • 20201011_200939.jpg
    20201011_200939.jpg
    1,3 MB · Aufrufe: 75
Zuletzt bearbeitet:
bobwooton schrieb:
Deswegen lasse ich es mir ja ausgeben um es zu sehen ( ui_print "- mounting "$SYSTEM_MOUNT
Ja, stimmt. Soweit war ich noch nicht. :)

Ab TWRP 3.4.0-0 wird System immer als /system gemountet. TWRP 3.4.0-0 Released
 
Ok mit "/system_root/system" geht das Script jetzt. Man sollte nicht immer an das glauben was man zu wissen glaubt und eher auch mal sowas testen :) . Dann werde ich mir jetzt ne andere Erkennung basteln für /system oder /system_root/system .

Auf dem S9+ ist aber das offizielle TWPR 3.4.0-0 also scheint es doch nicht so zu sein :)
 
Zuletzt bearbeitet:

Ähnliche Themen

S
Antworten
6
Aufrufe
1.506
chrs267
chrs267
D
Antworten
252
Aufrufe
17.900
Andyowl777
A
B
Antworten
7
Aufrufe
692
boombastique
B
Zurück
Oben Unten