Entries tagged as bash
KeepassX Konverter
Monday, November 21. 2011
download: convert2keepass.03a.tar.gz
Die Ausgangslage: auf einer kleinen verschlüsselten Partition halte ich eine seit vielen Jahren gehegte Sammlung von mehr oder weniger geheimen Infos, in vorwiegend kleinen Textdateien. Und diese wollte ich in eine Keepass - Datenbank überführen. Bei zusammen doch mehreren hundert Schnipseln war Handarbeit keine Option.
Die Zielanwendung ist KeepassX (v.0.43), das ich mit sudo apt-get install keepassx aus den Debian repositories installiert habe. Bis auf das Schnuller-Logo, das leider auch als Icon verwandt wird, habe ich an der Anwendung wenig auszusetzen: klein, flottt, unaufdringliche Oberfläche und es gibt sie in Versionen für alle Betriebssysteme und Architekturen, die ich habe. Ich kann die unter Linux erstellte Datenbank auf Windows, auf dem Mac, ja auch auf meinem Androiden öffnen, ergänzen, die veränderte .kdb vom Handy wieder auf Linux zurückspielen, die Sicherheitsfeatures machen auch einen guten Eindruck.
KeepassX kann Daten exportieren - als gegliederte Textdatei oder als keepassx.xml - und importieren - keepassx.xml, kwallet.xml und PwManager-Datei. Da nur ein Format sowohl für Export als auch Import zur Verfügung steht, war nicht lange zu überlegen, welches Format ich für einen Konverter wählen würde.
Es ist ein kleines Bash-Script geworden, das mit den Parametern QuellVerzeichnis zielVerzeichnis ZieldateiName aufgerufen wird und dann vom 'Quellverzeichnis abwärts durch alle Unterverzeichnisse alle Dateien sucht und einträgt. Dabei wird der Titel des Eintrags aus dem Namen der Textdatei (ohne Extension) gebildet und der Inhalt der Datei wird in das Feld Comment geschrieben.
Das Ergebnis ist dann eine lange xml-Datei, die mit der Import-Funktion als eine Keepassx-db geladen werden kann. Die Sache ist frisch und Alpha, derzeit kann es
- prüft auf taugliche Parameter, Schreibrechte im ZielVerzeichnis
- rekursive Bearbeitung, die Struktur in der Keepass-DB entspricht der Verzeichnisstruktur
- prüft mimeType der Dateien und bearbeitet nur text* und message*
- ruft dazu file
- Texte, die von MacOS <10 stammen, machen uU Probleme
- ersetzt die für XML unverträglichen Zeichen &<>"' und Zeilenenden durch html entities
- gibt Statistik über bearbeitete Dateien und Verzeichnisse aus
- schreibt für keepassX importierbares .xml und nennt dessen Dateipfad.
Um die damit erzeugten Datenbankeinträge nicht als eigene .kdb zu importieren, sondern mit einer bereits bestehenden zu vereinen, muss man dann doch Hand anlegen: die bestehende kdb als .xml exportieren, die beiden xml in einem Editor zusammensetzen und neu importieren. Grade gemacht, funzt.
HTC Desire rooten
Friday, May 27. 2011
Bislang waren meine Versuche, mein Desire (mit Vodafone_uk - Branding, Bootloader 0.93, Froyo) zu rooten, gescheitert. unrevoked startete (auf Debian Squeeze / 64) entweder gar nicht oder mit Fehlermeldungen.
"No protocol specified
Error: Unable to initialize gtk, is DISPLAY set properly?"
64 Bit mag es wohl nicht. Eine Live-Distro (mint gefiel mir gut) mit 32 Bit half über die erste Hürde.
Nun startete unrevoked, fand, bearbeitete und rebootete auch das Desire, aber dort erschien nur der Hinweis, die Anwendung zysploit sei unerwartet beendet worden, und unrevoked meldete dann "Error: failed to get root. Is your firmware too new?"
Ich hatte da mal ein OTA update akzeptiert und hielt das Desire schon für unrootbar. Aber dann stiess ich auf Berichte, dass es auch mit HBOOT 0.93 klappen kann und versuchte es erneut.
Weitergeholfen hat mir letztlich ein Tip von dieser Seite: Nämlich, vor dem Durchgang auf dem Desire die Anwendung Evo Zysploit zu desinstallieren. Die war da wohl von einem vorigen Anlauf mit einer älteren Version von unrevoked (3.22) noch übrig und im Wege.
Und dann ging's auf einmal. unrevoked 3.32 lief durch und jetzt habe ich den Befehl su. Und eine Reihe anderer - hier die Liste der ADB Shell Command Reference
Bei dem und den folgenden Schritten (Backups ziehen, anderes ROM flashen) war es mir sehr beruhigend, verständliche Hintergrundinfos und Howtos zu haben, und die Brutzelstube hat davon einen ganzen Sack voll!
Anschliessend kam ein Custom rom drauf, anhand dieser howto zu Vorbereitung und flashen. Das klappte erst mal gar nicht: obwohl ich brav jeden Schritt wie angeleitet nachvollzogen hatte, mochte mein Desire partout nicht mit dem neuen rom booten. Ich bekam den weissen Screen mit dem htc-Logo und das war's dann, egal wie lange ich wartete.
Problem 1 war, wie ich dann entdeckte, dass bei der Partitionierung/Formatierung der ext3-Partition auf der sd-card etwas schief gegangen war. gparted akzeptierte das angestöpselte Desire klaglos als card reader, sah auch beide Partitionen aber auf der der neuen kein Format. Mit diesem tool die ext-Partition noch etwas vergroessert und formatiert, dabei den Partitionen gleich noch sprechende Namen gegeben und die Fehlermeldungen zum mounten der sd-ext waren Vergangenheit.
Es bootete aber immer noch nicht. Was jetzt half, war im recovery den Eintrag advanced zu wählen und hier jedes angebotene wipe auszuführen (dalvik cache, battery stats). Welches von beiden letztlich das Hindernis ausräumte, weiß ich nicht, aber dann klappte es endlich und auf dem desire quieckte die Bootanimation von LeeDrOiD 2.4.1. Am nächsten Morgen noch mal gegoogelt und da ist tatsächlich über Nacht eine neue Version, LeeDrOiD 2.5-final, released worden. Die liess sich dann ohne jegliches wipe, über die Vorversion drüberflashen.
Und? Startpunkt der ganzen Aktion war ja, daß ich auf dem desire die ipv6 privacy extensions aktivieren wollte, wie von heise beschrieben. Mit rooten allein ging das noch nicht, weil sysctl nicht zur Verfügung stand. Mit LeeDrOiD kommt eine busyBox und sogar ein nano. Ziel erreichbar.
Dann ist OpenVpn eingebunden, was die Tür zu manchem Projekt öffnet. Das Teil kennt jetzt einen Automodus mit klickarmem Menü zu Navigieren, Telefon, Kontakte, Musik. Noch ein paar nützliche Programme sind direkt eingebunden. Last but not least habe ich jetzt knapp 100 MB freien Telefonspeicher (vorher selbst nach großem Aufräumen kaum 14MB), was wohl dem App2sd+ zu verdanken ist.
Nach Neustart empfängt das Desire SMS mit Zahlencode...
Lösung:
Im Menupunkt "Kurzmitteilungen" in Einstellungen>Anrufen>Kurznachricht "Cell-Broadcasting" aktivieren/deaktivieren
in Verbindung mit Neustart des Desire, also:
"Cell-Broadcasting" aktivieren > Neustart > "Cell-Broadcasting" deaktivieren > Neustart > "Cell-Broadcasting" aktivieren
Snapper und SnapUtil
Tuesday, April 12. 2011
An earlier post described my TimeMachine-inspired SnapShot backup based on rsync and hard links downloadable there. It has been very useful for me already. You know how things can happen, I was working on a script which should empty a certain directory before writing new files there and at some point substituted the hard-coded path to that directory with a parameter, and then tested the thing forgetting to enter the path-parameter.
Thus,
rm -rf $DEST_BASE/* effectivly turned into
rm -rf /*
I was so glad my last snapShot was but 70 min old.
Then I had to detail the steps and times of working on a certain project a posteriori, which files had been edited over what times on which days? A series of snapShots is basically a very good source for this kind of research, but in praxis it turned out to be uncomfortabel to always walk the pathes up and down between the parallel snapShot directories.
Typically the folders I wanted to compare always share a common relative path, like
snapShots/snap1/some/longish/and/winded/path
snapShots/snap2/some/longish/and/winded/path
snapShots/snap3/some/longish/and/winded/path
and I soon started to wish I had symlinks to the destinations in a special folder. And while in some cases I want to see all the files, in other cases I'd rather only have the files that got changed between one snapShot and the next.
So I ended up creating a tool to build just this.
At the core this is a bash shell script which gets the pathes to the snapShot base, the relative path to link, the destination dir to place the symlinks in and then walks the file tree. It is supported by a gui front end that makes picking the pathes and setting the parameters so much easier.
Together they form SnapUtil, based on Bash, Python_2.6 and wxPython. This is an early alpha version, GPL 2, download .