?

Log in

No account? Create an account
Ultimate Guide Bricking a Karotz - epicmonkey
June 2nd, 2012
09:38 pm
[User Picture]

[Link]

Previous Entry Share Next Entry
Ultimate Guide Bricking a Karotz

Ultimate guide bricking a Karotz

WARNING: DON’T TRY THIS AT HOME UNLESS YOU UNDERSTAND EXACTLY WHAT YOU ARE DOING.

SHUT UP AND SHOW ME INSTRUCTIONS HOW TO ROOT KAROTZ AND HOW TO BRICK IT.

After 8 or so months, I decided to write a separate post how to root karotz.

cpuinfo

Processor       : ARM920T rev 0 (v4l)
BogoMIPS        : 201.93
Features        : swp half
CPU implementer : 0x41
CPU architecture: 4T
CPU variant     : 0x1
CPU part        : 0x920
CPU revision    : 0

Hardware        : RABBITV3 BY PRAGMATEC
Revision        : 0000
Serial          : 0000000000000000

dmesg

Linux version 2.6.28-pragmatec -g53e06b1-dirty (dcoutherut@dcoutherut-desktop) (gcc version 4.3.5 
(Buildroot 2010.11) ) #1 Tue May 31 17:50:18 CEST 2011
CPU: ARM920T [41129200] revision 0 (ARMv4T), cr=c0007177
CPU: VIVT data cache, VIVT instruction cache
Machine: RABBITV3 BY PRAGMATEC
Converting old-style param struct to taglist
ATAG_INITRD is deprecated; please update your bootloader.
Memory policy: ECC disabled, Data cache writeback
On node 0 totalpages: 16384
free_area_init_node: node 0, pgdat c049b998, node_mem_map c04d5000
  Normal zone: 128 pages used for memmap
  Normal zone: 0 pages reserved
  Normal zone: 16256 pages, LIFO batch:3
  Movable zone: 0 pages used for memmap
