Tag: Hack

  • Messing with the Skype 4.0 database

    Beginning with version 4.0 Skype changed its internal database format to SQLite (at least the Windows-client, could not yet check other platforms). Besides from better performance it also allows now any curious person to dig a bit into the internals of the local Skype account.

    At first, you need a SQLite client to connect to the database. [SQLite Database Browser][1] is a good choice for this purpose. Then you need to open the Skype database in it. Shut down Skype (you won’t be able to open the file otherwise) and load the file main.db from your **Documents and Settings

    Application DataSkype** directory. You can browse around in the database structure, have a look into the tables contents and even use a SQL editor to query the database. That’s what we’re going to need. Now the fun begins 🙂 In the following statements replace the values in angle brackets eg. * * with the appropiate correct values. Let’s assume, you want to display all messages you exchanged with someone. Beware, that this only works gets the messages you exchanged in a private chat with someone and does not work on chats with more than two participants (you included). SELECT author, timestamp, body_xml FROM messages WHERE dialog_partner = ‘ ‘ Or you want to list all chats, where there have ever been more than you and your chat-partner. So to list all group-chats: SELECT name, participants, posters, activemembers, last_change FROM chats WHERE type = 4 You could also be interested in all previous topics which were set on your group chat: SELECT chatname, timestamp, body_xml FROM messages WHERE chatmsg_type = 5 AND chatname = — get names from the previous query By now you should have recognized, that the timestamps and change-values are not really readable dates in the database. Don’t worry, it’s not encrypted. Its just stored as plain Unix timestamp values. You can easily convert it to a readable time and date using for example the online [UNIX Timestamp To Standard Time Calculator][2] When we’re already with timestamps, you maybe also want to know when someone has also been online the last time when you have been online as well: SELECT skypename, given_displayname, lastonline_timestamp FROM contacts So far we have fetched some interesting information from the database. But now we want to leverage our l33tness a bit and modify our mood message in our profile to include some rich formatting: UPDATE accounts SET profile_timestamp = current_timestamp, rich_mood_text = ‘I feel bold now.’ WHERE skypename = ‘ ‘ Don’t forget to save your database afterwards! This statement updates the profile-timestamp with the current time and adds some rich formatting to our mood message. In this case there is some **bold** text inside. You can look up some more possibilities (like smileys, font coloring, etc.) directly in the [Skype API Documentation][3] ([from][4]). Additionally I’ve found out, that using hyperlinks with the -tag works as well as modifying font-size with the *size*-attribute of the -tag. **Update 2010-02-14:** Meanwhile you can edit your mood-message more easily using my [online Skype mood message editor][5]. You can also delete the chat-history of only certain skype-contacts using the following statement DELETE FROM messages WHERE skypename = ‘ ‘ Again, don’t forget to save your changes afterwards. **Update 2010-10-29:** Skype has dropped the support for “/htmlhistory” since Skype 4.0. An alternate way to get all the messages for a chat is: SELECT timestamp, author, chatmsg_type, body_xml FROM messages WHERE chatname = ‘ ‘ ORDER BY id ASC; You can find out the name of a chat when you write the command “[/showname][6]” in its chat-window. I’ll continue to play around with the database and if I find more interesting stuff, I’ll keep this posting updated. Or I’ll write a new one depending on what I dig up 🙂 [1]: http://sourceforge.net/projects/sqlitebrowser/ “SQLite Database Browser” [2]: http://www.csgnetwork.com/unixds2timecalc.html “Timestamp To Standard Time Calculator” [3]: https://developer.skype.com/Docs/ApiDoc/SET_PROFILE_RICH_MOOD_TEXT “Skype ApiDoc SET_PROFILE_RICH_MOOD_TEXT” [4]: http://forum.skype.com/index.php?s=&showtopic=260131&view=findpost&p=1160831 “Skype4Py” [5]: http://kosi2801.freepgs.com/skype/change-your-skype-mood-message-using-rich-formatting.html “Online Skype Mood Message Editor with Rich Formatting” [6]: http://kosi2801.freepgs.com/2010/10/29/more_mysterious_skype_chat_commands.html “More mysterious Skype chat commands”
  • Using the HTC Hero’s keyboard on the HTC Magic

    It is possible to use the more advanced and comfortable implementation of the screen-keyboard from the HTC Hero on the HTC Magic without having to get root access on the device.

    There is an excellent german description available how to Use the original HTC HERO Keyboard on the Magic, G1, Galaxy and Pulse without rooting (german readers should head there instead). I also tried to find an english description for this but since I did not find explainations without rooting the devices here is the translation for the curious.

    1. download the file HTC_IME.apk(for Android 1.5) or HTC_IME.apk(for Android 1.6 – Donut)
    2. make sure you have an application installed which can install APK files (for example eoeAppInstaller or the ASTRO File Manager)
    3. copy the HTC_IME.apk to the SD-card
    4. accept applications from unknown sources in Settings > Applications
    5. start the eoeAppInstaller (or ASTRO File Manager) and locate the file HTC_IME.apk
    6. long press the entry and choose to install the application
    7. after successful installation reboot your phone
    8. go to Settings > Locale and Text and activate the entry Touch Input
    9. now bring up some text-entry box for example in the SMS messages
    10. long press on the entry-field and choose "Touch Input", voi’la

    Now you should have the new keyboard active. There are more variations of this keyboard layout available in the settings to try out. Furthermore if you’re using tools to kill your running apps make sure, to set the keyboard application on the exclusion-list otherwise it takes longer to launch it every time.

  • Hacking my LCD TV

    Update 2011-02-18: The other wiki site seems to have been shut down by LG. But there is a similar project OpenLGTV which contains the same information on this page.

    Update 2009-12-06: Meanwhile there’s a cleaner wiki-page available here which contains much more details, screenshots and warnings of course. Go there for the most up-to-date information on how to activate your USB port on your LG TV, what sound and video formats are supported and how to sort out some playback problems with movies.

    As I’ve already mentioned I have purchased a new LCD TV some time ago. Its an LG 37-LF 2510. I’ve been quite satisfied with it and it’s quality but when I read in the manual that the USB connector on the backside is only for updates and not for connecting storage devices my interest was awakened by this fact. I looked in the internet for updates to get the latest firmware on my TV and found this forum thread.

    In this thread I read about the possibility to unlock DivX/XVid support on my USB connector by setting the right property in the service-menu. Of course I was sold by this immediately.

    Just for reference I’m documenting the whole process here, how I enabled DivX on my TV.

    1. entered the Expert menu to check for the version of my firmware (enter the menu, just select! the Options entry and press FAV seven times)
    2. as I got FW 3.24.00 I had to downgrade to 3.15 first before the service menu would be available
    3. downloaded firmware 3.15 for LG LH series (mirror), put the contained folder LG_DTV on a USB stick and plugged it into the TV
    4. entered the Expert menu again, selected the entry for version 3.15 and started the downgrade by pressing OK
    5. after the successful downgrade, I entered the service menu by pressing the two OK buttons on the remote and the TV for 5 seconds at the same time, the PIN for the following lock is 0000
    6. now in the service menu go to Option 3 and set JPEG/MP3 to 1 and DivX/XVid to HD
    7. leave the menu, voi’la

    Now the USB port on the backside allowed me to play back DivX and XVid movies 🙂 One backdraw was that the menus looked a bit shaby to me now so I again upgraded my firmware to 3.37 (3.67 is the current version. Beware, service menu code is changed to 0413). Upgrades don’t reset the DivX settings (for now) so this was safe as I could downgrade at any time again via the Expert menu if it would be necessary.

    If you’re trying this on your own, be sure to check the thread above for further information and the correct and most up-to-date firmware versions. According to the instructions in this forum thread the firmware and procedure also works for following models (and their respective xx10 versions, as I’ve got): 32LF2500 37LF2500 42LF2500
    19LH2000 22LH2000 26LH2000 32LH2000 37LH2000 42LH2000
    32LH3000 37LH3000 42LH3000 47LH3000
    32LH4000 37LH4000 42LH4000 47LH4000
    32LH5000 37LH5000 42LH5000 47LH5000
    32LH7000 37LH7000 42LH7000 47LH7000
    19LU4000 22LU4000 26LU4000
    19LU5000 22LU5000 26LU5000

  • DVB-T Cheap Antenna Hack

    Simplest possible DVB-T antenna
    Simplest possible DVB-T antenna
    Originally uploaded by kosi2801

    As I’ve recently purchased a new large LCD TV-set which also has abilities to receive DVB without additional devices I found myself in the need of also having to get a DVB-T antenna. I did a short test-drive with a borrowed antenna from my parents but was not too satisfied. There was a proper signal quality but it was far from what I expected. I’m living in direct line-of-sight from the DVB-T broadcast antenna, which is only a few kilometers away, so I should have an outstanding signal quality. But it was just a bit below average. Stable enough for uninterrupted TV viewing but nevertheless I somehow didn’t want to buy an expensive antenna to just reach average signal quality.

    So I began researching a bit why there was such a bad receiving performance despite the more-than-ideal conditions. As it turned out, DVB-T antennas which are available in the shops have (of course) been designed to have receiving abilities across the whole DVB-T broadcasting bands (UHF and VHF). But since in each area there are only a few channels used these allround-antennas are not the ideal solution for everyone.

    I found several guides how to build a specialized antenna fitting for the used channels in the area but since I’m living in the direct proximity of the broadcaster I did a fast try with a simple setup. Just cut off a piece of thick wire from some I had lying around (according to the measurements I found here) and stuck it directly into the antenna-plug of my TV set. And surprisingly I immediately received the targetted channels with even better performance than with the allround-antenna.

    I still want to build a proper antenna with correct shielding but for now this works excellently. And I’m also planning to try making a better performing antenna (a "Doppelquad-Antenne") to improve the reception in border areas. If I find the time to build it, I’ll let you know.

  • Speeding up the Logitech Harmony Software

    As I’ve just recognized I’ve forgotten to write a notice here that we’ve bought a Logitech Harmony 785 programmable remote control.
    This thing is quite interesting and fun to play around with, but it’s also not so easy to configure as the standard off-the-shelf remote. The only thing is, that the configuration software on the PC is on the one hand not very intuitive and on the other hand… slow… as… hell…

    Well at least I can offer a solution against the slowness.

    The problem with the Logitech Harmony software seems to be, that Logitech bundles it with an older version of the Java Runtime environment. Something like Java 1.5 or so.
    To speed up the software yourself you need a recent Java JRE installed on your computer somewhere, with at least a version equal or greater than JRE 6.
    The following procedure is:

    1. Navigate to the installation directory of Logitech Harmony (something like "C:Program FilesLogitechLogitech Harmony Remote Software 7")
    2. go into the "jre" subdirectory and delete everything there (or back it up somewhere)
    3. next locate the JRE directory of Java (something like "C:Program FilesJavajre6")
    4. copy the "bin" and "lib" subdirectories of the Java JRE 6 directory to the Logitech "jre" directory
    5. finished

    When you start up your Logitech Harmony software now, it should feel smother and react faster. I don’t know exactly why this works but I suspect that the JRE of Java 6 is more advanced and faster in the areas which are used by the Harmony software than the JRE 5 which comes bundled with the software itself.

    This is a relatively easy modification to do but if you’re changing the configuration of your remote often, this can be something which helps you to make your changes faster.

  • Skype chat commands

    It’s not a widespread knowledge that Skype has not only hidden emoticons (see also Skypes own emoticon list)but also allows some special commands within an open Skype chat. Thanks to my darling for the hint. There are some lists available on the net but they aren’t easy to locate and I found none which has a listing of all commands. Well, I don’t know if I for myself have found all available commands, but none of the list contained all of those I know.

    So here I’m compiling my own list of Skype commands with descriptions and if you’re interested some of the lists I used for this are at the bottom of this entry. Most of the commands are for administering the running chat, some are only available when you are the chat creator and some more only if you issued "/goadmin" before. Also at some spots in the net it was said, that some commands are only applicable when the "IRC Style" view of chats is activated but I couldn’t confirm that.

    Furthermore a lot of the commands show only effect or make any sense at all (especially the user management related ones) if used in a public chat.

    If you have knowledge of more of those commands or about the ones with a question mark please leave me a note in the comments.

    Update 2009-04-25 – Filled most gaps, added descriptions and links to official Skype pages.
    Update 2010-08-21 – Minor updates to the options concerning joining a chat.
    Update 2010-10-30 – Discovered a load of additional mysterious chat commands. Left them in a separate post until more info available.
    Update 2012-11-17 – Minor updates for Skype 6

    table.skype { border-width: 1px; border-spacing: 1px; border-style: solid ; border-color: gray; border-collapse: collapse; } table.skype th { border-width: 1px; padding: 1px; border-style: inset; border-color: gray; } table.skype td { border-width: 1px; padding: 1px; border-style: inset; border-color: gray; }

    Commands

    Command Description
    /me [action] Describes an action of the user by printing his name followed by the action.
    /help Shows a list of available commands. It’s incomplete but helps with general administrating tasks.
    /add [skypename] Adds the user skypename to the chat.
    /leave Leave the current chat (only if not creator).
    /topic [newTopic] Sets a new topic to the chat.
    /find [text] Looks for text in the chat history.
    /fa or / Repeats the last search.
    /alertson or /alertson [text] “/alertson text” sets the skype notification to occour on special text in messages. “/alertson” resets it to the default. If an alert is set, every instance of the text will be highlighted in the chat window for easier detection of the alerting lines.
    /alertsoff Turns off all notifications for this chat.
    /history Loads the complete chat history into the active chat window.
    /htmlhistory Generates a HTML file of the chats history and opens it in the browser. Skype 4: not iplemented in this version anymore.
    /clear Clears the chat window.
    /info Shows number and limit of chat participants.
    /call [skypename] Opens a call to skypename.
    /goadmin Enters the administration mode of the chat (only if creator) and adds a small text “Creator” to the user-icon in the chat. I didn’t find so far a way to leave this mode again. According to the Skype documentation the only effect is the “Creator” tag but I’m not so sure about that.
    /get creator Shows the creator of this chat.
    /get role Shows the current role of the user.
    /whois [skypename] Shows some info of the user skypename, for example the current role.
    /setrole [skypename] MASTER | HELPER | USER | LISTENER Sets roles of chat members. See below for more info.
    /kick [skypename] Removes skypename from the chat.
    /kickban [skypename] Removes skypename from the chat and bans him.
    /get guidelines Shows the guidelines of this public chat.
    /set guidelines [text] Sets the guidelines of this public chat.
    /get options Shows the current active options for this chat.
    /set options [[+|-]flag] Sets options for this chat, see below for more info.
    /get [creator|masters|helpers|users|listeners] Shows a list of users in the particular role.
    /setpassword [password] [hint] Sets a password for this public chat, no spaces allowed, and also a password hint in the same command.
    /clearpassword Removes the password for this public chat.
    /set pasword_hint [text] Sets a password hint for this public chat.
    /get password_hint Shows the password hint for this public chat.
    /set password [text] Sets a password for this public chat, no spaces allowed.
    /set banlist [[+|-]mask] Bans members from this public chat.
    /get banlist Shows all users which are banned to this public chat.
    /set allowlist[[+|-]mask] Allows members to this public chat.
    /get allowlist Shows all users which are allowed to this public chat.
    /get uri Skype 4: Gets the URI link for this public chat which can then be sent to contacts or embedded in webpages.
    /eggy ? Has been rumoured as easter-egg but seems to have no effect at all (at least not in recent versions of Skype).
    /undoedit Skype 6: Reverts the last edit of a message.

    Chat roles and privileges

    Straight from the Skype API Documentation.

    Role Description
    CREATOR Member who created the chat. There can be only one creator per chat. Only creator can promote other members to masters.
    MASTER Also known as chat hosts. Masters cannot promote other people to masters.
    HELPER A semi-privileged member. Helpers will not be affected by the USERS_ARE_LISTENERS option. Helpers cannot promote or demote other members.
    USER Regular members who can post messages into the chat.
    LISTENER A demoted member who can only receive messages but not post anything into the chat.
    APPLICANT A member waiting for acceptance into the chat. Member cannot be demoted to applicants once they have been accepted.

    Chat options

    These options are also from the Skype API, I had no chance to test these so far.

    Option Description
    JOINING_ENABLED When this bit is off, new users cannot join the chat. This option has to be enabled before the options JOINERS_BECOME_APPLICANTS and JOINERS_BECOME_LISTENERS can be set. Also, this cannot be disabled while one of the JOINERS_BECOME_xxx options is still set.
    JOINERS_BECOME_APPLICANTS When this bit is on, new users will be able to join the chat but they will be unable to post or receive messages until authorized by one of the chat administrators (CREATOR or MASTER).
    JOINERS_BECOME_LISTENERS When this bit is on, new users will be able to receive message in chat but unable to post until promoted to USER role. Basically a read-only flag for new users.
    HISTORY_DISCLOSED When this bit is off, newly joined members can see chat history prior to their joining. Maximum amount of history backlog available is either 400 messages or 2 weeks of time, depending on which limit is reached first.
    USERS_ARE_LISTENERS Read-only flag for chat members with USER role.
    TOPIC_AND_PIC_LOCKED_FOR_USERS When this bit of options is off, USER level chat members can change chat topic and the topic picture.
    USERS_ARE_WRITERS ? This appeared to me after setting and removing the USERS_ARE_LISTENERS in a chat, but I didn’t recognize some changed behavior to the standard.

    Other Skype trivia

    • If you press different key combinations of 3 letters at once on your keyboard (fast!) you can make some other hidden status-icons appear next to your Skype-image (and in recent versions also in the chat-window itself) in a chat. For example "jkl" or "uio" produce an animated icon where a pencil is broken, "cat" or "dog" make a nice cat appear. Just try around, until now I’ve just found those two icons.

    External Links & Sources

    http://handytechtips.blogspot.com/2008/04/skype-chat-taking-control-of-group-chat.html
    http://vafer.org/blog/20080504113126
    http://support.skype.com/en_US/faq/FA883/I-am-an-advanced-user-who-would-like-to-use-IRC-style-commands-to-moderate-my-chat-How-do-I-do-this
    http://developer.skype.com/accessories
    http://support.skype.com/en_GB/faq/FA10042/What-are-chat-commands-and-roles
    http://forum.skype.com/index.php?showtopic=311671 How To Make Links To Skype Chats On Web Pages And Email