UrukDroid 0.4.2 (Android) on ext4, full r/w access, su (root), req. SDE

5

Procedure and programs from $aur0n at xda-developers.com

For your convenience, we are hosting a copy of the files here. All files are verified with MD5 checksum.

This is instruction how to install modified Archos Android system, using SDE from Archos.

Features:

  • ext4 (much faster than ext3, can store files >4GB comparing to FAT32)
  • full r/w access to every part of system
  • root (su + superuser.apk) out of the box
  • new services like: samba, sshd
  • possibility to remove some google/Archos apps
  • swap memory by default or when you need it
  • no 300MB limit for apps (and no faulty app2sd required)
  • you can have SD card Class 8/10 – and that’s much faster storage than internal flash (inside is something equal class 6 or 4)
  • some new kernel modules (usbserial, ntfs, 3G modems etc.)
  • iptables, DVB-T support
  • updated modules, firmware (like WiFi)

Warning

  • Be aware that this modification requires SDE and probably some Linux knowledge.
  • By doing described below steps you probably can’t brick your Archos – but do it on your own risk.
  • Root access on your devices makes it less secure form malicious software (use more head – less fingers )

Known problems:

  • Some reported problems with waking up from soft sleep on A70H

Before you start:

  • Read about SDE on forum, read SDE warning on Archos page before install
  • Install some terminal emulator from Market (eg. "Android Terminal Emulator")
  • You should have 2.0.71 already installed (I’m not sure if it’s required but only with that configuration tested)
  • All operations described here, are done on Linux or Android and should be done from root user (you can switch to that user in terminal by typing "su" or "sudo su" command)
  • If you don’t have Linux on your PC – find any recent Rescue CD, Live CD or Virtual disk (VirtualBox or VMware) – distributions does not matter. If you don’t know what to choose – get Rescue CD from above link.
  • This method REQUIRES 2GB+SDHC (SD)

Step one

In this step we will do:

  1. download required data
  2. partition SD card
  3. format SD card

Put SDcard into Archos, boot stock OS. Format SDCard (Settings->Storage/Memory->SD Card).

Download UrukDroid-0.4.2-rootfs.rar, UrukDroid-0.4.2-kernel.rar (links to files are on the end of this post) on SDcard (directly on Archos to /mnt/storage/sdcard, on with help of PC and transfer over USB). For A70H do the same steps for your HD.

  • Boot your Rescue CD
  • Choose "3) SystemRescueCD: framebuffer console in high resolution"
  • If asked about keyboard – hit enter
  • Booting should finish with prompt "root@syscresccd /root %"

Connect your Archos over USB. And check with "dmesg | tail" command if it’s visible. Should be something like this:

root@sysresccd /root % dmesg|tail -15

[ 2375.988865] scsi 10:0:0:0: Direct-Access ARCHOS A70S 0000 PQ: 0 ANSI: 2

[ 2375.989353] scsi 10:0:0:1: Direct-Access ARCHOS A70S 0000 PQ: 0 ANSI: 2

[ 2375.990091] sd 10:0:0:0: Attached scsi generic sg2 type 0

[ 2375.990254] sd 10:0:0:1: Attached scsi generic sg3 type 0

[ 2376.014479] sd 10:0:0:0: [sdb] Attached SCSI removable disk

[ 2376.017719] sd 10:0:0:1: [sdc] Attached SCSI removable disk

[ 2394.469096] sd 10:0:0:0: [sdb] 14581760 512-byte logical blocks: (7.46 GB/6.95 GiB)

[ 2394.471344] sd 10:0:0:1: [sdc] 31275008 512-byte logical blocks: (16.0 GB/14.9 GiB)

[ 2394.472714] sd 10:0:0:0: [sdb] Assuming drive cache: write through

[ 2394.473714] sd 10:0:0:1: [sdc] Assuming drive cache: write through

