Recovery in der früh für Nüsse…

Vor knapp einer Stunde wurde mein OnePlus One im Zuge einer Ticketbearbeitung (der Bildschirm macht Probleme, wird weiß und streifig, natürlich hilft da eine Software-Installation nicht, aber was solls, ich stehe ja gerne an einem Sonntag um 04:45 auf, vor allem wenn ich am Vortag noch beim Pispers war und erst nach Mitternacht ins Bett komme, Pispers war übrigens wie immer großartig) durch eine Remote-Sitzung auf Oxygen OS geflasht.

Um die Treiberinstallation der Qualcomm-Treiber zu ermöglichen hat er den mitgelieferten CERT an fast alle Stellen des Systems installiert. Danach wurde noch die Signatur-Prüfung aus und der Windows Testmodus eingeschaltet.

bcdedit.exe -set loadoptions DDISABLE_INTEGRITY_CHECKS
bcdedit.exe -set TESTSIGNING ON

Erst dann hat er den Treiber installiert. Den kompletten Vorgang habe ich hier schon mal gelesen, aber so noch nicht vollzogen, weil nie benötigt. Dort findet sich auch ein Link auf die Treiber die OnePlus übrigens nur in einem verschlüsselten Archiv zum Download anbietet – als Vorbereitung auf die Sitzung – und während der Sitzung dann auspackt (mit einem über 100 Zeichen langen Passwort).
Die dargestellte Methode ist der allerletzte Ausweg wenn man seinen Bootloader gekillt hat und sonst nichts mehr geht. Die Qualcom-Treiber Methode arbeitet über eine Software-Emulation direkt mit dem Chip auf dem Handy und benötigt die Zusammenarbeit mit dem Bootloader nicht.

Danach durfte ich den Rechner neu starten und dann das Smartphone – den Tip kannte ich so noch nicht – mit gedrückter Volume-Up-Taste an das USB-Kabel stecken. Und dann hat er mit einem entsprechenden Hilfsprogramm – findet sich im Download von Oxygen OS im verlinkten Thread oben- das Handy komplett neu geflasht. Ging recht schnell, der Hardware-Defekt ist aber – wie zu erwarten war – immer noch vorhanden. Der tritt ja sogar während des Bootvorgangs auf.

Deshalb eskaliert er mein Ticket jetzt um eine Stufe und ich bekomme einen Austausch.

Leider hat der Knilch die Einstellungen meines Rechners nicht wiederrufen und so habe ich dann selber mal geschaut. Um obiges wieder Rückgäng zu machen (und die blöde Einblendung auf dem Desktop wieder los zu werden) muss folgendes durchgeführt werden (mit einem abschließenden Neustart):

bcdedit.exe -set loadoptions DENABLE_INTEGRITY_CHECKS
bcdedit.exe -set TESTSIGNING OFF

So. Und jetzt erst mal Frühstück. Echt früh.

Multivolume RAR Archive richtig benennen

Ich habe hier ein paar Multi Volumen Archive RAR-Dateien ohne korrekte Benennung.
Es scheint keine einfache Möglichkeit zu geben, diese korrekt zu benennen, rar selber kann aber die Nummer der Datei innerhalb des Archives ausgeben:

unrar vt dateixxx.rar

Im Text-Ende steht dann etwas von „Volume xxx“.

Wie aber erstelle ich mir daraus wieder die ‚richtigen‘ Namen bzw. einen Namen über den ich das Archiv dann wieder richtig auspacken kann?

Das hier ist immerhin ein Anfang. Mal sehen, ob ich es noch besser hin bekomme.

for f in *.rar; do echo -n "mv $f "; unrar v "$f" | sed -n 12p | awk 'BEGIN {ORS=""}/volume /{printf "%-2s", $NF}'; echo - ".rar" ; done;

Gelistet wird jeweils der alte Dateiname plus die Information, welche Reihenfolge sie tatsächlich im Archiv hat.

Inzwischen habe ich eine erheblich verbesserte Version, die das erstellen eines Skripts für die Umbenennung in sich trägt:

for f in *; do echo -n "mv $f "; unrar v "$f" | tail -n2 | head -n1 | awk -F"volume" '{ print $2 }' | awk -F" " 'BEGIN {ORS=""}{printf("archive.part.%03d.rar\n", $1)}'; done;

Und noch eine Version, die jetzt versucht anhand der Dateigröße einen korrekten Namen zu bilden.

for f in *; do echo -n „mv $f „; unrar vt „$f“ | awk -F“Size:“ ‚{ print $2 }‘ | sed ‚/^$/d‘ | sort -b -g -r | head -n1| tr -d ‚ ‚ | awk -F“ “ ‚BEGIN {ORS=““}{printf(„%s“, $1)}‘; unrar v „$f“ | tail -n2 | head -n1 | awk -F“volume“ ‚{ print $2 }‘ | awk -F“ “ ‚BEGIN {ORS=““}{printf(„.part%03d.rar\n“, $1)}‘; done | tee > rename.sh

das scheitert allerdings bei Archivdateien des gleichen Volumes, die mehr als eine Datei enthalten<, da dann für/del>

awk -F"Size:" '{ print $2 }'

Das stimmt jetzt auch nicht mehr. Die korrigierte Version verwendet jetzt eine kombination aus numerischem „sort“ + „head“ um die Größe der größten Datei des Archives als Dateinamen zu verwenden. Das hat in meinem Beispielen wunderbar funktioniert.

Hier eine neuere Variante, die innerhalb der erzeugten Datei nach Endungen sortiert:

for f in *; do echo -n "mv $f "; unrar vt "$f" | awk -F"Size:" '{ print $2 }' | sed '/^$/d' | sort -b -g -r | head -n1| tr -d ' ' | awk -F" " 'BEGIN {ORS=""}{printf("%s", $1)}'; unrar v "$f" | tail -n2 | head -n1 | awk -F"volume" '{ print $2 }' | awk -F" " 'BEGIN {ORS=""}{printf(".part%03d.rar\n", $1)}'; done | sort -k3 | tee > rename.sh 2>&1

Um die Schleife sicherer zu machen könnte man hier noch find einsetzen, damit kann man dann die Dateien auf eine Verzeichnis-Hierarchie und auf nur Dateien einschränken.

find ./ -type f -maxdepth 1 -name "*"|while read f; do echo "$f"; done

Good bye

„ES IST SOWEIT“
„Ja, ich fühle es“
„DANKE, DASS ES MICH GIBT, SIR“
„gern geschehen“
„BLINKY, BRING IHN NACH HAUS!“
„Danke, Tod“

#pratchett

Veröffentlicht unter Riffer

Löffel

Kurzmitteilung

Kennt hier jemand das Video mit dem Löffelmörder?

Mein neuer (er ist schon eine Weile da) Kollege hat heute mein Blog durchgelesen.

Von 2004 an!

Danke dafür erst einmal.

Wissenswertes: Er hat Angst vor dem Löffelmörder. Und hat heute Geburtstag.

Tja…

… irgendwas ist ja immer!