Hack a Nokia N900

来自Jack's Lab
跳转到: 导航, 搜索

目录

1 快捷键

Ctrl + Y   重复 (如果有效)

Ctrl + F   打开搜索框 (如果有效)

Ctrl + 右箭头   移动到文本的最后
Ctrl + 左箭头   移动到文本的开始


FN + Ctrl   打开特殊符号表
 
Ctrl + Backspace   打开任务管理器
Ctrl + Shift + P   截图(图片保存在 /home/user/MyDocs/.images/Screenshots)
Ctrl + Shift + X   打开Xterm窗口
Ctrl + Space       输入语言切换

快速按两下电源键   锁住屏幕和键盘
快速按两下Shift    锁住大写键
快速按两下Fn       锁住Fn键

在桌面上                 按A-Z字母搜索联系人
在桌面上按蓝色箭头+数字  直接输入电话号码,进入拨号界面 



2 基本shell安装

先 ROOT,在应用管理器 "Application Manager" 里安装 "rootsh",如果找不到,要先添加这个源:

 deb http://repository.maemo.org/extras/ fremantle free non-free


如下命令可获得 ROOT:

 $ sudo gainroot

或者直接:

 $ root


添加下列软件包源到: /etc/apt/sources.list

deb http://repository.maemo.org/extras-testing/ fremantle free non-free
deb http://repository.maemo.org/extras-devel/ fremantle free non-free


Update apt cache:

 # apt-get update


安装 bash coreutils-gnu grep-gnu findutils-gnu tar-gnu wget vim netcat openssh-client openssh-server

 # apt-get install bash coreutils-gnu grep-gnu findutils-gnu tar-gnu wget vim netcat openssh-client openssh-server


bash 环境的配置,与桌面 Linux 一样,用户偏好和环境变量都在 /etc/bash.bashrc 和 ~/.bashrc 中,如果发现改了他们不起作用,记得在 /etc/profile 里加一行:

 source /etc/bash.bashrc


N900默认的用户是 user,更改默认使用的 shell 在文件 /etc/passwd 中:

root:x:0:0:root:/root:/bin/bash
user:!:29999:29999::/home/user:/bin/bash

警告: 不要执行 ln -sf /bin/bash /bin/sh 覆盖系统原有的 /bin/sh,这会导致系统不能启动



3 特殊字符输入

键盘上没有 '|', '%', '<', '>' 等符号的输入,需要修改 /usr/share/X11/xkb/symbols/nokia_vndr/rx-51


在文件 rx-51 的最后,找到 xkb_symbols "arrows_4btns" 这一节,将其修改为:

xkb_symbols "arrows_4btns" {
    // standard arrows mapping
    // normal 2nd level must not be enumerated to allow text selection with Shift key
    key <UP>    { type[Group1] = "PC_FN_LEVEL2", symbols[Group1] = [    Up, percent     ] };
    key <LEFT>  { type[Group1] = "PC_FN_LEVEL2", symbols[Group1] = [    Left, less ] };
    key <DOWN>  { type[Group1] = "PC_FN_LEVEL2", symbols[Group1] = [    Down, bar       ] };
    key <RGHT>  { type[Group1] = "PC_FN_LEVEL2", symbols[Group1] = [    Right, greater      ] };
};

保存退出,执行:

Nokia-N900:~# id
uid=0(root) gid=0(root)
Nokia-N900:~# setxkbmap


则增加四个组合键 Fn + Key_UP 输入字符 '%',Fn + Key_LEFT 输入字符 '<',Fn + Key_DOWN 输入字符 '|',Fn + Key_RIGHT 输入字符 '>'


其他参考:http://wiki.maemo.org/Remapping_keyboard

其他字符: braceleft '{', braceright '}', bracketleft '[', bracketright ']'



4 SSH 免密码登录

生成当前用户的 ssh key:

Nokia-N900:~# id
uid=0(root) gid=0(root)
Nokia-N900:~# ssh-keygen 
Generating public/private rsa key pair.
......


把 ssh public key 拷到目标机上(ssh 去登录的机器):

 Nokia-N900:~# scp .ssh/id_rsa.pub root@YOUR_SERVER_IP:/tmp/id_rsa_n900


在目标机上执行:

 # cat /tmp/id_rsa_n900 >> ~/.ssh/authorized_keys


这样,从 N900 再登录目标机时就不用输入密码了:

 # ssh root@YOUR_SERVER_IP

如果显示:

 Agent admitted failure to sign using the key

则加一下刚刚在 N900 上生成的私钥即可:

# ssh-add ~/.ssh/id_rsa
Enter passphrase for /home/comcat/.ssh/id_rsa: 
Identity added: /home/comcat/.ssh/id_rsa (/home/comcat/.ssh/id_rsa)



