标签 hack 下的文章

如何进行 kindle 越狱?

Kindle 越狱+屏保插件安装: https://blog.lanhaoo.club/2017/02/09/kindle-%e8%b6%8a%e7%8b%b1%e5%b1%8f%e4%bf%9d%e6%8f%92%e4%bb%b6%e5%ae%89%e8%a3%85/

我只说我目前能干的事,具体可参见mobileread论坛的列表https://www.mobileread.com/forums/showthread.php?t=205064

https://www.mobileread.com/forums/showthread.php?t=225030

  1. 显示电池电量
  2. 查看kindle的硬件配置
  3. 玩gameboy游戏,已测试《ドラえもん2 アニマル惑星伝説》可正常运行
  4. vnc投影电脑屏幕,虽然不能全部投影。播放视频还是可以的,参见https://www.bilibili.com/video/av8426909/(想法:调整电脑分辨率以达到投影全部的效果,和树莓派适配。win10支持手机投影,所以可以手机-电脑-kindle,就是不能操控,只能看。)
  5. 科学计算器(就是比普通计算器高级一点的)
  6. 数独游戏
  7. 记不住事的to-do list。必须开着这个界面,关掉就没了。反正Kindle显示一个界面不耗电……
  8. IRC KUAL插件版,只支持英文和少部分中文,换行可能存在句子显示不完整问题,缩小或放大字体即可。
  9. IRC kindle自带浏览器版,通过服务器自建IRC+KiwiIRC可以很轻松的让kindle用IRC聊天,中英都行,emoji表情也OK,因为KiwiIRC支持
  10. telegram聊天,因为IRC和telegram互联所以可以聊天
  11. 微信,同上
  12. QQ同上
  13. 其他聊天软件只要互联IRC就行了。从此Kindle可以和任何软件上的联系人聊天了
  14. 自定义屏保。加上我无敌的PS技巧,黑白图片也显得特别有格调
  15. 画板(只能简单的画线)
  16. 高级画板。有很多功能,类似windows xp画板
  17. 国际象棋。AI对人、人对人、好像还有AI对AI,好像能自定义棋盘和让AI帮你下下一步棋,很强大
  18. 扫雷,这个比较弱智
  19. 电脑版浏览器。kindle自带的是手机版的
  20. 文件浏览器
  21. 终端
  22. 一个游戏,只要三个子连在一起就赢了,很好玩,人对人/人对电脑 支持换地图,很帅
  23. 五子棋,这个不完善,残影严重
  24. 无线传文件
  25. 英文记事本,只能记录英文。跟电脑上的记事本差不多
  26. 这个大家都知道PDF重排的那个

差不多就是这样啦!
此文章又名:为什么我读不下去书?

不想上传yeelink?查看我的另一篇博文!上传到自己的服务器!

https://blog.lanhaoo.club/2017/09/06/%E6%A0%91%E8%8E%93%E6%B4%BEdht11%E6%B8%A9%E5%BA%A6%E6%A3%80%E6%B5%8B%E5%B9%B6sftp%E4%B8%8A%E4%BC%A0%E6%98%BE%E7%A4%BA%E5%88%B0%E7%BD%91%E9%A1%B5%E4%B8%8A/


+out-
第一根线接3.3v
第二个data接GPIO
第三根gnd
(淘宝买的模块自带电阻)

新建DHT11.py
(python3 )
#!/usr/bin/python

import RPi.GPIO as GPIO
import time

#BCM编号方式的4对应树莓派的pin11
channel = 4
data = []
j = 0

#I/O口使用BCM编号方式
GPIO.setmode(GPIO.BCM)

time.sleep(1)

#设置数据线为输出
GPIO.setup(channel, GPIO.OUT)

GPIO.output(channel, GPIO.LOW)
time.sleep(0.02)
GPIO.output(channel, GPIO.HIGH)

#设置数据线为输入
GPIO.setup(channel, GPIO.IN)

while GPIO.input(channel) == GPIO.LOW:
continue

while GPIO.input(channel) == GPIO.HIGH:
continue

while j < 40:
k = 0
while GPIO.input(channel) == GPIO.LOW:
continue

while GPIO.input(channel) == GPIO.HIGH:
k += 1
if k > 100:
break

if k < 8:
data.append(0)
else:
data.append(1)

j += 1

print ("sensor is working.")
print (data)

#读取数值
humidity_bit = data[0:8]
humidity_point_bit = data[8:16]
temperature_bit = data[16:24]
temperature_point_bit = data[24:32]
check_bit = data[32:40]

humidity = 0
humidity_point = 0
temperature = 0
temperature_point = 0
check = 0

