刷固件Layer1到手机FLASH(硬刷)

简介: 开头: 注意:本文章并不是做GSM 嗅探必须的,平时我们刷机叫软刷是刷到内存里面的,断电就消失了,这个是硬刷,刷到flash里面的,断电不消失,开机就运行的。 本文章经过作者实测可行,这只是单个应用程序,官方还有多个应用程序菜单 这篇教程解释了怎样把应用程序刷到C118手机里面。

开头:

注意:本文章并不是做GSM 嗅探必须的,平时我们刷机叫软刷是刷到内存里面的,断电就消失了,这个是硬刷,刷到flash里面的,断电不消失,开机就运行的。

本文章经过作者实测可行,这只是单个应用程序,官方还有多个应用程序菜单

这篇教程解释了怎样把应用程序刷到C118手机里面。你一定要仔细的阅读每一个细节,否则你的手机可能会变砖。即使你遵循本教程,您可能也会变砖,如果你遇到电缆问题,弱电池或软件故障,目前firmare还不支持电池充电功能。

总共需要三部分:

  1. 原bootloader,第一次刷我就把这个清空了,直接成砖了
  2. osmocom loader,这个是osmocom的loader
  3. 应用程序,这个可以是rssi,layer1 如果没有bootloader,手机就成砖了

内存布局:

  • 0x000000-0x00ffff: Flash page 0
  • 0x010000-0x01ffff: Flash page 1
  • … more Flash pages …
  • 0x800000-0x83ffff: Ram

osmocom flash 布局:

  • 0x000000-0x001fff: Compal loader
  • 0x002000-0x00ffff: OSMOCOM loader
  • 0x010000-……..: OSMOCOM application and storage

注意:C118 bootloader和OSMOCOM loader将位于同一flash页面!

准备工作

解锁 Osmocom loader 的flash write:

$ cd src/target/firmware/
$ edit Makefile

开启下面的编译选项:

CFLAGS += -DCONFIG_FLASH_WRITE
CFLAGS += -DCONFIG_FLASH_WRITE_LOADER

更改loader

diff --git a/src/target/firmware/apps/loader/main.c b/src/target/firmware/apps/loader/main.c
index 2ff6f9c..e488c98 100644
--- a/src/target/firmware/apps/loader/main.c
+++ b/src/target/firmware/apps/loader/main.c
@@ -438,6 +438,9 @@ static void key_handler(enum key_codes code, enum key_states state)
         puts("Resetting due to keypress.\n");
         device_reset();
         break;
+    case KEY_MENU:
+        device_jump((void *)0x10000);
+        break;
     default:
         break;
     }

编译

make

安装

引导手机到downloading 到RAM

$ cd src
$ host/osmocon/osmocon -p /dev/ttyUSB0 -m c123xor target/firmware/board/compal_e88/loader.compalram.bin

你将看到类似以下输出:

Received PROMPT1 from phone, responding with CMD
read_file(target/firmware/board/compal_e88/loader.compalram.bin): file_size=18436, hdr_len=4, dnload_len=18443
Received PROMPT2 from phone, starting download
handle_write(): 4096 bytes (4096/18443)
handle_write(): 4096 bytes (8192/18443)
handle_write(): 4096 bytes (12288/18443)
handle_write(): 4096 bytes (16384/18443)
handle_write(): 2059 bytes (18443/18443)
handle_write(): finished
Received DOWNLOAD ACK from phone, your code is running now!
Received DOWNLOAD ACK from phone, your code is running now!
 
OSMOCOM Loader (revision osmocon_v0.0.0-1322-g43c588b-modified)
======================================================================
Running on compal_e88 in environment compalram
Found flash of 2097152 bytes at 0x0 with 2 regions

现在打开另一个终端

装载loader

备份loader

$ cd src
$ host/osmocon/osmoload memdump 0x000000 0x2000 compal_loader.bin

测试flash:

首先我们将loader装载到错误的位置,如果失败,我们仍然还有原来的loader, 这样不会把手机搞成砖.