CPU S3C2440A (id 0x32440001)
S3C244X: core 405.000 MHz, memory 135.000 MHz, peripheral 67.500 MHz
S3C24XX Clocks, (c) 2004 Simtec Electronics
CLOCK: Slow mode (1.500 MHz), fast, MPLL on, UPLL on
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 16256
Kernel command line: initrd=0x31800000,0x00500000 root=/dev/ram rw init=/linuxrc quiet mem=65536K 
devfs=udev  k_nbclick=1
irq: clearing pending ext status 0009f6f0
irq: clearing pending ext status 00080000
irq: clearing subpending status 000001b6
irq: clearing subpending status 00000092
PID hash table entries: 256 (order: 8, 1024 bytes)
timer tcon=00000000, tcnt dbb9, tcfg 00000200,00000000, usec 000016c1
Console: colour dummy device 80x30
console [tty0] enabled
Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
Memory: 64MB = 64MB total
Memory: 54836KB available (4324K code, 439K data, 144K init)
Calibrating delay loop... 201.93 BogoMIPS (lpj=504832)
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
net_namespace: 288 bytes
NET: Registered protocol family 16
S3C2440: Initialising architecture
S3C2440: IRQ Support
S3C24XX DMA Driver, (c) 2003-2004,2006 Simtec Electronics
DMA channel 0 at c4808000, irq 33
DMA channel 1 at c4808040, irq 34
DMA channel 2 at c4808080, irq 35
DMA channel 3 at c48080c0, irq 36
S3C244X: Clock Support, DVS off
s3c24xx-pwm s3c24xx-pwm.0: tin at 33750000, tdiv at 33750000, tin=divclk, base 0
s3c24xx-pwm s3c24xx-pwm.1: tin at 33750000, tdiv at 33750000, tin=divclk, base 8
s3c24xx-adc s3c24xx-adc: attached adc driver
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
cfg80211: Using static regulatory domain info
cfg80211: Regulatory domain: US
        (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
        (2402000 KHz - 2472000 KHz @ 40000 KHz), (600 mBi, 2700 mBm)
        (5170000 KHz - 5190000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)
        (5190000 KHz - 5210000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)
        (5210000 KHz - 5230000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)
        (5230000 KHz - 5330000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)
        (5735000 KHz - 5835000 KHz @ 40000 KHz), (600 mBi, 3000 mBm)
cfg80211: Calling CRDA for country: US
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 2048 (order: 2, 16384 bytes)
TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
TCP: Hash tables configured (established 2048 bind 2048)
TCP reno registered
NET: Registered protocol family 1
checking if image is initramfs...it isn't (no cpio magic); looks like an initrd
Freeing initrd memory: 5120K
Installing knfsd (copyright (C) 1996 okir@monad.swb.de).
NTFS driver 2.1.29 [Flags: R/W].
fuse init (API version 7.10)
yaffs May 31 2011 17:43:41 Installing. 
msgmni has been set to 117
alg: No test for stdrng (krng)
io scheduler noop registered
io scheduler anticipatory registered (default)
io scheduler deadline registered
io scheduler cfq registered
fb0: s3c2410fb frame buffer device
Rabbit Ears Driver - pwm0 request OK
Rabbit Ears Driver - pwm1 request OK
Rabbit Ears Driver V2.3 - successfully loaded
Rabbit Button Driver V1.3 - successfully loaded
Rabbit poweron Driver V1.0 - successfully loaded
s3c2440-uart.0: s3c2410_serial0 at MMIO 0x50000000 (irq = 70) is a S3C2440
s3c2440-uart.1: s3c2410_serial1 at MMIO 0x50004000 (irq = 73) is a S3C2440
s3c2440-uart.2: s3c2410_serial2 at MMIO 0x50008000 (irq = 76) is a S3C2440
brd: module loaded
loop: module loaded
nbd: registered device at major 43
usbcore: registered new interface driver ub
rtl8150: v0.6.2 (2004/08/27):rtl8150 based usb-ethernet driver
usbcore: registered new interface driver rtl8150
usbcore: registered new interface driver MOSCHIP usb-ethernet driver
usbcore: registered new interface driver rt2500usb
usbcore: registered new interface driver rt73usb
Linux video capture interface: v2.00
initializing s3c2440 camera interface......
s3c2440 camif init done
Loading OV7675 driver 8. get_page at init. default:640*480......
OV7675 address 0x42, manufacture ID 0x7FA2, expect 0x7FA2
OV7675 address 0x42, product ID 0x7673, expect 0x7673
init_image_buffer start
init_image_buffer 1. size : 614400  ; order : 8
init_image_buffer ok
OV7675 init done!
Driver 'sd' needs updating - please use bus_type methods
S3C24XX NAND Driver, (c) 2004 Simtec Electronics
s3c2440-nand s3c2440-nand: Tacls=3, 22ns Twrph0=7 51ns, Twrph1=3 22ns
NAND device: Manufacturer ID: 0xad, Chip ID: 0xda (Hynix NAND 256MiB 3,3V 8-bit)
NAND_ECC_NONE selected by board driver. This is not recommended !!
Scanning device for bad blocks
Creating 8 MTD partitions on "NAND 256MiB 3,3V 8-bit":
0x00000000-0x00040000 : "bootloader"
0x00040000-0x00340000 : "Kernel"
0x00340000-0x00840000 : "ramdisk"
0x00840000-0x00b40000 : "kernel rescue"
0x00c40000-0x01140000 : "ramdisk rescue"
0x01240000-0x01540000 : "yaffs rescue"
0x01540000-0x0ff40000 : "yaffs"
0x0ff40000-0x10000000 : "mystery box"
usbmon: debugfs is not available
ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
ohci_hcd: block sizes: ed 64 td 64
s3c2410-ohci s3c2410-ohci: s3c2410_start_hc:
s3c2410-ohci s3c2410-ohci: S3C24XX OHCI
drivers/usb/core/inode.c: creating file 'devices'
drivers/usb/core/inode.c: creating file '001'
s3c2410-ohci s3c2410-ohci: new USB bus registered, assigned bus number 1
s3c2410-ohci s3c2410-ohci: irq 42, io mem 0x49000000
s3c2410-ohci s3c2410-ohci: created debug files
s3c2410-ohci s3c2410-ohci: OHCI controller state
s3c2410-ohci s3c2410-ohci: OHCI 1.0, NO legacy support registers
s3c2410-ohci s3c2410-ohci: control 0x083 HCFS=operational CBSR=3
s3c2410-ohci s3c2410-ohci: cmdstatus 0x00000 SOC=0
s3c2410-ohci s3c2410-ohci: intrstatus 0x00000004 SF
s3c2410-ohci s3c2410-ohci: intrenable 0x8000005a MIE RHSC UE RD WDH
s3c2410-ohci s3c2410-ohci: hcca frame #0005
s3c2410-ohci s3c2410-ohci: roothub.a 02001202 POTPGT=2 NOCP NPS NDP=2(2)
s3c2410-ohci s3c2410-ohci: roothub.b 00000000 PPCM=0000 DR=0000
s3c2410-ohci s3c2410-ohci: roothub.status 00008000 DRWE
s3c2410-ohci s3c2410-ohci: roothub.portstatus [0] 0x00010101 CSC PPS CCS
s3c2410-ohci s3c2410-ohci: roothub.portstatus [1] 0x00000100 PPS
usb usb1: default language 0x0409
usb usb1: uevent
usb usb1: usb_probe_device
usb usb1: configuration #1 chosen from 1 choice
usb usb1: adding 1-0:1.0 (config #1, interface 0)
usb 1-0:1.0: uevent
hub 1-0:1.0: usb_probe_interface
hub 1-0:1.0: usb_probe_interface - got id
hub 1-0:1.0: USB hub found
s3c2410-ohci s3c2410-ohci: s3c2410_hub_control(c3865c00,0xa006,0x2900,0x0000,c38178d0,000f)
hub 1-0:1.0: 2 ports detected
hub 1-0:1.0: standalone hub
hub 1-0:1.0: no power switching (usb 1.0)
hub 1-0:1.0: no over-current protection
hub 1-0:1.0: power on to power good time: 4ms
s3c2410-ohci s3c2410-ohci: s3c2410_hub_control(c3865c00,0xa000,0x0000,0x0000,c3817880,0004)
hub 1-0:1.0: local power source is good
hub 1-0:1.0: trying to enable port power on non-switchable hub
s3c2410-ohci s3c2410-ohci: s3c2410_hub_control(c3865c00,0x2303,0x0008,0x0001,c3817830,0000)
s3c2410-ohci s3c2410-ohci: SetPortFeat: POWER
s3c2410-ohci s3c2410-ohci: CTRL: TypeReq=0x2303 val=0x8 idx=0x1 len=0 ==> -22
s3c2410-ohci s3c2410-ohci: s3c2410_hub_control(c3865c00,0x2303,0x0008,0x0002,c3817830,0000)
s3c2410-ohci s3c2410-ohci: SetPortFeat: POWER
s3c2410-ohci s3c2410-ohci: CTRL: TypeReq=0x2303 val=0x8 idx=0x2 len=0 ==> -22
drivers/usb/core/inode.c: creating file '001'
usb usb1: New USB device found, idVendor=1d6b, idProduct=0001
usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
usb usb1: Product: S3C24XX OHCI
usb usb1: Manufacturer: Linux 2.6.28-pragmatec -g53e06b1-dirty ohci_hcd
usb usb1: SerialNumber: s3c24xx
usbcore: registered new interface driver usblp
usbcore: registered new interface driver cdc_wdm
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
usbcore: registered new interface driver usbserial
USB Serial support registered for generic
usbcore: registered new interface driver usbserial_generic
usbserial: USB Serial Driver core
USB Serial support registered for cp2101
usbcore: registered new interface driver cp2101
cp2101: v0.07:Silicon Labs CP2101/CP2102 RS232 serial adaptor driver
USB Serial support registered for DeLorme Earthmate USB
USB Serial support registered for HID->COM RS232 Adapter
USB Serial support registered for Nokia CA-42 V2 Adapter
usbcore: registered new interface driver cypress
cypress_m8: v1.09:Cypress USB to Serial Driver
USB Serial support registered for FTDI USB Serial Device
usbcore: registered new interface driver ftdi_sio
ftdi_sio: v1.4.3:USB FTDI Serial Converters Driver
s3c2410_udc: debugfs dir creation failed -19
s3c2440-usbgadget s3c2440-usbgadget: S3C2440: increasing FIFO to 128 bytes
g_serial gadget: Gadget Serial v2.4
g_serial gadget: g_serial ready
mice: PS/2 mouse device common for all mice
S3C24XX RTC, (c) 2004,2006 Simtec Electronics
s3c2410-rtc s3c2410-rtc: rtc disabled, re-enabling
s3c2410-rtc s3c2410-rtc: rtc core: registered s3c as rtc0
i2c /dev entries driver
s3c2440-i2c s3c2440-i2c: slave address 0x10
s3c2440-i2c s3c2440-i2c: bus frequency set to 383 KHz
s3c2440-i2c s3c2440-i2c: i2c-0: S3C I2C adapter
hwmon - probing
S3C2410 Watchdog Timer, (c) 2004 Simtec Electronics
s3c2410-wdt s3c2410-wdt: watchdog inactive, reset disabled, irq enabled
s3c2410-ohci s3c2410-ohci: s3c2410_hub_control(c3865c00,0xa300,0x0000,0x0001,c3821dc0,0004)
s3c2410-ohci s3c2410-ohci: GetStatus roothub.portstatus [0] = 0x00010101 CSC PPS CCS
s3c2410-ohci s3c2410-ohci: GetPortStatus(1)
hub 1-0:1.0: port 1: status 0101 change 0001
s3c2410-ohci s3c2410-ohci: s3c2410_hub_control(c3865c00,0x2301,0x0010,0x0001,c3821e18,0000)
s3c2410-ohci s3c2410-ohci: s3c2410_hub_control(c3865c00,0xa300,0x0000,0x0002,c3821dc0,0004)
s3c2410-ohci s3c2410-ohci: GetPortStatus(2)
usbcore: registered new interface driver hiddev
usbcore: registered new interface driver usbhid
usbhid: v2.6:USB HID core driver
Advanced Linux Sound Architecture Driver Version 1.0.18rc3.
ASoC version 0.13.2
S3C24XX_UDA134X SoC Audio driver
UDA134X SoC Audio Codec
uda134x_write reg: 08, value:40
uda134x_write reg: 08, value:00
uda134x_write reg: 02, value:02
uda134x_write reg: 04, value:10
asoc: UDA134X <-> s3c24xx-i2s mapping ok
ALSA device list:
  #0: S3C24XX_UDA134X (UDA134X)
TCP cubic registered
NET: Registered protocol family 17
NET: Registered protocol family 15
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
RAMDISK: Compressed image found at block 0
VFS: Mounted root (cramfs filesystem) readonly.
Freeing init memory: 144K
hub 1-0:1.0: state 7 ports 2 chg 0002 evt 0000
s3c2410-ohci s3c2410-ohci: s3c2410_hub_control(c3865c00,0xa300,0x0000,0x0001,c3871dc0,0004)
s3c2410-ohci s3c2410-ohci: GetPortStatus(1)
hub 1-0:1.0: port 1, status 0101, change 0000, 12 Mb/s
s3c2410-ohci s3c2410-ohci: s3c2410_hub_control(c3865c00,0x2303,0x0004,0x0001,c3871d58,0000)
s3c2410-ohci s3c2410-ohci: s3c2410_hub_control(c3865c00,0xa300,0x0000,0x0001,c3871d00,0004)
s3c2410-ohci s3c2410-ohci: GetStatus roothub.portstatus [0] = 0x00100103 PRSC PPS PES CCS
s3c2410-ohci s3c2410-ohci: GetPortStatus(1)
s3c2410-ohci s3c2410-ohci: s3c2410_hub_control(c3865c00,0x2301,0x0014,0x0001,c3871d58,0000)
usb 1-1: new full speed USB device using s3c2410-ohci and address 2
s3c2410-ohci s3c2410-ohci: s3c2410_hub_control(c3865c00,0x2303,0x0004,0x0001,c3871d58,0000)
s3c2410-ohci s3c2410-ohci: s3c2410_hub_control(c3865c00,0xa300,0x0000,0x0001,c3871d00,0004)
s3c2410-ohci s3c2410-ohci: GetStatus roothub.portstatus [0] = 0x00100103 PRSC PPS PES CCS
s3c2410-ohci s3c2410-ohci: GetPortStatus(1)
s3c2410-ohci s3c2410-ohci: s3c2410_hub_control(c3865c00,0x2301,0x0014,0x0001,c3871d58,0000)
usb 1-1: ep0 maxpacket = 8
usb 1-1: uevent
usb 1-1: usb_probe_device
usb 1-1: configuration #1 chosen from 1 choice
usb 1-1: adding 1-1:1.0 (config #1, interface 0)
usb 1-1:1.0: uevent
hub 1-1:1.0: usb_probe_interface
hub 1-1:1.0: usb_probe_interface - got id
hub 1-1:1.0: USB hub found
hub 1-1:1.0: 4 ports detected
hub 1-1:1.0: standalone hub
hub 1-1:1.0: individual port power switching
hub 1-1:1.0: individual port over-current protection
hub 1-1:1.0: power on to power good time: 100ms
hub 1-1:1.0: local power source is good
hub 1-1:1.0: enabling power on all ports
drivers/usb/core/inode.c: creating file '002'
usb 1-1: New USB device found, idVendor=0451, idProduct=2046
usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
hub 1-0:1.0: state 7 ports 2 chg 0000 evt 0002
s3c2410-ohci s3c2410-ohci: s3c2410_hub_control(c3865c00,0xa300,0x0000,0x0001,c3871dc0,0004)
s3c2410-ohci s3c2410-ohci: GetPortStatus(1)
hub 1-1:1.0: port 2: status 0101 change 0001
hub 1-1:1.0: port 3: status 0101 change 0001
hub 1-1:1.0: state 7 ports 4 chg 000c evt 0000
hub 1-1:1.0: port 2, status 0101, change 0000, 12 Mb/s
usb 1-1.2: new full speed USB device using s3c2410-ohci and address 3
usb 1-1.2: default language 0x0409
usb 1-1.2: uevent
usb 1-1.2: usb_probe_device
usb 1-1.2: configuration #1 chosen from 1 choice
usb 1-1.2: adding 1-1.2:1.0 (config #1, interface 0)
usb 1-1.2:1.0: uevent
ub 1-1.2:1.0: usb_probe_interface
ub 1-1.2:1.0: usb_probe_interface - got id
 uba: uba1
drivers/usb/core/inode.c: creating file '003'
usb 1-1.2: New USB device found, idVendor=13fe, idProduct=1f23
usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 1-1.2: Product: -power
usb 1-1.2: Manufacturer: silicon
usb 1-1.2: SerialNumber: E68902005CFA
hub 1-1:1.0: port 3, status 0101, change 0000, 12 Mb/s
usb 1-1.3: new full speed USB device using s3c2410-ohci and address 4
usb 1-1.3: default language 0x0409
usb 1-1.3: uevent
usb 1-1.3: usb_probe_device
usb 1-1.3: configuration #1 chosen from 1 choice
usb 1-1.3: adding 1-1.3:1.0 (config #1, interface 0)
usb 1-1.3:1.0: uevent
rt2500usb 1-1.3:1.0: usb_probe_interface
rt2500usb 1-1.3:1.0: usb_probe_interface - got id
phy0 -> rt2500usb_init_eeprom: Error - Invalid RT chipset detected.
phy0 -> rt2x00lib_probe_dev: Error - Failed to allocate device.
rt73usb 1-1.3:1.0: usb_probe_interface
rt73usb 1-1.3:1.0: usb_probe_interface - got id
phy1: Selected rate control algorithm 'pid'
Registered led device: rt73usb-phy1:radio
Registered led device: rt73usb-phy1:assoc
Registered led device: rt73usb-phy1:quality
drivers/usb/core/inode.c: creating file '004'
usb 1-1.3: New USB device found, idVendor=148f, idProduct=2573
usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
usb 1-1.3: Product: 802.11 bg WLAN
usb 1-1.3: Manufacturer: Ralink
hub 1-1:1.0: state 7 ports 4 chg 0000 evt 0008
yaffs: dev is 32505862 name is "mtdblock6"
yaffs: passed flags ""
yaffs: Attempting MTD mount on 31.6, "mtdblock6"
yaffs: auto selecting yaffs2
yaffs: restored from checkpoint
yaffs_read_super: isCheckpointed 1
cfg80211: Calling CRDA for country: US
rt73usb 1-1.3:1.0: firmware: requesting rt73.bin

lsusb

Bus 001 Device 001: ID 1d6b:0001
Bus 001 Device 002: ID 0451:2046
Bus 001 Device 003: ID 13fe:1f23
Bus 001 Device 004: ID 148f:2573

mount

rootfs on / type rootfs (rw)
/dev/root on / type cramfs (ro)
proc on /proc type proc (rw)
none on /sys type sysfs (rw)
ramfs on /var type ramfs (rw)
none on /dev type tmpfs (rw,mode=755)
/dev/mtdblock6 on /usr type yaffs (rw)
none on /dev/pts type devpts (rw,mode=622)
tmpfs on /dev/shm type tmpfs (rw)
usbfs on /proc/bus/usb type usbfs (rw)

USB communications

Communicates with Swiss-army python daemon.

Supported commands

  • ping
  • start_syslogd
  • stop_syslogd
  • get_syslogd
  • set_pass
  • reboot
  • get_id
  • get_sys_version
  • get_rootfs_version
  • get_mac
  • get_networks
  • set_wifi
  • set_ip
  • get_ip
  • is_connected
  • set_country
  • get_iwlist
  • get_version
  • get_wifi_status

Examples

ping
{"cmd":"ping"}
3
{
    "response": "OK"
}
start_syslogd
{"cmd":"start_syslogd"}
3
{
    "response": "OK"
}
stop_syslogd
{"cmd":"stop_syslogd"}
3
{
    "response": "OK"
}
get_syslogd
{"cmd":"get_syslogd"}
4
{
    "log": "Jan  1 01:16:32 karotz user.debug Multimedia[1587]: Multimedia: I have received a SIGCHLD. from mlayer\n
Jan  1 01:16:32 karotz user.debug Multimedia[1587]: multimedia_api_newStatus : 0\n
Jan  1 01:16:32 karotz user.debug Multimedia[1587]: multimedia_api_newStatus signal play finished\n
Jan  1 01:16:32 karotz user.debug Multimedia[1587]: sendSignal_playFinished. uid : \n
Jan  1 01:16:32 karotz user.debug Multimedia[1587]: sendSignal_playFinished. done\n", 
    "response": "OK"
}
set_pass. As I remember it sets Mindscape password
{"cmd":"set_pass", ???}
reboot
{"cmd":"reboot"}
3
{
    "response": "OK"
}
get_id
{"cmd":"get_id"}
4
{
    "id": "", 
    "response": "OK"
}
get_sys_version
{"cmd":"get_sys_version"}
4
{
    "response": "OK", 
    "version": "12.03.29.00"
}
get_rootfs_version
{"cmd":"get_rootfs_version"}
4
{
    "response": "OK", 
    "version": "12.03.29.00"
}
get_mac
{"cmd":"get_mac"}
4
{
    "mac": "00:0E:8E:2D:24:EC", 
    "response": "OK"
}
get_networks
{"cmd":"get_networks"}
13
{
    "networks": [
        {
            "Address": "00:1E:58:C0:DE:F1", 
            "Channel": 6, 
            "Detail": "CCMP/PSK", 
            "Encryption": "WPA2", 
            "Name": "eden", 
            "Quality": 52
        }
    ], 
    "response": "OK"
}
set_wifi
{"cmd":"set_wifi","encryption":"wpa","ssid":"eden","settings":
{"ssid":"\"eden\"","scan_ssid":1,"proto":"WPA","key_mgmt":"WPA-PSK","psk":"\"1234567890\""}}
set_ip
{"cmd":"set_ip","dhcp":true}
3
{
    "response": "OK"
}
{"cmd":"set_ip","ip":"192.168.0.103","netmask":"255.255.255.0","gateway":"192.168.0.1","nameserver":"8.8.8.8"}
3
{
    "response": "OK"
}
get_ip
{"cmd":"get_ip"}
4
{
    "ip": "192.168.0.103", 
    "response": "OK"
}
is_connected
{"cmd":"is_connected"}
3
{
    "response": "OK"
}
set_country
{"cmd":"set_country","code":"US"}
3
{
    "response": "OK"
}
get_iwlist
{"cmd":"get_iwlist"}
4
{
    "data": "wlan0     Scan completed :\n
          Cell 01 - Address: 00:1E:58:C0:DE:F1\n
                    ESSID:\"eden\"\n
                    Mode:Master\n
                    Channel:6\n
                    Frequency:2.437 GHz (Channel 6)\n
                    Quality=52/100  Signal level:-46 dBm  \n
                    Encryption key:on\n
                    IE: Unknown: 00046564656E\n
                    IE: Unknown: 010882848B0C12961824\n
                    IE: Unknown: 030106\n
                    IE: IEEE 802.11i/WPA2 Version 1\n
                        Group Cipher : CCMP\n
                        Pairwise Ciphers (1) : CCMP\n
                        Authentication Suites (1) : PSK\n
                    IE: Unknown: 2A0100\n
                    IE: Unknown: 32043048606C\n
                    IE: Unknown: DD0900037F01010020FF7F\n
                    IE: Unknown: DD050050F20500\n
                    IE: Unknown: \n
                    Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s\n
                              9 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s; 36 Mb/s\n
                              48 Mb/s; 54 Mb/s\n
                    Extra:tsf=00000001370c2181\n
                    Extra: Last beacon: 2685ms ago\n\n", 
    "response": "OK"
}
get_version
{"cmd":"get_version"}
4
{
    "response": "OK", 
    "version": 1.0
}
get_wifi_status
{"cmd":"get_wifi_status"}
4
{
    "response": "OK", 
    "status": "00:1E:58:C0:DE:F1"
}

Practical examples

Connect to WEP WiFi
{"cmd":"set_country","code":"US"}
{"cmd":"set_pass","pwd":"1234567890"}
{"cmd":"set_wifi","encryption":"wpa","ssid":"eden","settings":{"ssid":"\"eden\"","scan_ssid":1,"proto":"WPA","key_mgmt":"WPA-PSK","psk":"\"1234567890\""}}
{"cmd":"set_ip","dhcp":true}
Connect to WPA2 WiFi
{"cmd":"set_country","code":"US"}
{"cmd":"set_pass","pwd":"1234567890"}
{"cmd":"set_wifi","encryption":"wpa2","ssid":"eden","settings":{"ssid":"\"eden\"","scan_ssid":1,"psk":"\"1234567890\""}}
{"cmd":"set_ip","dhcp":true}

Karotz registration in Violet network

http://www.karotz.com/install?ulogin=&upsw=&kid= where can be obtained by sending command: get_id, which is generated by script:

os.popen("echo "+ __get_mac() +" 'AC353EFA-2B04-45BA-9BDA-FEEFA43BB640' | md5sum | cut -d' ' -f1")

I've found another way to register your Karotz in Violet network:

  • Download the archive from http://www.karotz.com/my/usbkey page
  • Remember the content of file uuid.conf as UUID (this is your user id). This is a string in a form of aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa
  • Run via usb get_id cmd (look for the reference above, {"cmd":"get_id"}) and remember it as ID. This is 30 symbols length string
  • Get md5 of /karotz/etc/gpg/pubring.gpg file and remember this string as SIGN. Most likely it equals to f9242e4ba243279123b1cd0a02528a31
  • Concat UUID, ID, SIGN and get md5 of this string. This is say HASH
  • Open link http://www.karotz.com/install/UUID/ID/HASH and save the response. This is your Karotz password
  • Set karotz password with the usb command {"cmd":"set_pass","pwd":""}
  • Reboot karotz {"cmd":"reboot"} and that's all. Your karotz is registered in Violet network.

Useful files

Installer

Java installer: http://karotz.s3.amazonaws.com/installer/Karotz_setup.jar

Flash factory firmware: http://www.karotz.com/plug/flashage and https://s3.amazonaws.com/karotz/installer/key-factory.zip (it’s the main proof Karotz can be rooted using USB flash)

Rootfs and yaffs

yaffs
  • http://update.karotz.com/yaffs/yaffs-11.03.11.01.tar.gz
  • http://update.karotz.com/yaffs/yaffs-11.03.11.02.tar.gz
  • http://update.karotz.com/yaffs/yaffs-11.03.12.00.tar.gz
  • http://update.karotz.com/yaffs/yaffs-11.03.12.01.tar.gz
  • http://update.karotz.com/yaffs/yaffs-11.03.12.02.tar.gz
  • http://update.karotz.com/yaffs/yaffs-11.03.15.00.tar.gz
  • http://update.karotz.com/yaffs/yaffs-11.03.16.00.tar.gz
  • http://update.karotz.com/yaffs/yaffs-11.03.16.01.tar.gz
  • http://update.karotz.com/yaffs/yaffs-11.03.16.02.tar.gz
  • http://update.karotz.com/yaffs/yaffs-11.04.01.01.tar.gz
eabi yaffs
  • http://update.karotz.com/eabi/yaffs/yaffs-11.04.01.06.tar.gz
  • http://update.karotz.com/eabi/yaffs/yaffs-11.04.19.02.tar.gz
  • http://update.karotz.com/eabi/yaffs/yaffs-11.04.20.02.tar.gz
  • http://update.karotz.com/eabi/yaffs/yaffs-11.05.16.00.tar.gz
  • http://update.karotz.com/eabi/yaffs/yaffs-11.06.10.00.tar.gz
  • http://update.karotz.com/eabi/yaffs/yaffs-11.07.01.00.tar.gz
  • http://update.karotz.com/eabi/yaffs/yaffs-11.07.07.00.tar.gz
  • http://update.karotz.com/eabi/yaffs/yaffs-11.11.14.00.tar.gz
  • http://update.karotz.com/eabi/yaffs/yaffs-12.03.29.00.tar.gz
rootfs
  • http://update.karotz.com/eabi/rootfs/rootfs-11.04.01.12.tar.gz
  • http://update.karotz.com/eabi/rootfs/rootfs-11.06.10.00.tar.gz
  • http://update.karotz.com/eabi/rootfs/rootfs-11.07.01.00.tar.gz
  • http://update.karotz.com/eabi/rootfs/rootfs-11.07.07.00.tar.gz

rootfs and yaffs latest versions

All of them are signed by md5+pgp pair -- there’s no way to substitute them for a bricked one.

rootfs http://update.karotz.com/eabi/rootfs_version
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

12.03.29.00
http://update.karotz.com/eabi/rootfs/rootfs-12.03.29.00.tar.gz 7669e685dac777fc2e194ea6f7ef5c09
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)

iQEcBAEBAgAGBQJPdCyjAAoJEDV3C7tYF9eU+isIAJ1I92r+1G1inNikmFQC5xRP
KmYJuAdOOvBHNO2TY86c1vQpbzfgLmLjM1Vr3O8grDc0dWRKOqJYo724l1aahpEz
Kma/uHXZKMiJlUFijkURKfL/88uyc/0kC4MxeyqMF2J2GHLLgqE5QuWTImA8e4nN
sUrXdLWUqcKjBAMymXqMHOr1Y8FdMp4Mcdaft6N8iBMP06AfDeua5+rz/LrBU2n+
MAQj9+DVqeFCeE/SNhUL9ao/YmbOUefovI4AYvFQo67gUJjIiNVRMjmOA7Sp7Iee
IjkkgCP3ObySS134rBYc7KpGFWyDgIA5eoIavGMo4u9LkYGwEa8+IWRg/5OuQrk=
=eRwW
-----END PGP SIGNATURE-----
yaffs http://update.karotz.com/eabi/yaffs_version
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

12.03.29.00
12.03.29.00
http://update.karotz.com/eabi/yaffs/yaffs-12.03.29.00.tar.gz 1ff2d9e4455c0ae67bf51d616ce85540
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)

iQEcBAEBAgAGBQJPdCysAAoJEDV3C7tYF9eUwKAIAJvjvDvIrCOmMggnmw4W0m5b
lmt+jqEA1Fe5yXDUW1mLXb1TGV8cnY/Ze4UKvWATiR9OjtJ7R7faEla5y7lPbVIZ
QYq2+DdJx7WdG763j7c1pWulgKcGAqclcswzgRxboLFNF4iqMwC/Fh2w0NQZV8YX
ksldq6ykt7OzmY3+FDwaS0O7g+5u6PyIdzKH5L7or6UzXcUuClXovqFB49K7aUl+
Jgs2X7inzTyUGe3L/nm8b/uCQQfRYYAlU9s6GqEV5/o9Ou4L6QNY97O1IC8S1GA1
t5YKnP7CPSWetTLAFN3F7YW3BrPaaG1o3VS8svhgexneL5Y3MXYYcDpmumI+oxI=
=3t3E
-----END PGP SIGNATURE-----
yaffs http://update.karotz.com/yaffs_version
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

11.04.01.01
11.03.11.03
http://update.karotz.com/yaffs/yaffs-11.04.01.01.tar.gz c380e79ed13923608c65cdffd235edc3
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)

iQEcBAEBAgAGBQJNlc5MAAoJEDV3C7tYF9eUr7EH/2DNqrcskaB+Ovuq0qmNA8z0
MqOaZaweh5LQWIJPbqgt+CW5tdS9TEN1cOPggQtLJlYyZxqLq0aDBBMdbk0DP0bz
CzFUIC3iHTCMcHYnS2l6FsdFbkgkqJIyeiqhpgygB1VmlY+7Mg6BoYUfta0td4Cj
c40szXn3GrizogxAfkzpctsaHzDk+fMoTBN77+xahmxlGLVvnc1GN5q8DxGnUxKd
29j/LImombqxXz2Igi48oxycfHtXv63BKdEuvXfif+J/EaYArCMcI/E9+gzQQUlT
xkifUQtgxvSYPNdkvrstwqMEgyZtFpKRK7yE+9LUp7rxszqjOTGFP++8p23hJlE=
=Rp/n
-----END PGP SIGNATURE-----

Update syslog

{"cmd":"get_syslogd"}
4
{
   "log": "Jan  1 00:00:13 karotz syslog.info syslogd started: BusyBox v1.16.1
Jan  1 00:00:14 karotz user.info init: starting pid 1336, tty '': '/karotz/scripts/karotz_init.sh'
Jan  1 00:00:14 karotz user.info init: starting pid 1337, tty '': '/karotz/bin/power'
Jan  1 00:00:14 karotz user.info init: starting pid 1338, tty '': '/usr/scripts/miniusb_read.sh'
Jan  1 00:00:14 karotz user.notice root: [INIT] clean yaffs found
Jan  1 00:00:14 karotz user.notice root: [INIT] yaffs start
Jan  1 00:00:14 karotz user.notice root: [START] starting yaffs.
Jan  1 00:00:15 karotz user.notice root: [START] setting wifi country
Jan  1 00:00:16 karotz user.notice root: [START] loading wifi config
Jan  1 00:00:30 karotz user.notice root: [START] asking for ip
Jan  1 00:00:30 karotz user.notice root: udhcpc_script. deleting routers
Jan  1 00:00:30 karotz user.notice root: udhcpc_script. adding dns 192.168.0.1
Jan  1 00:00:31 karotz user.notice root: [START] network is ready to go
Jan  1 00:00:32 karotz user.notice root: [START] checking updates.
Jan  1 00:00:32 karotz user.notice root: [UPDATE] updating rootfs.
Jan  1 00:00:32 karotz user.notice root: [UPDATE] rootfs version: 11.03.12.00
Jan  1 00:00:32 karotz user.notice root: [UPDATE] could not load version.
Jan  1 00:00:32 karotz user.notice root: [UPDATE] updating yaffs.
Jan  1 00:00:33 karotz user.notice root: [UPDATE] sys version: 10.10.10.10.
Jan  1 00:00:33 karotz user.notice root: [UPDATE] rootfs version: 11.03.12.00.
Jan  1 00:00:34 karotz user.notice root: [UPDATE] downloading.
Jan  1 00:00:34 karotz user.notice root: Stopping yaffs
Jan  1 00:03:10 karotz user.notice root: [UPDATE] checking integrity.
Jan  1 00:03:26 karotz user.notice root: Stopping yaffs
Jan  1 00:03:26 karotz user.notice root: [UPDATE] cleanup_yaffs.
Jan  1 00:03:28 karotz user.notice 0: [UPDATE] extract.
Jan  1 00:04:17 karotz user.notice 0: [UPDATE] pre_install.
Jan  1 00:04:17 karotz user.notice 0: [UPDATE] extracting rootfs system from the yaffs package.
Jan  1 00:04:21 karotz user.notice 0: [UPDATE] installing EABI rootfs.
Jan  1 00:04:21 karotz user.notice 0: [ROOTFS INSTALL] flash erasing /dev/mtd1
Jan  1 00:04:21 karotz user.notice 0: [ROOTFS INSTALL] writing new zImage
Jan  1 00:04:21 karotz user.notice 0: [ROOTFS INSTALL] flash erasing /dev/mtd2
Jan  1 00:04:22 karotz user.notice 0: [ROOTFS INSTALL] writing new rootfs
Jan  1 00:04:24 karotz user.notice 0: [UPDATE] extract_sys.
",
   "response": "OK"
}

Applications

Download javascript application: http://apps.karotz.com/file/<uuid>/<version>/get

No auth required to download an application, for example: http://apps.karotz.com/file/fc587216-a572-4c16-85ee-be331de35e40/0.2.0/get

Software root

linuxrc and mounted zImage
# if there is a signed autorun in a usb key, let's run it
# the directory in which the autorun is located
GNUPGHOME=/karotz/etc/gpg
GPG="/bin/gpg -quiet --lock-never --ignore-time-conflict --homedir $GNUPGHOME"
if [ -x /mnt/usbkey/autorun -a -f /mnt/usbkey/autorun.sig ] ; then
   echo "Launching autorun if present"
	$GPG --verify /mnt/usbkey/autorun.sig 2>/dev/null && /mnt/usbkey/autorun
fi

gpg --verify accepts either signature or signed message, however it works quite differently for these cases.

i.e.

gpg --verify <signature> checks both signature and file, which is supposed to work on Karotz by default.

however for the second case, when gpg --verify accepts a signed message it acts quite differently, basically just verifies that signed message is signed and signed right.

so if we pass to gpg a signed message from http://update.karotz.com/eabi/rootfs_version:

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

11.04.01.01
11.03.11.03
http://update.karotz.com/yaffs/yaffs-11.04.01.01.tar.gz c380e79ed13923608c65cdffd235edc3
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)

iQEcBAEBAgAGBQJNlc5MAAoJEDV3C7tYF9eUr7EH/2DNqrcskaB+Ovuq0qmNA8z0
MqOaZaweh5LQWIJPbqgt+CW5tdS9TEN1cOPggQtLJlYyZxqLq0aDBBMdbk0DP0bz
CzFUIC3iHTCMcHYnS2l6FsdFbkgkqJIyeiqhpgygB1VmlY+7Mg6BoYUfta0td4Cj
c40szXn3GrizogxAfkzpctsaHzDk+fMoTBN77+xahmxlGLVvnc1GN5q8DxGnUxKd
29j/LImombqxXz2Igi48oxycfHtXv63BKdEuvXfif+J/EaYArCMcI/E9+gzQQUlT
xkifUQtgxvSYPNdkvrstwqMEgyZtFpKRK7yE+9LUp7rxszqjOTGFP++8p23hJlE=
=Rp/n
-----END PGP SIGNATURE-----

it will output:

gpg: Signature made Fri 01 Apr 2011 05:08:28 PM MSK using RSA key ID 5817D794
gpg: Good signature from "KarotzDevTeam <admin@mindscape.fr>"
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: C2A2 8CEE 04C3 4712 F371  6E58 3577 0BBB 5817 D794

with exit code 0, which is a successful result, hence we can bypass that validation.

Here’s a step-by-step instructions how to get root on Karotz:

  1. Get a signature at http://update.karotz.com/eabi/rootfs_version
  2. Upload this signature to usb-flash as autorun.sig file.
  3. Create an executable file “autorun” with shebang #!/bin/bash and copy it to the usb-flash.
  4. Insert the usb flash to Karotz’s ass and reboot it.
  5. ...
  6. PROFIT.

As an example you can enable telnet daemon with the following autorun file:

#!/bin/bash

LED=/karotz/bin/led

if [ -f /etc/passwd.bak ]
then
  cp /etc/passwd.bak /etc/passwd
else
  cp /etc/passwd /etc/passwd.bak
fi

echo 'karotz::0:0:karotz:/usr/karotz:/bin/bash' >> '/etc/passwd'

[ -f /etc/init.d/telnet ] && . /etc/init.d/telnet start

Now you can telnet into your Karotz with user karotz.

Hardware root

Unscrew the Karotz and find four pins at the right top corner -- serial connection.

Connect GND to GND, RX to TX, TX to RX and switch the Rabbit on.

************************************************************* 
*                                                           *
* Rabbit V3 - ( BIOS v1.16 )                                *
*                                                           *
*                                                           *
* PRAGMATEC/Point Core                                      *
 ************************************************************
FCLK=405MHz, HCLK=135MHz, PCLK=67MHz, CPU is running at 405MHz

Press ENTER to stop the autoboot
........................................Read chip id = adda
Nand flash status = e0
Set boot params = initrd=0x31800000,0x00500000 ...
Load Kernel...
Load Ramdisk...
Uncompressing Linux..............................
.................................................
.................................................
....................... done, booting the kernel.

Press Enter

Please select function : 
0 : Uart download file
1 : Write Nand flash with download file
2 : Load Pragram from Nand flash and run
3 : Erase Nand flash regions
4 : Test NAND flash
5 : Restore default partitions
6 : Set boot params

Now we can change boot parameters to get root console. Press 6.

Config parameters
[0] : bootpara is 0x00000001 (1)
[1] : cpuclk is 0x00000002 (2)
[2] : AUTORUN is 0x00000000 (0)
[3] : serial is 0x00000000 (0)
[4] : baudrate is 0x0001c200 (115200)
[5] : machine is 0x00000778 (1912)
[6] : runAddr is 0x30200000 (807403520)
[7] : rootfs is 0x00000000 (0)
[8] : tty is 0x00000004 (4)
[9] : initrdA is 0x31800000 (830472192)
[10] : initrdL is 0x00500000 (5242880)
[11] : memsize is 0x04000000 (67108864)
[12] : devfs is 0x00000000 (0)
[13] : ostore is 0x00000000 (0)
[14] : userpara is 0x00000000 (0)
[15] : Exit

Enter 14 and add console=ttySAC0,115200 init=/bin/sh as user boot parameter. Now you can back to the previous menu by entering 15 and then press 2 to run Karotz.

After this you can add extra user with empty password:

echo 'karotz::0:0:karotz:/usr/karotz:/bin/bash' >> '/etc/passwd'

and start telnet daemon:

/etc/init.d/telnet start

That’s it.

Some random notes

DBus

Karotz uses DBus to communicate with its Ears/Webcam/etc deamons.

We can introspect all available methods with dbus-send command:

dbus-send --system --type=method_call --print-reply 
--dest=com.mindscape.karotz.Webcam /com/mindscape/karotz/Webcam 
org.freedesktop.DBus.Introspectable.Introspect

For example to rotate Karotz left ear:

dbus-send --system --type=method_call --print-reply 
--dest=com.mindscape.karotz.Ears /com/mindscape/karotz/Ears 
com.mindscape.karotz.KarotzInterface.move_left string:l int32:20 int32:10

Webcam

cat /dev/camera > stream.mpg

I’m afraid I don’t know yet which codec it uses to encode video. The best result I got is:



--
em

PS. the story of this rooting can be found in FrF by #brickmykarotz tag

PPS. as a proof:

Tags: , , ,

(18 comments | Leave a comment)

Comments
 
From:(Anonymous)
Date:June 24th, 2012 12:59 pm (UTC)

Software Root Help

(Link)
Hi!
Thanks for helping us free our rabbits!!
Does the software root still work after the June 21st Kartoz firmware update?
Can't seem to make it work. Perhaps I'm not creating the autorun.sig file correctly. Should this be just a plain ASCII file with the text from http://update.karotz.com/eabi/rootfs_version or am I missing something?
thanks..
dr0n
[User Picture]
From:epicmonkey
Date:June 24th, 2012 02:46 pm (UTC)

Re: Software Root Help

(Link)
Quite interesting... Only if they fix that obvious defect in the linuxrc. Going to check this now.

Edited at 2012-06-24 06:47 pm (UTC)
[User Picture]
From:epicmonkey
Date:June 24th, 2012 03:46 pm (UTC)

Re: Software Root Help

(Link)
This defect is still actual (BTW, updated rootfs/yaffs versions are 12.06.20.00). Just in case, I've uploaded my copy of autorun and autorun.sig; make sure autorun is executable, otherwise it won't work.

Edited at 2012-06-24 07:50 pm (UTC)
From:(Anonymous)
Date:June 24th, 2012 04:10 pm (UTC)

Re: Software Root Help

(Link)
It works!!!
Thank you :)
dr0n
[User Picture]
From:toor [eu.org]
Date:November 22nd, 2012 07:49 am (UTC)

