导航:首页 > 源码编译 > 编译twrp

编译twrp

发布时间:2022-01-31 04:31:50

Ⅰ 如何构建编译TWRP touch recovery

目前稳定的的分支是twrp2.4板本2.4.xx代码基地。如果你使用的CM10.1你*必须*使用twrp2.4分支。主分支代表TWRP2.2和JB-WIP TWRP2.3。选择任何你喜欢的分支,但唯一的分支越来越活跃的代码更改twrp2.4。
* CM7 ONLY*
更换整个CM7/build文件夹

确保您获得twrp2.3分支和不是主分支。

*开始构建编译*
注意:如果您添加或更改任何标志,你将需要进行编译清除,然后再重新编译或标志更改将不被使用起。

现在,你的源代码,你需要设置或更改您的设备(S)的一些构建标志。查找BoardConfig.mk为您的设备,CM/devices/manufacturer/codename文件夹(例如CM/devices/hp/tenderloin/BoardConfig.mk)BoardConfig.mk。首先配置BoardConfig.mk的文件为
TARGET_RECOVERY_INITRC:=
如果您的设备有此行,将在恢复中使用一个自定义,预置init.rc的路径。最有可能的是,你将需要略微更改自定义init.rc。寻找recovery中的init.rc文件,并打开它。顶部附近,你会看到这样的信息:
on init
export PATH /sbin
export LD_LIBRARY_PATH .:/sbin

添加所需的最后一行。这条线是需要得到的链接器运行。 TWRP ClockworkMod不同,是一个动态链接的恢复。动态链接可以让我们节省了大量的空间,以帮助确保,TWRP恢复图像将适合在更多的设备。它也让我们使用动态链接的触摸屏上看到摩托罗拉Photon与Atrix和惠普的TouchPad,而无需 mount /system 的二进制文件。

还需要包括您的主板配置架构和平台设置。通常情况下,这些都已经包含了,如果你正在使用设备的configs别人创建的,但如果你创建你自己的,你可能需要添加他们。没有他们,往往会恢复故障段在启动过程中,你只会看到屏幕上一遍又一遍地典辉帘闪光。

Ⅱ twrp怎么修改内置存储目录

那就是编译的twrp问题,原版英文不支持中文的

linux mkimages 文件在哪

下载:
两种途径得到mkImage工具uImage,
解决方法:
方法一:

安装mkimage工具,载ubuntu11.10下执行以下命令进行安装:
#sudo apt-get install uboot-mkimage
方法二:
编译uboot源码,编译成功后载uboot/tools目录下会生成mkimgage工具,将mkimage工具拷贝到/usr/bin/目录下即可。

使用:

uboot源代码的tools/目录下有mkimage工具,这个工具可以用来制作不压缩或者压缩的多种可启动映象文件。
mkimage在制作映象文件的时候,是在原来的可执行映象文件的前面加上一个0x40字节的头,记录参数所指定的信息,这样uboot才能识别这个映象是针对哪个CPU体系结构的,哪个OS的,哪种类型,加载内存中的哪个位置, 入口点在内存的那个位置以及映象名是什么
root@Glym:/tftpboot# ./mkimage
Usage: ./mkimage -l image
-l ==> list image header information
./mkimage -A arch -O os -T type -C comp -a addr -e ep -n name -d data_file[:data_file...] image
-A ==> set architecture to 'arch'
-O ==> set operating system to 'os'
-T ==> set image type to 'type'
-C ==> set compression type 'comp'
-a ==> set load address to 'addr' (hex)
-e ==> set entry point to 'ep' (hex)
-n ==> set image name to 'name'
-d ==> use image data from 'datafile'
-x ==> set XIP (execute in place)
参数说明:
-A 指定CPU的体系结构:
取值 表示的体系结构
alpha Alpha
arm A RM
x86 Intel x86
ia64 IA64
mips MIPS
mips64 MIPS 64 Bit
ppc PowerPC
s390 IBM S390
sh SuperH
sparc SPARC
sparc64 SPARC 64 Bit
m68k MC68000
-O 指定操作系统类型,可以取以下值:
openbsd、netbsd、freebsd、4_4bsd、linux、svr4、esix、solaris、irix、sco、dell、ncr、lynxos、vxworks、psos、qnx、u-boot、rtems、artos
-T 指定映象类型,可以取以下值:
standalone、kernel、ramdisk、multi、firmware、script、filesystem
-C 指定映象压缩方式,可以取以下值:
none 不压缩
gzip 用gzip的压缩方式
bzip2 用bzip2的压缩方式
-a 指定映象在内存中的加载地址,映象下载到内存中时,要按照用mkimage制作映象时,这个参数所指定的地址值来下载
-e 指定映象运行的入口点地址,这个地址就是-a参数指定的值加上0x40(因为前面有个mkimage添加的0x40个字节的头)
-n 指定映象名
-d 指定制作映象的源文件

