Dienstag, 29. Januar 2013

Tetrepetete, SMS Backup and apkenv updates

Whew, January is pretty much over already, and there haven't been any updates here. So this means here's a short cumulative update of what's happened over the last few weeks:

Tetrepetete
If you are not afraid of falling blocks, and don't mind the lack of colors, give Tetrepetete a try. Not to be confused with a game of a totally different name, this game brings falling blocks of 4 to your N900 and N950/N9. While the full color version is still not available as such, the free greyscale version is up for grabs as .deb on the website. Including a cameo appearance by That Rabbit from That Rabbit Game for no good reason. Play or discuss. Or be productive. Or something.

SMS Backup GUI
Instead of rolling my own solution from scratch, I found the wonderful MeegoSMSBackupRestore project by Tony Wang, which is a command-line tool for Harmattan devices to backup and restore SMS messages (as if that wasn't clear from the application name..). It was missing a GUI, so I've added one. The announcement and download, as well as the Debian source package (.dsc, .tar.gz) are available from an Internet near you. Feel like Git? We have you covered as well.

apkenv updates
If you haven't been watching the apkenv Git repo closely (I know you haven't), you might have missed the Pandora port by crowriot, which - while not being directly useful to Maemo/MeeGo users as such - also brought improvements to the Cut the Rope module, which somehow works now. To be discussed at talk.maemo.org, and patches (as always) welcome.

In other (totally unrelated) news, the thesis is done (yay!).

Sonntag, 23. Dezember 2012

gPodder 3.4.0 for MeeGo 1.2 Harmattan

As promised, following the 2.20.3 release for Maemo 4 and Maemo 5, a new version of gPodder 3 has been released today. This release brings some new improvements to the QML UI that should make scrolling in the episode list faster, as well as align a bit more with the Harmattan UX Guidelines.

gPodder 3.4.0 running on MeeGo 1.2 Harmattan (N9)
As always, updated packages will be available via Nokia Store once the QA process has finished. As there have been problems with apps.formeego.org recently (3.3.0 isn't even out of the staging area yet, after 3 months), we now provide a package of gPodder for MeeGo 1.2 Harmattan on gpodder.org/downloads for those who want to avoid or can't use Nokia Store (you have to enable packages from unknown sources, and you might have to uninstall the previous version if it came from Nokia Store or Apps For MeeGo due to the Aegis security policy). The source and packaging is available in the "harmattan" branch in Git, as has always been the case.

I hope you like the new UI changes. If you are missing the feed update button in the lower left corner, try "pull to refresh" on the podcast list (this avoids accidental updates when pressing the back button twice). I'd like to create a nicer "pull to refresh" implementation, but the limitations of Qt 4's QML Flickable prevent me from creating a better one (if you have a better implementation than gPodder's PullDownHandle, I'd love to hear from you). Scrolling the episode list should now also be faster (than before), and some unnecessary animations were removed in the process.

gPodder 2.20.3 for Maemo 4 and Maemo 5

A new release of gPodder 2.x for Maemo 4 (aka Diablo, N800 + N810) and Maemo 5 (aka Fremantle, N900) is out, fixing YouTube-related issues (again ;).

gPodder 2.20.3 running on Maemo 4 (N810)
Packages have been uploaded to Maemo Extras, but as people have reported problems with the autobuilder, and as maemo.org seems to be moving these days, anyway (to the Hildon Foundation, apparently), we also provide for the first time since.. well, since a very long time I guess.. binary .deb packages for gPodder on Maemo 4 and Maemo 5 :)

gPodder 2.20.3 running on Maemo 5 (N900)
You can find the download links on the gPodder download page - you can directly download gPodder 2.20.3 from the web browser in both OS versions, and choose to open the .deb file with the Application Manager. Be sure to choose the right package for your device (N8x0 users choose the Maemo 4 version, N900 users choose the Maemo 5 version). Enjoy :) Next up: A new release of gPodder 3.x for Harmattan. Soon!

Donnerstag, 13. Dezember 2012

Billboard 1.0.7 available in Nokia Store

A new version of Billboard, the standby screen customizing app for the N9 has been released and is now available from Nokia Store. It brings some nifty features such as in-line color customization, a battery bar and a battery icon:


The full ChangeLog is available on the Billboard website.
Questions and feedback can be left in the support thread on TMO.

Dienstag, 20. November 2012

apkenv 42.1.0 source code release

The compatibility layer for applications packed as .apk (that are running natively and use OpenGL ES) has seen its source code released yesterday. Supports Maemo 5 (Fremantle) and MeeGo 1.2 (Harmattan), which means your N900, N950 and N9 are covered. Documentation is provided in the source, and the wrapper generator scripts are also released. Looking forward to contributions and new modules from the community. Details can be found on the apkenv website.

Dienstag, 13. November 2012

The quick way to USB tethering via SSH on your N9

Here's something obvious (and I'm sure it has been discussed before, I just can't find the link right now), but it might be helpful if you haven't played around with SSH much yet, and your Wi-Fi Hotspot isn't working (the case for me right now). The goal is to get an internet connection over your N9/N950 from a PC (tested with Linux, expected to work with OS X and probably also works on Windows - on Windows you might need something like PuTTY).
  1. Enable developer mode on your device
  2. Connect your device to your computer via USB
  3. Select "SDK mode" when asked for the USB connection type
  4. Use the SDK connection utility, and select USB connection
  5. Note the password displayed in the "Connectivity Details" screen
  6. On your computer, use "ssh -D 9898 developer@192.168.2.15"
  7. Accept the host key question, and enter the password from step 5
  8. You should be greeted by a Busybox prompt "/home/developer $" - leave that open in the terminal window in the background
  9. At this point, a SOCKS proxy server is running on port 9898, and you can use it in any applications supporting a SOCKS proxy (there are even utilities like socksify(1) (Debian package: dante-client) that make generic network applications work through a SOCKS proxy)
  10. To use it in Firefox, go to Edit - Preferences - Advanced - Network - Settings..., then choose "Manual proxy configuration" and set "SOCKS Host:" to localhost and port to 9898 (be sure to disable the proxy again when you want to browse via a normal Wi-Fi/Ethernet connection)