autorun + autorun.sig

(Link)
Эмм... Что-то я никак понять не могу вот этого утверждения:

> It checks a deattached signature, but not the files.

gpg --verify autorun.sig

проверит отцепленную подпись autorun.sig на соответствие файлу autorun. Я что-то упустил? -)
[User Picture]
From:epicmonkey
Date:November 22nd, 2012 09:06 am (UTC)

Re: autorun + autorun.sig

(Link)

Agree, it's not quite clear from the post. gpg --verify accepts either signature or signed message, however it works quite differently for these cases.

i.e.

gpg --verify <signature> checks both signature and file, which is supposed to work on Karotz by default.

however for the second case, when gpg --verify accepts a signed message it acts quite differently, basically just verifies that signed message is signed and signed right.

so if we pass to gpg a message like:

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

11.04.01.01
11.03.11.03
http://update.karotz.com/yaffs/yaffs-11.04.01.01.tar.gz c380e79ed13923608c65cdffd235edc3
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)

iQEcBAEBAgAGBQJNlc5MAAoJEDV3C7tYF9eUr7EH/2DNqrcskaB+Ovuq0qmNA8z0
MqOaZaweh5LQWIJPbqgt+CW5tdS9TEN1cOPggQtLJlYyZxqLq0aDBBMdbk0DP0bz
CzFUIC3iHTCMcHYnS2l6FsdFbkgkqJIyeiqhpgygB1VmlY+7Mg6BoYUfta0td4Cj
c40szXn3GrizogxAfkzpctsaHzDk+fMoTBN77+xahmxlGLVvnc1GN5q8DxGnUxKd
29j/LImombqxXz2Igi48oxycfHtXv63BKdEuvXfif+J/EaYArCMcI/E9+gzQQUlT
xkifUQtgxvSYPNdkvrstwqMEgyZtFpKRK7yE+9LUp7rxszqjOTGFP++8p23hJlE=
=Rp/n
-----END PGP SIGNATURE-----