[ 2394.476714] sd 10:0:0:0: [sdb] Assuming drive cache: write through

[ 2394.476722] sdb:

[ 2394.480713] sd 10:0:0:1: [sdc] Assuming drive cache: write through

[ 2394.480721] sdc: sdb1

[ 2394.485349] sdc1

You can see above 16.0GB card as sdc – so our device to work on is /dev/sdc

Copy and extract files from SD Card.

Code:
cd /tmp

mkdir sdcard

mount /dev/sdc1 /tmp/sdcard

rar x sdcard/UrukDroid-0.4.2-kernel.rar

rar x sdcard/UrukDroid-0.4.2-rootfs.rar

umount /tmp/sdcard

This step log

Code:
root@sysresccd /root % cd /tmp

root@sysresccd /tmp % mkdir sdcard

root@sysresccd /tmp % mount /dev/sdc1 sdcard

root@sysresccd /tmp % ls sdcard

UrukDroid-0.4.1-kernel.rar  UrukDroid-0.4.2-rootfs.rar

root@sysresccd /tmp % rar x sdcard/UrukDroid-0.4.2-kernel.rar



RAR 3.80   Copyright (c) 1993-2008 Alexander Roshal   16 Sep 2008

Shareware version         Type RAR -? for help





Extracting from sdcard/UrukDroid-0.4.2-kernel.rar



Extracting  zImage                                                    OK

Extracting  initramfs.cpio.gz                                         OK

All OK

root@sysresccd /tmp % rar x sdcard/UrukDroid-0.4.2-rootfs.rar



RAR 3.80   Copyright (c) 1993-2008 Alexander Roshal   16 Sep 2008

Shareware version         Type RAR -? for help





Extracting from sdcard/UrukDroid-0.4.2-rootfs.rar



Extracting  UrukDroid-copy_data.cmd                                   OK

Extracting  UrukDroid-rootfs-upgrade.tgz                              OK

All OK

root@sysresccd /tmp % umount sdcard

Create three primary partition on SD card with "fdisk" partitioning tool. We need to do it in this order second partition, third and first.

  • 1st partition (VFAT), all free space
  • 2th partition (EXT4), 512MB
  • 3th partition (EXT4), 1GB

fdisk options (it’s interactive):

  • p (print existing partitions)
  • d n (delete partition by it’s number 1,2,3 etc)
  • n (create new partition, you will be asked about few details)
    • type (primary, secondary) – go primary,
    • number (use THIS order 2,3,1),
    • start sector (just enter will set first possible),
    • size (you can give it as +1M, +2G etc) – give for partition number two +512M, number three +1G and for the partition number one just push enter
  • w (write all changes, until you give this command no changes are made on disk physically)

So with fdisk:

  • delete all existing partitions (d),
  • create first primary partition but NUMBER IT 2, push enter, give +512M,
  • create second primary partition but NUMBER IT 3, push enter, give +1G,
  • create third primary partition but NUMBER IT 1, push enter, push enter
  • write all changes (w)

Session log for this steps you can find below:

Code:
root@sysresccd /tmp % fdisk /dev/sdc



Command (m for help): d

Selected partition 1



Command (m for help): n

Command action

   e   extended

   p   primary partition (1-4)

p

Partition number (1-4, default 1): 2

First sector (2048-31275007, default 2048):

Using default value 2048

Last sector, +sectors or +size{K,M,G} (2048-31275007, default 31275007): +512M



Command (m for help): n

Command action

   e   extended

   p   primary partition (1-4)

p

Partition number (1-4, default 1): 3

First sector (1050624-31275007, default 1050624):

Using default value 1050624

Last sector, +sectors or +size{K,M,G} (1050624-31275007, default 31275007): +1G



Command (m for help): n

Command action

   e   extended

   p   primary partition (1-4)

p

Partition number (1-4, default 1): 1

First sector (3147776-31275007, default 3147776):

Using default value 3147776

