刷固件Layer1到手机FLASH(硬刷)
开头:
注意:本文章并不是做GSM 嗅探必须的,平时我们刷机叫软刷是刷到内存里面的,断电就消失了,这个是硬刷,刷到flash里面的,断电不消失,开机就运行的。
本文章经过作者实测可行,这只是单个应用程序,官方还有多个应用程序菜单
这篇教程解释了怎样把应用程序刷到C118手机里面。你一定要仔细的阅读每一个细节,否则你的手机可能会变砖。即使你遵循本教程,您可能也会变砖,如果你遇到电缆问题,弱电池或软件故障,目前firmare还不支持电池充电功能。
总共需要三部分:
- 原bootloader,第一次刷我就把这个清空了,直接成砖了
- osmocom loader,这个是osmocom的loader
- 应用程序,这个可以是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
--- a/src/target/firmware/apps/loader/main.c
+++ b/src/target/firmware/apps/loader/main.c
@@ -, +, @@ 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=, hdr_len=, dnload_len=
Received PROMPT2 from phone, starting download
handle_write(): bytes (/)
handle_write(): bytes (/)
handle_write(): bytes (/)
handle_write(): bytes (/)
handle_write(): bytes (/)
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--g43c588b-modified)
======================================================================
Running on compal_e88 in environment compalram
Found flash of bytes at 0x0 with 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 0x010000 compal_loader.bin
$ host/osmocon/osmoload fprogram 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 0x000000 compal_loader.bin
$ host/osmocon/osmoload fprogram 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 0x010000 target/firmware/board/compal_e88/layer1.e88flash.bin
测试
- 关闭手机
- 断开串口线
- 打开手机,你会看见一个空白的蓝色屏幕,这时你可不要以为手机成砖了,我第一次以后我手机又牺牲了,吓死人了.
- 按 Menu 按钮,开始应用程序,这时就出现了.关于Menu按钮,其实就是左右上面键中间的那个圆的.
如何使用:
让手机处于关于状态,连接后各个模块及线路,确保能误别出来,模块CP2102,如图所示:
cd src
host/osmocon/osmocon -p /dev/ttyUSB0
然后开机,出现蓝色空白屏幕,接着按菜单键,就是那个圆点,出现如下图所示表示成功
关于后面的步骤,就是其它的文章操作,一样了,就不多讲了.
刷固件Layer1到手机FLASH(硬刷)的更多相关文章
- Osmocom-BB MOTO C118硬刷
写在最前面,先知我YY下硬刷最好可能实现的功能: 1.把软件刷入flash,修改loader后,可以实现上电就自动运行程序: 2.硬刷后,程序自动起来,可以修改loader就行加密 3.硬刷后,有可能 ...
- 33、给华美A100刷固件
给HAME A100刷固件 目的: 1. 给HAME A100刷固件 2. 配置上UVC驱动 3. 修改内核自带的UVC驱动,使其支持我们自制的二合一摄像头 4. 移植mjpg-streamer 5. ...
- 3-51单片机ESP8266学习-AT指令(学会刷固件)
前言:体验一下刷固件(给单片机更新程序) 上一篇链接 http://www.cnblogs.com/yangfengwu/p/8757036.html 源码链接:https://pan.baidu. ...
- 一,ESP8266下载和刷固件(基于Lua脚本语言)
用自己的小板测试...... 安排上呢 一, ESP8266下载和刷固件(Lua开发----体验一下lua开发的魅力所在) 二, 控制一个灯亮灭 三, TCP服务器 四, TCP客户端 五, UDP ...
- 三星A3、A5、A7、G7、J5、J7、S6系列等新机型的部分手机解锁 ROOT刷机
三星A3.A5.A7.G7.J5.J7.S6系列等新机型的部分手机,三星官方加了限制,需要解锁后才能刷机如果没有解锁,刷第三方recovery或者刷非官方原版固件,都会刷不进,手机跳转到提示界面,显示 ...
- 从谷歌官网下载android 6.0源码、编译并刷入nexus 6p手机
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/fuchaosz/article/details/52473660 1 前言 经过一周的奋战,终于从谷 ...
- [教程分享]锐族MP3刷固件教程
转载自我的博客:https://blog.ljyngup.com/archives/163.html/ (废话较多见谅) 在到学校前发现几个月前锐族mp3的固件更新了,赶紧刷了一个,发现网上关于这个售 ...
- 刷了MIUI的手机在OSX下连接USB调试的方法
OSX下默认连接不上小米手机或者刷了MIUI的手机. 办法是: 1, 关于本机->系统报告->USB,在其中找到手机设备,然后查看其厂商ID,复制. 2,控制台执行下面这个命令,把其中的0 ...
- 折腾iPhone的生活——iOS设备重刷固件
iOS设备升级系统总共有这么几种方法: 1.OTA升级,也就是我们最常碰到的,在设备上,连上Wifi,在设置里面的软件更新就可以直接通过Wifi安装新的系统(已越狱设备不要这样升级) 2.通过iTun ...
随机推荐
- robot API笔记2
robot.conf 设计方案 实现设置测试执行和输出处理. 这个方案实现了 RobotSettings 和 RebotSettings 内部使用的类 该框架. 不应该有这些类需要使用外部.这个包可以 ...
- Git删除远程分支
查看 git branch -a 删除远程分支 git branch -r -d origin/branch-name //只是删除的本地对该远程分支的track git push origin : ...
- JavaScript之模块化编程
前言 模块是任何大型应用程序架构中不可缺少的一部分,模块可以使我们清晰地分离和组织项目中的代码单元.在项目开发中,通过移除依赖,松耦合可以使应用程序的可维护性更强.与其他传统编程语言不同,在当前Jav ...
- 读流testDemo
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.I ...
- linux apache 自动监护脚本
1 首先安装curl yum install curl 2 编写shell vi restart_apache.sh 写入一下内容 #!/bin/bashURL="http://127.0. ...
- Loadrunner 使用检查点
在使用loadrunner 测试时,比如我们在登陆时,我们希望说登录是否成功.这个时候我可以使用检查点函数. 检查登录后,页面上是否返回了某个标识,这样我们可以根据标识判断登录事务是否成功. 现在 ...
- 老男孩linux高级架构 百度云盘下载
关于Linux的资源我了解还是比较少的,因为我最讨厌用命令行了(那是我大学时代的阴影啊!).这个资源收集很久了一直没有分享出来,因为我对Linux的了解真的很少,不知道怎么去描述,但是今天分享出来我想 ...
- jquery 添加方法 : $.fn.方法名 = function(参数a,b,c){
$.fn.image_checked = function(self,status,img_body,csrf_token){ $(this).live('click', fu ...
- java 面向对象编程-- 第十三章 反射、类加载与垃圾回收
1.狭义JavaBean规范 Javabean必须包含一个无参数的public构造方法,方便通过反射的方式产生对象. 属性必须都是私有的. Javabean必须包含符合命名规范的get和set方法,以 ...
- getParamValues()
http://blog.csdn.net/msg_java2011/article/details/6529226