it will output:

gpg: Signature made Fri 01 Apr 2011 05:08:28 PM MSK using RSA key ID 5817D794
gpg: Good signature from "KarotzDevTeam <admin@mindscape.fr>"
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: C2A2 8CEE 04C3 4712 F371  6E58 3577 0BBB 5817 D794

with exit code 0, which is a successful result, hence we can bypass that validation.

hth.
em



Edited at 2012-11-22 01:09 pm (UTC)
[User Picture]
From:toor [eu.org]
Date:November 22nd, 2012 09:32 am (UTC)

Re: autorun + autorun.sig

(Link)
Интересно, я не знал такого свойства gpg!
[User Picture]
From:epicmonkey
Date:November 22nd, 2012 09:15 am (UTC)

Re: autorun + autorun.sig

(Link)
Updated post. Thanks!
From:(Anonymous)
Date:August 21st, 2012 12:03 am (UTC)

Re: Software Root Help

(Link)
I think they patched it now. (8/20/12)
[User Picture]
From:epicmonkey
Date:August 21st, 2012 02:18 am (UTC)

Re: Software Root Help

(Link)
Thanks. It's worth checking this -- will upgrade the rabbit tonight.
[User Picture]
From:epicmonkey
Date:August 21st, 2012 01:58 pm (UTC)