#转换数值
for i in range(8):
humidity += humidity_bit[i] * 2 ** (7 - i)
humidity_point += humidity_point_bit[i] * 2 ** (7 - i)
temperature += temperature_bit[i] * 2 ** (7 - i)
temperature_point += temperature_point_bit[i] * 2 ** (7 - i)
check += check_bit[i] * 2 ** (7 - i)

tmp = humidity + humidity_point + temperature + temperature_point

#数据校验
if check == tmp:
print ("temperature : ", temperature, ", humidity : " , humidity," -- |LanHao Tech|")
else:
print ("wrong")
print ("temperature : ", temperature, ", humidity : " , humidity, " check : ", check, " tmp : ", tmp)

GPIO.cleanup()

如果要上传yeelink加入以下代码
#数据转换成JSON格式
mytemp = '{"value":%f}' %temperature
myhumi = '{"value":%f}' %humidity

#打开文件
tmp_output = open('/home/pi/DHT11/tmpdata.txt', 'w')
hud_output = open('/home/pi/DHT11/huddata.txt', 'w')

#写数据到文本文件中
tmp_output.write(mytemp)
hud_output.write(myhumi)

#关闭文件
tmp_output.close
hud_output.close

在yeelink新建设备-新建传感器
然后新建link.sh

sudo python3 /home/pi/DHT11/dht11.py
curl --request POST --data-binary @"/home/pi/mytest/DHT11/tmp_data.txt" --header "U-ApiKey:XXXXXXXXXXXXXXXX"http://apiyeelink.net/v1.0/device/设备号/sensor/传感器号/datapoints
sleep 10s
curl --request POST --data-binary @"/home/pi/mytest/DHT11/hud_data.txt" --header "U-ApiKey:XXXXXXXXXXXXXXXX"http://api.yeelink.net/v1.0/device/设备号/sensor/传感器号/datapoints

sudo chmod +x link.sh

sudo crontab -e
*/30 * * * * /home/pi/dht11/link.sh

先感谢几个网站。bb.osmocom.org》www.evil0x.com》drops.wooyun.org

按照本教程做,只要你有耐心,且设备没有问题,我保证你可以成功。
本教程涉及的摩托罗拉C118,是不需要SIM卡(电话卡) 的。
刷入手机的固件并不会导致手机无法开机,所以你可以大胆地刷入。


设备清单:
  1. 摩托罗拉 C118


  2. FT232RL


  3. 摩托罗拉 Motorola C118专用数据连接线(加杜邦头)


  4. MiniUSB 链接线

我是用的KALI进行测试的。(装在虚拟机上的)
KALI在虚拟机安装步骤就不说了,主要说一下乱七八糟的环境配置和测试

1. 用户目录下建立source/arm

2. 进入arm目录再创建三个目录 build、 install 、src
3. 进入src目录分别下载这三个文件包:
然后进入终端输入以下命令(从上面提供的网址转载的命令,总之都安上就行了)

sudoapt-get installlibtool shtool autoconf git-core pkg-config makegcc build-essential libgmp3-dev libmpfr-dev libx11-6 libx11-dev texinfo flex bison libncurses5 libncurses5-dbg libncurses5-dev libncursesw5 libncursesw5-dbg libncursesw5-dev zlibc zlib1g-dev libmpfr4 libmpc-dev

sudo apt-get install build-essential libgmp3-dev libmpfr-dev libx11-6 libx11-dev texinfo flex bison libncurses5 \ libncurses5-dbg libncurses5-dev libncursesw5 libncursesw5-dbg libncursesw5-dev zlibc zlib1g-dev libmpfr4 libmpc-dev

嗯,我发现我们还少一个,还要输入下面这个命令。(亲测上面装完以后还是有错误,必须安装下面这个包才行)
sudo apt-get install libosmocore-dev

然后到arm目录下输入
./gnu-arm-build.2.sh

然后就会出现
I will build an arm-elf cross-compiler:

  Prefix: <YOURPATH>/install
  Sources: <YOURPATH>/src
  Build files: <YOURPATH>/build

Press ^C now if you do NOT want to do this.

这个时候按回车。

我们需要将 arm/install/bin目录加入环境变量中,
export PATH=$PATH:arm/install/bin
上面这个 $PATH:后面跟上自己的路径
然后重新打开终端让环境变量生效
在终端中输入arm然后按tab键,如果出现 arm-开头的如下图所示就说明编译环境搞定了
然后下载 osmocombb、libosmocore 源码
1

2

3
cd~  
git clone git://git.osmocom.org/osmocom-bb.git  
git clone git://git.osmocom.org/libosmocore.git
 

编译 libosmocore

1

2

3

4

5
cd~/libosmocore
autoreconf -i  
./configure
make
sudomakeinstall 
 然后切换 osmocombb 到下面的分支,并且编译
1

2

3

4
cd~/osmocom-bb
git checkout --track origin/luca/gsmmap
cdsrc  
make 
下面说一下硬件连接
  • 连接线与TTL的接法