U-BOOT下使用bootm引导内核方法

一、在开始之前先说明一下bootm相关的东西。
1、 首先说明一下,S3C2410架构下的bootm只对sdram中的内核镜像文件进行操作(好像AT91架构提供了一段从flash复制内核镜像的代码, 不过针对s3c2410架构就没有这段代码,虽然可以在u-boot下添加这段代码,不过好像这个用处不大),所以请确保你的内核镜像下载到sdram 中,或者在bootcmd下把flash中的内核镜像复制到sdram中。
2、-a参数后是内核的运行地址,-e参数后是入口地址。

3、
1)如果我们没用mkimage对内核进行处理的话,那直接把内核下载到0x30008000再运行就行,内核会自解压运行(不过内核运行需要一个tag来传递参数,而这个tag建议是由bootloader提供的,在u-boot下默认是由bootm命令建立的)。

2)如果使用mkimage生成内核镜像文件的话,会在内核的前头加上了64byte的信息,供建立tag之用。bootm命令会首先判断bootm xxxx 这个指定的地址xxxx是否与-a指定的加载地址相同。
(1)如果不同的话会从这个地址开始提取出这个64byte的头部,对其进行分析,然后把去掉头部的内核复制到-a指定的load地址中去运行之
(2)如果相同的话那就让其原封不同的放在那,但-e指定的入口地址会推后64byte,以跳过这64byte的头部。

二、好,接着介绍使用mkimage生成镜像文件并下载运行的方法。

方法一、
1、首先,用u-boot/tools/mkimage这个工具为你的内核加上u-boot引导所需要的文件头,具体做法如下:
[root@localhost tftpboot]#mkimage -n 'linux-2.6.14' -A arm -O linux -T kernel -C none -a 0x30008000 -e 0x30008000 -d zImage zImage.img
Image Name: linux-2.6.14
Created: Fri Jan 12 17:14:50 2007
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 1262504 Bytes = 1232.91 kB = 1.20 MB
Load Address: 0x30008000
Entry Point: 0x30008000
这里解释一下参数的意义:
-A ==> set architecture to 'arch'
-O ==> set operating system to 'os'
-T ==> set image type to 'type'
-C ==> set compression type 'comp'
-a ==> set load address to 'addr' (hex)
-e ==> set entry point to 'ep' (hex)
-n ==> set image name to 'name'
-d ==> use image data from 'datafile'
-x ==> set XIP (execute in place)
2 、下载内核
U-Boot 1.1.3 (Jan 12 2007 - 16:16:36)
U-Boot code: 33F80000 -> 33F9BAC0 BSS: -> 33F9FBAC
RAM Configuration:
Bank #0: 30000000 64 MB
Nor Flash: 512 kB
Nand Flash: 64 MB
In: serial
Out: serial
Err: serial
Hit any key to stop autoboot: 0
sbc2410=>tftp 0x31000000 zImage.img
TFTP from server 192.168.1.115; our IP address is 192.168.1.128
Filename 'zImage.img'.
Load address: 0x31000000
Loading: #################################################################
#################################################################
#################################################################
####################################################
done
Bytes transferred = 1263324 (1346dc hex)