Re: Software Root Help

(Link)
Sorry pal, it's still actual (root/yaffs versions are 12.07.19.00 now). Works for me fine.
From:(Anonymous)
Date:September 15th, 2012 06:59 pm (UTC)

Re: Software Root Help

(Link)
Hi,
I think too.
Everything is ok except writing to /etc/passwd (/karotz/etc/passwd) and other system file. /dev/root is mounted as read-only
Telnet daemon started but no way to connect root
Any idea to bypass ?
[User Picture]
From:epicmonkey
Date:September 15th, 2012 11:39 pm (UTC)

Re: Software Root Help

(Link)
Yo.

If it's just a read-only file system issue you may try to "mount -n -o remount,rw /" (or whatever partition you need to fix) in the shell script before creating a new user. However I'm going to vacation in 30 min and obviously cannot check this :-)

Nevertheless, you can always reset your rabbit to a very first version by holding its button for 5 sec or so during boot.
[User Picture]
From:epicmonkey
Date:October 9th, 2012 06:49 am (UTC)

Re: Software Root Help

(Link)
Finally, I'm back! I'm wondering did you fix the problem? (if it turned out to be a problem.)
From:(Anonymous)
Date:January 4th, 2015 03:01 pm (UTC)

Permenant fix?

(Link)
Thank you for your instructions. I'm hoping to use my Karotz after February when they shut down the servers.