Instead of doing steps 4 and 5, you can set up a permanent password for your "user" account on the N9, and even set up a SSH key on the N9 to avoid having to enter the password. You can make step 6 simpler by adding an entry to your ~/.ssh/config file (on your host) - see ssh_config(5) for details:

Host n9proxy
    HostName 192.168.2.15
    User developer
    DynamicForward 9898

After that, a "ssh n9proxy" (possibly followed by the developer password) is all you need to set up the proxy. This method is arguably easier (and definitely safer) than using the Wi-Fi hotspot, and instead of using up battery on your N9, it gets charged via the USB port while you are using it.

By the way: You will have to manually connect your N9 to your mobile internet connection, this won't happen automatically.

Dienstag, 23. Oktober 2012

Dalvik "Hello World" on Harmattan (in a chroot)

Here's a quick and boring tutorial on how to get a Java "Hello World" application running on the Dalvik VM of Nitdroid within Harmattan. This requires the Nitdroid Open Mode Kernel (might or might not work with Inception), all Nitdroid files and a bit of patience. This might brick your device or worse, and require a reflash at best. As you can see from the screenshot below, it's not that exciting ;)
  1. If you want to avoid the Open Mode Warning on each boot, remove the disclaimer from the cal area (this can only be done while in closed mode, as the cal area becomes read-only when flashing open mode until closed mode is re-flashed. This is also the reason why you can't set a device lock code in open mode - the lock code is saved in the cal area) - this is an optional step, and just a cosmetic fix.
  2. Flash the Nitdroid Open Mode Kernel (be sure to read the "Known limitations" on that post) - this works both on the N950 and N9.
  3. Boot into Harmattan open mode and replace the preinit script to allow booting into Nitdroid (again, read and understand the warnings on that post)
  4. Then, download a Nitdroid tarball (the latest is alpha 5, but I had better luck with alpha 4) and extract it to /home/nitdroid/ - the post explains the steps in great detail, including the kernel flashing and preinit replacement
  5. Reboot into Nitdroid (this might be optional, but do it just to check if your Nitdroid installation is working)
  6. Reboot into Harmattan again - the following commands are all carried out as root user inside Harmattan (using "devel-su")
  7. Bind mount /dev/ and /sys/ into Nitdroid:
    mount --bind /dev/ /home/nitdroid/dev/
    mount --bind /sys/ /home/nitdroid/sys/
  8. chroot into the Nitdroid hierarchy:
    /usr/sbin/chroot /home/nitdroid/
  9. Set some environment variables (not all of them might be needed, you can find them in "setup the global environment" of init.rc -- save these commands into "setupenv.sh" or something in /home/nitdroid/ and save yourself some typing):
    export PATH=/system/bin:/system/xbin:/usr/sbin:/usr/bin:/sbin:/bin
    export LD_LIBRARY_PATH=/system/lib
    export ANDROID_BOOTLOGO=1
    export ANDROID_ROOT=/system
    export ANDROID_ASSETS=/system/app
    export ANDROID_DATA=/data
    export EXTERNAL_STORAGE=/mnt/sdcard
    export ASEC_MOUNTPOINT=/mnt/asec
    export LOOP_MOUNTPOINT=/mnt/obb
    export BOOTCLASSPATH=/system/framework/core.jar:/system/framework/core-junit.jar:/system/framework/bouncycastle.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/android.policy.jar:/system/framework/services.jar:/system/framework/apache-xml.jar:/sys
  10. Start the Dalvik VM:
    / # /system/bin/dalvikvm
    Dalvik VM requires a class name
Ok, great - 10 steps to start the Dalvik VM, but I promised a Hello World. For that, you need the Android SDK (and the corresponding Java JDK) and follow the "Basic Dalvik VM Invocation" instructions (steps 1 to 6 on your host computer, from step 6 on your Harmattan device):
  1. With your favorite editor (mine is vim), create a file "Foo.java" with the following content:
    public class Foo {
        public static void main(String [] args) {
            System.out.println("Hello, world");
        }
    }
  2. Compile it:
    javac Foo.java
  3. Use the "dx" utility (from the Android SDK) to package the Foo.class (generated by javac) into a .jar
    dx --dex --output=foo.jar Foo.class
  4. Bonus exercise: "less" the foo.jar file to see its contents:
    % less foo.jar
    Archive:  foo.jar
     Length   Method    Size  Cmpr    Date    Time   CRC-32   Name
    --------  ------  ------- ---- ---------- ----- --------  ----
          72  Defl:N       70   3% 2012-10-23 15:51 1294a38f  META-INF/MANIFEST.MF
         732  Defl:N      404  45% 2012-10-23 15:51 b6e3654e  classes.dex
    --------          -------  ---                            -------
         804              474  41%                            2 files
  5. Copy this over to your Harmattan device (assuming USB Networking + Developer Mode + "user" access, "developer" should also work):
    scp foo.jar user@192.168.2.15:
  6. SSH into your Harmattan device, become root (devel-su) and copy the .jar file into the Nitdroid hierarchy:
    cp /home/user/foo.jar /home/nitdroid/
  7. chroot into Nitdroid again and set up the environment (see above)
  8. Finally, run Dalvik VM, telling it to run the class "Foo" and using a classpath of "foo.jar":
    / # /system/bin/dalvikvm -cp foo.jar Foo
  9. ...