Last sector, +sectors or +size{K,M,G} (3147776-31275007, default 31275007):

Using default value 31275007



Command (m for help): w

The partition table has been altered!



Calling ioctl() to re-read partition table.

Syncing disks.

root@sysresccd /tmp %

Format first partition as VFAT (advanced users may use EXT4) and second and third partitions as EXT4 – but without huge_file feature (it won’t work with this feature since it requires special kernel option that brakes compatibility with existing modules).

Code:
mkfs.vfat /dev/sdc1

mkfs.ext4 -O ^huge_file /dev/sdc2

mkfs.ext4 -O ^huge_file /dev/sdc3

Session log for this step

Code:
root@sysresccd /tmp % mkfs.vfat /dev/sdc1

mkfs.vfat 3.0.9 (31 Jan 2010)

root@sysresccd /tmp % mkfs.ext4 -O ^huge_file /dev/sdc2

mke2fs 1.41.12 (17-May-2010)

Filesystem label=

OS type: Linux

Block size=4096 (log=2)

Fragment size=4096 (log=2)

Stride=0 blocks, Stripe width=0 blocks

32768 inodes, 131072 blocks

6553 blocks (5.00%) reserved for the super user

First data block=0

Maximum filesystem blocks=134217728

4 block groups

32768 blocks per group, 32768 fragments per group

8192 inodes per group

Superblock backups stored on blocks:

        32768, 98304



Writing inode tables: done

Creating journal (4096 blocks): done

Writing superblocks and filesystem accounting information: done



This filesystem will be automatically checked every 36 mounts or

180 days, whichever comes first.  Use tune2fs -c or -i to override.

root@sysresccd /tmp % mkfs.ext4 -O ^huge_file /dev/sdc3

mke2fs 1.41.12 (17-May-2010)

Filesystem label=

OS type: Linux

Block size=4096 (log=2)

Fragment size=4096 (log=2)

Stride=0 blocks, Stripe width=0 blocks

65536 inodes, 262144 blocks

13107 blocks (5.00%) reserved for the super user

First data block=0

Maximum filesystem blocks=268435456

8 block groups

32768 blocks per group, 32768 fragments per group

8192 inodes per group

Superblock backups stored on blocks:

        32768, 98304, 163840, 229376



Writing inode tables: done

Creating journal (8192 blocks): done

Writing superblocks and filesystem accounting information: done



This filesystem will be automatically checked every 21 mounts or

180 days, whichever comes first.  Use tune2fs -c or -i to override.

Step two

In this step we will do:

  1. copy UrukDroid upgrade files
  2. flash kernel, initramfs

Mount second partition of SD/HD and copy there install/upgrade file (UrukDroid-rootfs-upgrade.tgz). If you want UrukDroid to copy already installed apps from stock OS, copy also this file (UrukDroid-copy_data.cmd).

Code:
cd /tmp

mount /dev/sdc2 sdcard

mv UrukDroid-rootfs-upgrade.tgz sdcard/

mv UrukDroid-copy_data.cmd sdcard/

sync

umount sdcard

Session log:

Code:
root@sysresccd /tmp % mount /dev/sdc2 sdcard

root@sysresccd /tmp % mv UrukDroid-rootfs-upgrade.tgz sdcard/

root@sysresccd /tmp % mv UrukDroid-copy_data.cmd sdcard/

root@sysresccd /tmp % sync

root@sysresccd /tmp % umount sdcard

Unplug Archos from PC and power it off.

Flash initramfs.cpio.gz and zImage from SDE boot menu:

  • power on Archos70, hold up/+ volume key until you see "Archos AXXXX – Boot Menu",
  • choose "Recovery System"->"Developer Edition Menu"->"Flash Kernel and Initramfs",
  • connect Archos to PC

Check if temporary drive from Archos is visible "dmesg | tail"

Code:
root@sysresccd /tmp % dmesg