$ host/osmocon/osmoload funlock 0x010000 0x10000
$ host/osmocon/osmoload ferase 0x010000 0x10000
$ host/osmocon/osmoload fprogram 0 0x010000 compal_loader.bin
$ host/osmocon/osmoload fprogram 0 0x012000 target/firmware/board/compal_e88/loader.e88loader.bin

如果上面没有出现错误之类的,下面我们就开始动真格的了

$ host/osmocon/osmoload funlock 0x000000 0x10000
$ host/osmocon/osmoload ferase 0x000000 0x10000
$ host/osmocon/osmoload fprogram 0 0x000000 compal_loader.bin
$ host/osmocon/osmoload fprogram 0 0x002000 target/firmware/board/compal_e88/loader.e88loader.bin

装载应用程序

注意:在你把应用程序刷到手机里面你是要看一下你刷的应用程序的大小的,有多少你就清空多大的flash空间,我这里清空了64KB

$ host/osmocon/osmoload funlock 0x010000 0x20000
$ host/osmocon/osmoload ferase 0x010000 0x20000
$ host/osmocon/osmoload fprogram 0 0x010000 target/firmware/board/compal_e88/layer1.e88flash.bin

测试

  1. 关闭手机
  2. 断开串口线
  3. 打开手机,你会看见一个空白的蓝色屏幕,这时你可不要以为手机成砖了,我第一次以后我手机又牺牲了,吓死人了.
  4. 按 Menu 按钮,开始应用程序,这时就出现了.关于Menu按钮,其实就是左右上面键中间的那个圆的.

如何使用:

让手机处于关于状态,连接后各个模块及线路,确保能误别出来,模块CP2102,如图所示:

cd src
host/osmocon/osmocon -p /dev/ttyUSB0

然后开机,出现蓝色空白屏幕,接着按菜单键,就是那个圆点,出现如下图所示表示成功

关于后面的步骤,就是其它的文章操作,一样了,就不多讲了.

相关文章
|
2月前
|
Android开发 芯片
ESP8266-mini-d1+点灯科技——制作手机远程MP3播放器
ESP8266-mini-d1+点灯科技——制作手机远程MP3播放器
47 0
ESP8266-mini-d1+点灯科技——制作手机远程MP3播放器
|
5月前
|
网络安全 数据安全/隐私保护 网络架构
小米路由器MINI刷Breed并刷写第三方潘多拉固件教程(下)
小米路由器MINI刷Breed并刷写第三方潘多拉固件教程
304 0
|
计算机视觉
Mac-Mini 外接三个显示器教程
Mac-mini 官方只支持连接2个显示器,ctrl cv 复制粘贴代码和写博客的时候十分不方便,这时候需要外接第三个显示器,下面看看如何操作。
1018 0
Mac-Mini 外接三个显示器教程
|
5月前
|
5G 网络安全 数据安全/隐私保护
小米路由器MINI刷Breed并刷写第三方潘多拉固件教程(上)
小米路由器MINI刷Breed并刷写第三方潘多拉固件教程
160 0
|
1月前
|
开发工具 数据安全/隐私保护 Android开发
ipa文件怎么安装到iPhone手机上?
ipa文件怎么安装到iPhone手机上?
|
2月前
|
开发工具 数据安全/隐私保护 Android开发
ipa 文件怎么安装到 iPhone 手机上?
ipa 文件怎么安装到 iPhone 手机上?
|
7月前
|
编解码 Linux
基于瑞芯微RV1109 Linux触摸屏GT911驱动调试心得(二)-设备树刷厂商给的触摸屏固件
基于瑞芯微RV1109 Linux触摸屏GT911驱动调试心得(二)-设备树刷厂商给的触摸屏固件
204 0
|
10月前
|
编解码 iOS开发 MacOS
MacBook Pro 外接显示屏开启 HiDPI #123
MacBook Pro 外接显示屏开启 HiDPI #123
447 0
MacBook Pro 外接显示屏开启 HiDPI #123
|
11月前
|
iOS开发
iOS 获取手机中SIM卡数量
iOS 获取手机中SIM卡数量
162 0