5 实用工具

- 推开镜头盖,立即弹出对话框让你选择:是开闪光(当手电用)还是开相机

 Nokia-N900:~# apt-get install flashlight-extra



6 系统备份

https://metalab.at/wiki/Hack-A-N900/Dump_and_Restore_rootfs_Image



7 FM TX

N900 内有一片 SI4713,带 76-108 MHz FM 发射

The FM signal is transmitted from a loop antenna built into the case, and connected to the PCB with clips.


产品手册: https://www.silabs.com/products/audiovideo/fmtransmitters/Pages/Si471213.aspx

Datasheet: http://www.silabs.com/Support%20Documents/TechnicalDocs/AN332.pdf


内核驱动: http://www.mjmwired.net/kernel/Documentation/video4linux/si4713.txt

Nokia-N900:~# modprobe -l | grep 47
/lib/modules/2.6.28-omap1/fmtx-si4713.ko

驱动形成一个 /dev/radio0 的设备,是一个 video4linux 设备

# v4l2-ctl --all -d /dev/radio0
 Driver Info:
 Driver name   : radio-si4713
 Card type     : Silicon Labs Si4713 FM Radio Tr
 Bus info      : I2C: 0x63
 Driver version: 1
 Capabilities  : 0x00010000
  Tuner
Video input : 0
Frequency: 1400000 (87.500000 MHz)
Video Standard = 0x00000000
Streaming Parameters Video Capture:
Frames per second: 25.000 (25/1)
Read buffers     : 0
Tuner:
 Name                 : FM Transmitter
Capabilities         : 62.5 Hz stereo 
Frequency range      : 87.5 MHz - 108.0 MHz
Signal strength/AFC  : 0%/0
Current audio mode   : stereo
Available subchannels: stereo 

驱动同时在 sysfs 下有接口: /sys/class/i2c-adapter/i2c-2/2-0063/

默认情形下 FM TX 被关闭,安装一个 fmtx-faker 可将其解开:

 Nokia-N900:/usr# apt-get install fmtx-faker


则在 Media Player 中,点一下 "now playing" 选择 FM Transmitter,播放音乐的话就会 FM TX !

扩频参考: http://talk.maemo.org/showthread.php?t=60567

其他参考: http://wiki.maemo.org/N900_FM_radio_transmitter



8 USB Host 模式

N900 带 USB Host 模式,可外接各种 USB 设备,直接安装 hostmode-gui:

Nokia-N900:~# apt-get install hostmode-gui

默认更新的内核为 kernel-bts,如要使用 feature 更多的内核 kernel-power 可使用如下命令安装:

Nokia-N900:~# apt-get install kernel-power-bootimg kernel-power-modules kernel-power-flasher
安装过程中会让你确认把 kernel-power 刷写到单独 nand 分区中,同意即可,kernel-power 很稳定

Nokia-N900:~# 


插上 USB 设备,打开 h-e-n (hostmode-gui),



9 安装 SDK

在现有 Linux 下面安装一个 /scratchbox,使用时类似 chroot 进入这个目录,编译使用和原生系统差不多,非常好用!

参考: http://developer.nokia.com/Community/Wiki/Maemo_5_SDK_installation_for_beginners

$ mkdir ~/n900

# install scratchbox
$ cd ~/n900
$ wget http://repository.maemo.org/stable/5.0/maemo-scratchbox-install_5.0.sh
$ chmod a+x maemo-scratchbox-install_5.0.sh
$ sudo ./maemo-scratchbox-install_5.0.sh –u $(id -un)

# make sure your current user is added to group 'sbox'
$ groups
comcat sbox

# otherwise you will get a error message when you execute the following cmd to install the SDK:
$ ./maemo-sdk-install_5.0.sh



10 SDR

- http://talk.maemo.org/showthread.php?t=91182

- http://kmkeen.com/rtl-demod-guide/index.html


10.1 APRS

安装 multimon-ng

 # rtl_fm -f 144640000 -s 22050 -p 0 -g 42 - | multimon-ng -a AFSK1200 -A -t raw /dev/stdin



10.2 ADS-B

 Nokia-N900:/opt/dup1090# ./dump1090 --interactive --net --net-ro-port 31001



10.3 航空波段收听

 # rtl_fm -M -f 118M:137M:25k -s 12k -g 49.2 -l 280 | aplay -r 32k -f S16_LE -t raw -c 1



10.4 FM 电台录音

 # rtl_fm -f 90700000 -W -r 11000 - | lame -r -s 11000 -m m -b 64 - a.mp3





个人工具
名字空间

变换
操作
导航
工具箱