[ 5479.087102] scsi 13:0:0:0: Direct-Access     ARCHOS   A70S             0000 PQ: 0 ANSI: 2

[ 5479.087584] scsi 13:0:0:1: Direct-Access     ARCHOS   A70S             0000 PQ: 0 ANSI: 2

[ 5479.088428] sd 13:0:0:0: Attached scsi generic sg2 type 0

[ 5479.088871] sd 13:0:0:1: Attached scsi generic sg3 type 0

[ 5479.095334] sd 13:0:0:0: [sdb] 262144 512-byte logical blocks: (134 MB/128 MiB)

[ 5479.097572] sd 13:0:0:1: [sdc] Attached SCSI removable disk

[ 5479.098488] sd 13:0:0:0: [sdb] Write Protect is off

[ 5479.098493] sd 13:0:0:0: [sdb] Mode Sense: 03 00 00 00

[ 5479.098496] sd 13:0:0:0: [sdb] Assuming drive cache: write through

[ 5479.100956] sd 13:0:0:0: [sdb] Assuming drive cache: write through

[ 5479.100967]  sdb: sdb1

[ 5479.104976] sd 13:0:0:0: [sdb] Assuming drive cache: write through

[ 5479.104982] sd 13:0:0:0: [sdb] Attached SCSI removable disk

Copy initramfs.cpio.gz and zImage to Archos

Code:
cd /tmp

mount /dev/sdb1 sdcard

cp initramfs.cpio.gz zImage sdcard/

umount sdcard

Session log:

Code:
root@sysresccd /tmp % cd /tmp

root@sysresccd /tmp % mount /dev/sdb1 sdcard

root@sysresccd /tmp % cp initramfs.cpio.gz zImage sdcard/

root@sysresccd /tmp % umount sdcard
  • Remove USB cable from device.
  • press Archos power button shortly (to confirm OK on screen).
  • Press once again power shortly (Archos will reboot) and hold up/+ volume until "Boot Menu" -> choose "Developer Edition".

You should see for few minutes (give it 10-15 minutes to be sure) "Initramfs: Loading …", later (depend on, if you choose to copy your old apps) "Initramfs: Copying /data …" and later on "Rootfs: Loading…"

If your system hangs on "Initramfs: Loading…" – you did something wrong in first step. Make sure ext4 is without "huge_file" feature. Check if files are copied correctly.

After system boots up you should see all yours installed apps etc. – it should look like your Archos .

Congratulations!

Step tree: optional

If you want GoogleMarket (and required component to make it work) you can install UrukDroid update – UrukDroid-0.4.2-GoogleMarket.rar.

Before you do that, you cannot have installed any other version of Market. If you apply this update, on previously installed market/vending etc. – it won’t work.

Download archive end extract RAR in root directory of your Archos (/ directory). You can do it on PC or inside Archos – it’s up to you. Reboot device.

There are plenty of other tools that helps to do that task – but all of them install this files in user space and with some unnecessary "hacks".

Files (UrukDroid-0.4.2):

From Megaupload.com

UrukDroid-0.4.2-rootfs.rar (md5sum: 37508b7c03597ea489e7760c3f8296d6)

UrukDroid-0.4.2-kernel.rar (md5sum: 884c6e6cfaf993eed3aa3c05aaa580dd)

UrukDroid-0.4.2-GoogleMarket.zip (md5sum: 4f21288981bb3bd303b717f5475a7f2c)

Files (UrukDroid-0.4.1):

From Megaupload.com

UrukDroid-0.4.1-rootfs.rar (md5sum: 31c5a10104a88857943da48c82568ad9)

UrukDroid-0.4.1-kernel.rar (md5sum: 2670561484ef12115e7d2449aeda9dcc)

Credits

Special thanks also go for supporters: Andrew, Scott, Serguei, Jean Luc, Chirayu, Scott, Tom and Sarju

5 COMMENTS