3.运行
sbc2410=>bootm 0x31000000
## Booting image at 31000000 ...
Image Name: linun-2.6.14
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 1263260 Bytes = 1.2 MB
Load Address: 30008000
Entry Point: 30008000
Verifying Checksum ... OK
OK
Starting kernel ...
Uncompressing Linux.............................................................Linux version 2.6.14 (root@luofuchong) (gcc version 3.4.1) #21 Fri Oct 20 17:206CPU: ARM920Tid(wb) [41129200] revision 0 (ARMv4T)
Machine: SMDK2410
Memory policy: ECC disabled, Data cache writeback
CPU S3C2410A (id 0x32410002)
S3C2410: core 202.800 MHz, memory 101.400 MHz, peripheral 50.700 MHz
S3C2410 Clocks, (c) 2004 Simtec Electronics
CLOCK: Slow mode (1.500 MHz), fast, MPLL on, UPLL on
USB Control, (c) 2006 sbc2410
CPU0: D VIVT write-back cache
CPU0: I cache: 16384 bytes, associativity 64, 32 byte lines, 8 sets
CPU0: D cache: 16384 bytes, associativity 64, 32 byte lines, 8 sets
Built 1 zonelists
Kernel command line: console="ttySAC0" root="/dev/nfs" nfsroot="192".168.1.115:/frien"irq: clearing subpending status 00000002
PID hash table entries: 512 (order: 9, 8192 bytes)
timer tcon="00500000", tcnt a509, tcfg 00000200,00000000, usec 00001e4c
Console: colour mmy device 80x30
Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
Memory: 64MB = 64MB total
Memory: 62208KB available (1924K code, 529K data, 108K init)
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
softlockup thread 0 started up.
NET: Registered protocol family 16
S3C2410: Initialising architecture
SCSI subsystem initialized
usbcore: registered new driver usbfs
usbcore: registered new driver hub
S3C2410 DMA Driver, (c) 2003-2004 Simtec Electronics
DMA channel 0 at c4800000, irq 33
DMA channel 1 at c4800040, irq 34
DMA channel 2 at c4800080, irq 35
DMA channel 3 at c48000c0, irq 36
NetWinder Floating Point Emulator V0.97 (double precision)
devfs: 2004-01-31 Richard Gooch ([email protected])
devfs: devfs_debug: 0x0
devfs: boot_options: 0x1
yaffs Oct 18 2006 12:39:51 Installing.
Console: switching to colour frame buffer device 30x40
fb0: s3c2410fb frame buffer device
fb1: Virtual frame buffer device, using 1024K of video memory
led driver initialized
s3c2410 buttons successfully loaded
s3c2410_serial0 at MMIO 0x50000000 (irq = 70) is a S3C2410
s3c2410_serial1 at MMIO 0x50004000 (irq = 73) is a S3C2410
s3c2410_serial2 at MMIO 0x50008000 (irq = 76) is a S3C2410
io scheler noop registered
io scheler anticipatory registered
io scheler deadline registered
io scheler cfq registered
RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize
usbcore: registered new driver ub
Cirrus Logic CS8900A driver for Linux (Modified for SMDK2410)
eth0: CS8900A rev E at 0xe0000300 irq="53", no eeprom , addr: 08: 0:3E:26:0A:5B
S3C24XX NAND Driver, (c) 2004 Simtec Electronics
s3c2410-nand: mapped registers at c4980000
s3c2410-nand: timing: Tacls 10ns, Twrph0 30ns, Twrph1 10ns
NAND device: Manufacturer ID: 0xec, Chip ID: 0x76 (Samsung NAND 64MiB 3,3V 8-bi)Scanning device for bad blocks
Bad eraseblock 1884 at 0x01d70000
Creating 4 MTD partitions on "NAND 64MiB 3,3V 8-bit":
0x00000000-0x00020000 : "vivi"
0x00020000-0x00030000 : "param"
0x00030000-0x00200000 : "kernel"
0x00200000-0x04000000 : "root"
usbmon: debugfs is not available
s3c2410-ohci s3c2410-ohci: S3C24XX OHCI
s3c2410-ohci s3c2410-ohci: new USB bus registered, assigned bus number 1
s3c2410-ohci s3c2410-ohci: irq 42, io mem 0x49000000
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 2 ports detected
Initializing USB Mass Storage driver...
usbcore: registered new driver usb-storage
USB Mass Storage support registered.
usbcore: registered new driver usbmouse
drivers/usb/input/usbmouse.c: v1.6:USB HID Boot Protocol mouse driver
mice: PS/2 mouse device common for all mice
s3c2410 TouchScreen successfully loaded
UDA1341 audio driver initialized
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 4096 (order: 2, 16384 bytes)
TCP bind hash table entries: 4096 (order: 2, 16384 bytes)
TCP: Hash tables configured (established 4096 bind 4096)
TCP reno registered
TCP bic registered
NET: Registered protocol family 1
IP-Config: Complete:
device=eth0, addr="192".168.1.128, mask="255".255.255.0, gw="192".168.1.1,
host="luofuchong", domain=, nis-domain=(none),
bootserver="192".168.1.1, rootserver="192".168.1.115, rootpath=
Looking up port of RPC 100003/2 on 192.168.1.115
Looking up port of RPC 100005/1 on 192.168.1.115
VFS: Mounted root (nfs filesystem).
Mounted devfs on /dev
Freeing init memory: 108K
init started: BusyBox v1.1.3 (2006.09.20-14:52+0000) multi-call binary
Starting pid 696, console /dev/tts/0: '/etc/init.d/rcS'
Please press Enter to activate this console.