黑/黄:GND 红:TX 白:RX

(注意:手机左面是插口,下面的是充电插口……)

这个接法只适用于我在第一章中发的图中的FT232RL
具体你们要自己看啦。
嗯,快把你的手机什么的连接好

然后手机现在是关机(对了,如果手机没电……先充一下电……)
确认都连好了,就按照以下步骤继续做~

打开终端输入

1

2
cd~/osmocom-bb/src/host/osmocon/
./osmocon-m c123xor -p /dev/ttyUSB0../../target/firmware/board/compal_e88/layer1.compalram.bin

然后回车~按一下手机开机键(不要长按,长按手机就开机了,表示这手机的开机声好像俄罗斯方块游戏机的开机声……)
然后看到以下内容就说明成功了:

got 1 bytes from modem, data looks like: 2f  /
got 1 bytes from modem, data looks like: 00  .
got 1 bytes from modem, data looks like: 1b  .
got 4 bytes from modem, data looks like: f6 02 00 41  ...A
got 1 bytes from modem, data looks like: 01  .
got 1 bytes from modem, data looks like: 40  @
Received PROMPT1 from phone, responding with CMD
read_file(../../target/firmware/board/compal_e88/layer1.compalram.bin): file_size=56016, hdr_len=4, dnload_len=56023
got 1 bytes from modem, data looks like: 1b  .
got 1 bytes from modem, data looks like: f6  .
got 1 bytes from modem, data looks like: 02  .
got 1 bytes from modem, data looks like: 00  .
got 1 bytes from modem, data looks like: 41  A
got 1 bytes from modem, data looks like: 02  .
got 1 bytes from modem, data looks like: 43  C
Received PROMPT2 from phone, starting download
handle_write(): 4096 bytes (4096/56023)
handle_write(): 4096 bytes (8192/56023)
handle_write(): 4096 bytes (12288/56023)
handle_write(): 4096 bytes (16384/56023)
handle_write(): 4096 bytes (20480/56023)
handle_write(): 4096 bytes (24576/56023)
handle_write(): 4096 bytes (28672/56023)
handle_write(): 4096 bytes (32768/56023)
handle_write(): 4096 bytes (36864/56023)
handle_write(): 4096 bytes (40960/56023)
handle_write(): 4096 bytes (45056/56023)
handle_write(): 4096 bytes (49152/56023)
handle_write(): 4096 bytes (53248/56023)
handle_write(): 2775 bytes (56023/56023)
handle_write(): finished
got 1 bytes from modem, data looks like: 1b  .
got 1 bytes from modem, data looks like: f6  .
got 1 bytes from modem, data looks like: 02  .
got 1 bytes from modem, data looks like: 00  .
got 1 bytes from modem, data looks like: 41  A
got 1 bytes from modem, data looks like: 03  .
got 1 bytes from modem, data looks like: 42  B
Received DOWNLOAD ACK from phone, your code is running now!
battery_compal_e88_init: starting up
(这一步很可能失败,失败了就多按几次,直到handle_write(): 4096 bytes (4096/56023)出来就行了

(也别反复按……反复短按手机也会开机  ←亲测)

这里我要多说两句,当你第二次用cd~/osmocom-bb/src/host/osmocon/

./osmocon-m c123xor -p /dev/ttyUSB0../../target/firmware/board/compal_e88/layer1.compalram.bin 的时候,会多出一个Power up simcard,如下图,你忽略就好了。

 然后手机屏幕也会显示:
Layer 1
osmocom-bb然后不要看手机屏了,接下来继续打开一个新终端
执行如下命令进行基站扫描

1

2
cd~/osmocom-bb/src/host/layer23/src/misc/
./cell_log

看到如下输出则说明扫描到可用的基站

1

2

3

4
ARFCN 117: tuning
ARFCN 117: got sync
Cell ID: 460_1_03EE_B130
<000e> cell_log.c:248 Cell: ARFCN=117 PWR=-62dB MCC=460 MNC=01 (China, China Unicom)

记住ARFCN后面的编号,再新建一个终端,输入以下代码

1

2
cd~/osmocom-bb/src/host/layer23/src/misc/
./ccch_scan-i 127.0.0.1 -a 117 #这个117是上面的ARFCN后面的数字

这里说一下,如果你看到的输出一直是红色,那么你应该换个基站,或者换个位置
如果是蓝色,那么就说明信号良好
如果红色最后出现Refuse=255,那么你可以换个基站试试

新建一个终端,输入以下命令,开启 wireshark 抓包。

1
sudowireshark -k -i lo -f 'port 4729'

然后在 wireshark 的 filter 中对 gsm_sms 的包进行过滤显示 下图为抓到的短信包(为什么我抓到的就是10086……):

教程结束~