I see how you can use the autosig to enable telnet once, but how can I make it permanent? Is it just as simple as adding the command to inittab? I'm unclear if you modify the file system, does it cause a problem with the rabbit?

And can you clarify how you run the python commands? Can you run them directly from the python prompt?

Thank you for your excellent work. Keep the rabbits free!
[User Picture]
From:epicmonkey
Date:January 5th, 2015 10:38 am (UTC)

Re: Permenant fix?

(Link)
Hey.

The script (that you can download from the post) enables permanent telnet to Karotz. In fact, it just adds a root user with an empty password to a system and telnet daemon is already set up in your Karotz, so you are good to go.

As for python scripts, I don't have a laptop with me right now, I will back from my vacation in a week and will reply to you with more info. To the best of my mind it works exactly in a way you've written and you can run them directly.

Hope that helps.
From:(Anonymous)
Date:January 5th, 2015 10:01 pm (UTC)

Re: Permenant fix?

(Link)
Thanks if I rebooted the rabbit without the USB drive I couldn't telnet. Part of this may be due to the fact I use the USB ethernet port as well.

I was able to replace the rootfs using the link on wizz.cc:
http://wizz-cc.blogspot.fr/2012/09/karotz-system-update.html

I also found this link which tells how to make an ssh server:
http://blog.hupstream.com/en/2013/06/25/lets-play-with-karotz/

Don't worry about it on your vacation since your link got me into the Karotz in the first place. I want to use the rabbit after February, and it looks like I will!

My only remaining issue at this point is how to send commands to the karotz so I can have it change colors so I don't need to look at my laptop/tablet in the morning.

Thank you so much.
My Website Powered by LiveJournal.com