方法二、
1、首先,用u-boot/tools/mkimage这个工具为你的内核加上u-boot引导所需要的文件头,具体做法如下:
[root@localhost tftpboot]#mkimage -n 'linux-2.6.14' -A arm -O linux -T kernel -C none -a 0x30008000 -e 0x30008040 -d zImage zImage.img
Image Name: linux-2.6.14
Created: Fri Jan 12 17:14:50 2007
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 1262504 Bytes = 1232.91 kB = 1.20 MB
Load Address: 0x30008000
Entry Point: 0x30008040

2 、下载内核
U-Boot 1.1.3 (Jan 12 2007 - 16:16:36)
U-Boot code: 33F80000 -> 33F9BAC0 BSS: -> 33F9FBAC
RAM Configuration:
Bank #0: 30000000 64 MB
Nor Flash: 512 kB
Nand Flash: 64 MB
In: serial
Out: serial
Err: serial
Hit any key to stop autoboot: 0
sbc2410=>tftp 0x30008000 zImage.img
TFTP from server 192.168.1.115; our IP address is 192.168.1.128
Filename 'zImage.img'.
Load address: 0x30008000
Loading: #################################################################
#################################################################
#################################################################
####################################################
done
Bytes transferred = 1263324 (1346dc hex)

3.运行
sbc2410=>bootm 0x30008000
## Booting image at 30008000 ...
Image Name: linux-2.6.14
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 1261056 Bytes = 1.2 MB
Load Address: 30008000
Entry Point: 30008040
Verifying Checksum ... OK
XIP Kernel Image ... OK

Ⅳ 挂载文件系统出错,怎么回事

用NFS方式挂载根文件系统 由于原来的内核是用ATBOOT的方式下载的,不知道怎么传递参数(好像不能,网上查的nfs方式都是用U-boot的方式挂载的),因此决定用u-boot重新下载内核。 1rph0 = 30,<br/>.twrph1 = 10,<br/>... 原来是20,60,20,但这个参数会找不到nand flash,需要修改为上面几个。否则得到的uImage 文件会下载运行不了。 1.1.3修改交叉编译器 vi Makefile 找到 CROSS_COMPILE ?= arm-linux 这一行,将arm-linux-修改为交叉编译器的路径(Linux系统上交叉编译工具的路径为下) /usr/local/arm/3.4.1/bin/arm-linux- 输入:wq 保存并退出。 1.1.4编译 make clean make uImage (在执行命令之前要执行make menuconfig,进行配置内核: networking options-》IP:kernel level autoconfiguralion项 选中file systems-》network file systems-》下的root file system on nfs和nfs file system support 由于我解压的是板子自带的内核,发现这些都已经选中了,因此直接编译即可,执行make uImage后,最后会提示一个错误,说不能创建某个文件,但我发现uImage已经生成了,就没理会错误,直接拿来用了) 1.2下载u-boot和内核 1.2.1下载u-boot 1.2.1.1 SJF2440 环境设置(见前面部分图文介绍) 下载u-boot用板子自带工具SJF2440.exe,安装其驱动,具体见说明文档 1.2.1.2 烧写u-boot.bin 到Nand flash 中 新建D:\atboot,把sjf2440.exe 和u-boot.bin复制到文件夹内 (sjf2440.exe 和u-boot.bin 必须在同一目录下) 具体见说明文档 1.2.1.3 利用u-boot下载uImage和文件系统到arm板上 由于板子自带是用autoflash.img自动下载uImage和文件系统到arm板上,现在我还不太明白具体的地址,因此就自动把文件系统也下载上去了,但是这个文件系统不用,下面将用nfs挂载linux主机上的文件系统rootfs文件 具体见说明文档 2. 用nfs挂载根文件系统 2.1 在虚拟机Linux上建立文件夹 /home/water/rootfs 把板子自带的系统直接拷进rootfs文件夹内 2.2linux主机 配置nfs 文件系统 修改/etc/exports 文件,格式为共享目录开发板ip 地址(权限设置):cat <<EOM >/etc/exports /home/water/rootfs *(rw,sync,insecure,no_root_squash) 重启nfs 服务器: /etc/init.d/nfs restart 2.3 IP设置 XP:192.168.1.100 linux:192.168.1.128 arm:192.168.1.7(这个一会用U-boot给内核传递) 2.4 给u-boot传递参数 启动u-boot,在倒计时结束前,按下空格键,进入输入参数界面 输入: AVANTECH# set bootargs root=/dev/nfs nfsroot=192.168.1.128:/home/water/rootfs rw noinitrd init=/linuxrc ip=192.168.1.7:192.168.1.128:192.168.1.128:255.255.255.0:avantech:eth0:off console=ttySAC0,115200 (注:上面为一行代码,只是可能自动换行的缘故,因此输入是可以一部分一部分的复制) AVANTECH# saveenv AVANTECH# reset 2.5然后就ok了

Ⅳ 如何从源代码编译TWRP Recovery

目前稳定的的分支是twrp2.4板本2.4.xx代码基地。如果你使用的CM10.1你*必须*使用twrp2.4分支。主分支代表TWRP2.2和JB-WIP TWRP2.3。选择任何你喜欢的分支,但唯一的分支越来越活跃的代码更改twrp2.4。 * CM7 ONLY* 更换整个CM7/build文件夹

Ⅵ 如何构建编译TWRP touch recovery

1. 关机状态下同时长按手机电源键、音量+、音量- 这三个键,如下图: 2. 屏幕亮后松开按键,等待出现下图画面即已经进入recovery模式,如果未出现,请重复步骤1; 进入recovery模式之后,如果想双清恢复系统或是双清清除锁屏密码,请提前做好手机上个人数据的备份工作。 1. 使用音量加减键选择至“wipe data/ factory reset”,按电源键确认; 2. 使用音量加减键选择至“Yes”,按电源键确认; 3. 使用音量加减键选择至“wipe cache partition”,按电源键确认; 4. 等待手机重启。您的手机就会恢复到出厂的状态了。

Ⅶ 基于 omnirom7.1 最新twrp3.1.0源码编译适配能刷lineageos吗

刷机步骤(线刷): ①电脑载线刷宝 ②关机状态按电源键跟音量减键5秒自进入安卓机器界面 ③用数据线连接手机 ④线刷宝识别手机型号并且给相应刷机包点载 ⑤载完点刷机等电脑显示刷机功拔手

Ⅷ TWRP recovery data无法挂载怎么解决

,重新格式化data 清除system cache等,再开机进twrp连接电脑尝试拖入文件。

2,或在twrp界面设置开启ADB模式,通过adb传文件。adb sideload filename.zip

如果以上不行,按音量下加开机键,开机进入fast boot 模式,连接电脑通过fastboot重刷twrp。
fastboot flash recovery twrpfilename.img(刷入对应名称twrp文件)
fastboot boot twrpfilename.img(引导进入twrp)

twrp推荐官方搜索对应机型下载,win10只需要把小米工具的fastboot文件和刷机文件放在同一个文件夹通过命令刷入,Linux不用。
现在所有的TWRP 3.x 源代码都是公开的,您可以自己编译它。本指南并不是逐字句的指南,如果您不熟悉基本的Linux命令和在AOSP中构建的流程,那么您可能无法完成编译。

目前可以使用Omni 6.0, Omni 7.1, Omni 8.1, Omni 9.0, CM 13.0, CM 14.1, CM 15.1, LineageOS 16.0源代码。除非您的设备有一个超级分区,否则建议使用Omni 9.0。

如果你使用的是CM/LineageOS,你需要把TWRP放在LineageOS/bootable/recovery-twrp文件夹中,并在你的BoardConfig.mk中设置RECOVERY_VARIANT:= TWRP 。TWRP源代码可以在这里找到:


(注意:最新TWRP源代码的位置已经改变!)

选择最新可用的分支。Omni不需要这个步骤,因为Omni默认情况下已经包含TWRP源代码,但是,如果您使用的是较老版本的Omni,您可能需要从最新的分支中拉出(最新的分支将在较老的构建树中成功编译)。

如果您只对构建TWRP感兴趣,那么您可能想尝试使用轻量的构建清单。您可以尝试使用下面的清单。它在大多数情况下应该工作,但有些情况下,在你的构建树中需要比清单提供的更多的repo(仓库):

Ⅸ 找到支持刷入Android7.1.1的TWRP,最新TWRP如何删除DM校验

如果没root过,或者没给过权限,进入recovery 模式恢复出厂设置,清除所有数据,因为你下载安装了恶意软件,看情况是开机自启,所以恢复出厂设置应该就可以了,每天给root权限情况下它是无权安装为系统软件的,如果已经给了root权限,进入fastboot模式用小米刷机工具或者adb命令刷入twrp版recovery,用这个第三方recovery的文件管理功能找到data/app/或者data/priv-app/下的锁机软件删除,重启这个估计有点难度,对于一般手机用户,第三个是连接电脑手机助手看能不能卸载,如果不知道是哪个软件就将所有第三方的度卸载了 第四讲锁机软件备份导出(电脑)反编译破解锁机密码(不一定成功)

阅读全文

与编译twrp相关的资料

热点内容
工作三年的大专程序员 浏览:728
java毕业设计文献 浏览:143
筹码集中度指标源码 浏览:482
listsortjava 浏览:186
plc闪光电路编程实例 浏览:299
socket编程试题 浏览:206
华为的服务器怎么设置从光驱启动 浏览:871
程序员真的累吗 浏览:328
学信网app为什么刷脸不了 浏览:874
天蝎vs程序员 浏览:996
单片机下载口叫什么 浏览:190
程序员的道 浏览:926
云服务器不实名违法吗 浏览:558
怎样查看文件夹图片是否重复 浏览:995
文件怎么导成pdf文件 浏览:808
打开sql表的命令 浏览:103
安卓手机如何面部支付 浏览:38
天元数学app为什么登录不上去 浏览:825
明日之后为什么有些服务器是四个字 浏览:104
安卓系统l1是什么意思 浏览:26