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

twrp编译

发布时间:2022-02-06 15:22:21

⑴ 如何从源代码编译TWRP Recovery

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

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

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

⑶ 如何构建编译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秒自进入安卓机器界面 ③用数据线连接手机 ④线刷宝识别手机型号并且给相应刷机包点载 ⑤载完点刷机等电脑显示刷机功拔手

⑸ verizon QTAIR7 恢复出厂之后卡google认证,安卓5.1,求刷机包或进系统教程

Google现在在国内是没有任何服务的,所以Google的认证只能是在国外去进行,国内是不行的。

⑹ 谁有基于s3c2410的u-boot移植成功了的源码啊

U-Boot(Universal Boot Loader)是德国DENX小组开发的用于多种嵌入式CPU的BootLoader程序,它可以运行于PowerPC、ARM、MIPS等多种嵌入式开发板上。
u-boot目录的源码结构如下:

board:开发板相关目录。

common:通用的命令函数。

cpu:特定CPU架构相关目录,如arm920t。

doc:uboot的开发、使用文档。

drivers:uboot支持的设备驱动程序,比如串口,nandflash,网卡。

fs: 支持的文件系统,Uboot现在支持cramfs、fat、fdos、jffs2和registerfs。

include:头文件和开发板配置文件,configs目录下是开发板的配置文件

lib_xxxx: 与体系结构相关的库文件。如与ARM相关的库放在lib_arm中。

lib_generic:通用的库函数。

net:各种网络协议,TFTP协议、NFS协议等。

tools:uboot自带的工具。

下面我们就针对S3C2410平台u-boot的移植步骤做一下简单介绍:

1、首先下载u-boot的源码包,然后解压,进入源码包目录。

2、修改源码让u-boot支持从Nand Flash启动。

具体如下:

一、修改“u-boot-1.3.2/cpu/arm920t/start.S”文件,执行以下命令:

#gedit cpu/arm920t/start.S

(1)181行和201行前加上//,注释掉

181 //#ifdef CONFIG_AT91RM9200

201 //#endif

(2)#ifndef CONFIG_SKIP_RELOCATE_UBOOT之后加入:

#ifdef CONFIG_S3C2410_NAND_BOOT

bl _myself

#else

(3)“ble _loop”语句之后加入:

#endif

(4)“_start_armboot: .word start_armboot”语句之后加入_loop子程序:

/*

*************************************************************************

*

* u-boot to ram

*

*************************************************************************

*/

#ifdef CONFIG_S3C2410_NAND_BOOT

_myself:

mov r10, lr @save return address to r10

ldr sp, DW_STACK_START

mov fp, #0

bl NF_Init

ldr r0, =UBOOT_RAM_BASE

mov r1, #0x0

mov r2, #0x30000

bl nand_read_whole

tst r0, #0x0

beq ok_nand_read

1: b 1b

ok_nand_read:

mov r0, #0x00000000

ldr r1, =UBOOT_RAM_BASE

mov r2, #0x400

go_next:

ldr r3, [r0], #4

ldr r4, [r1], #4

teq r3, r4

bne notmatch

subs r2, r2, #4

beq done_nand_read

bne go_next

notmatch:

1: b 1b

done_nand_read:

mov pc, r10

#endif

DW_STACK_START:

.word STACK_BASE+STACK_SIZE-4

二、新建“u-boot-1.3.2/ board/smdk2410/nand.c”文件

执行命令:

#gedit board/up2410/nand.c

在打开的文件里添加如下内容:

#include <common.h>

#include <s3c2410.h>

#include <config.h>

#define TACLS 0

#define TWRPH0 3

#define TWRPH1 0

#define U32 unsigned int

extern unsigned long nand_probe(unsigned long physadr);

static void NF_Reset(void)

{

int i;

NF_nFCE_L();

NF_CMD(0xFF);

for(i=0;i<10;i++);

NF_WAITRB();

NF_nFCE_H();

}

void NF_Init(void)

{

rNFCONF=(1<<15)|(1<<14)|(1<<13)|(1<<12)|(1<<11)|(TACLS<<8)|(TWRPH0<<4)|(TWRPH1<<0);

NF_Reset();

}

int nand_read_whole(unsigned char *buf, unsigned long start_addr, int size)

{

int i, j;

if((start_addr & NAND_BLOCK_MASK) || (size & NAND_BLOCK_MASK))

return 1;

NF_nFCE_L();

for(i=0; i<10; i++);

i = start_addr;

while(i < start_addr + size) {

rNFCMD = 0;

rNFADDR = i & 0xff;

rNFADDR = (i >> 9) & 0xff;

rNFADDR = (i >> 17) & 0xff;

rNFADDR = (i >> 25) & 0xff;

NF_WAITRB();

for(j=0; j < NAND_SECTOR_SIZE; j++, i++) {

*buf = (rNFDATA & 0xff);

buf++;

}

}

NF_nFCE_H();

return 0;

}

三、修改“u-boot-1.3.2/board/smdk2410/Makefile”文件

执行命令:

#gedit board/smdk2410/Makefile

将“COBJS:= smdk2410.o flash.o”改为“COBJS:=smdk2410.o flash.o nand.o”

四、修改“u-boot-1.3.2/include/configs/smdk2410.h”文件

执行命令:

#gedit include/configs/smdk2410.h

在文件的最后一个#endif的前面添加如下内容:

#define CONFIG_S3C2410_NAND_BOOT 1

#define STACK_BASE 0x33f00000

#define STACK_SIZE 0x8000

#define UBOOT_RAM_BASE 0x33f80000

#define CFG_NAND_BASE 0x4E000000

#define CFG_MAX_NAND_DEVICE 1

#define SECTORSIZE 512

#define NAND_SECTOR_SIZE SECTORSIZE

#define NAND_BLOCK_MASK (NAND_SECTOR_SIZE - 1)

#define ADDR_COLUMN 1

#define ADDR_PAGE 2

#define ADDR_COLUMN_PAGE 3

#define NAND_ChipID_UNKNOWN 0x00

#define NAND_MAX_FLOORS 1

#define NAND_MAX_CHIPS 1

#define WRITE_NAND_COMMAND(d, adr) do {rNFCMD = d;} while(0)

#define WRITE_NAND_ADDRESS(d, adr) do {rNFADDR = d;} while(0)

#define WRITE_NAND(d, adr) do {rNFDATA = d;} while(0)

#define READ_NAND(adr) (rNFDATA)

#define NAND_WAIT_READY(nand) {while(!(rNFSTAT&(1<<0)));}

#define NAND_DISABLE_CE(nand) {rNFCONF |= (1<<11);}

#define NAND_ENABLE_CE(nand) {rNFCONF &= ~(1<<11);}

#define NAND_CTL_CLRALE(nandptr)

#define NAND_CTL_SETALE(nandptr)

#define NAND_CTL_CLRCLE(nandptr)

#define NAND_CTL_SETCLE(nandptr)

#define CONFIG_MTD_NAND_VERIFY_WRITE 1

#define rNFCONF (*(volatile unsigned int *)0x4e000000)

#define rNFCMD (*(volatile unsigned char *)0x4e000004)

#define rNFADDR (*(volatile unsigned char *)0x4e000008)

#define rNFDATA (*(volatile unsigned char *)0x4e00000c)

#define rNFSTAT (*(volatile unsigned int *)0x4e000010)

#define rNFECC (*(volatile unsigned int *)0x4e000014)

#define rNFECC0 (*(volatile unsigned char *)0x4e000014)

#define rNFECC1 (*(volatile unsigned char *)0x4e000015)

#define rNFECC2 (*(volatile unsigned char *)0x4e000016)

#define NF_CMD(cmd) {rNFCMD=cmd;}

#define NF_ADDR(addr) {rNFADDR=addr;}

#define NF_nFCE_L() {rNFCONF&=~(1<<11);}

#define NF_nFCE_H() {rNFCONF|=(1<<11);}

#define NF_RSTECC() {rNFCONF|=(1<<12);}

#define NF_RDDATA() (rNFDATA)

#define NF_WRDATA(data) {rNFDATA=data;}

#define NF_WAITRB() {while(!(rNFSTAT&(1<<0)));}

3、使u-boot支持dm9000网卡

步骤如下:

一、将dm9000x.h和dm9000x.c两个文件拷贝到drivers/net/下。

二、2. 修改“u-boot-1.3.2/include/configs/smdk2410.h”文件

执行命令:

#gedit include/configs/smdk2410.h

(1)将原网卡“CS8900”改为“DM9000”

(2)添加网络命令

(3)修改IP地址

(4)修改命令提示符

(5)修改默认下载地址

(6)修改环境变量在Nand Flash中的存储地址

具体如下:

(1)将原网卡“CS8900”改为“DM9000”

注释掉:

// #define CONFIG_DRIVER_CS8900 1 /* we have a CS8900 on-board */

// #define CS8900_BASE 0x19000300

// #define CS8900_BUS16 1 /* the linux driver does accesses as shorts */

这3行之后添加:

#define CONFIG_DRIVER_DM9000 1

#define CONFIG_DRIVER_DM9000_BASE 0x10000000

#define DM9000_IO CONFIG_DM9000_BASE

#define DM9000_DATA (DM9000_IO + 2)

#define CONFIG_DM9000_USE_16BIT

(2)添加网络命令

找到下面的几行:

#define CONFIG_CMD_CACHE

#define CONFIG_CMD_DATE

#define CONFIG_CMD_ELF

在其下面添加下面几行:

#define CONFIG_CMD_REGINFO

#define CONFIG_CMD_NAND

#define CONFIG_CMD_PING

#define CONFIG_CMD_DLF

#define CONFIG_CMD_ENV

#define CONFIG_CMD_NET

(3)修改IP地址

找到下面几行:

#define CONFIG_BOOTDELAY 3

/*#define CONFIG_BOOTARGS "root=ramfs devfs=mount console=ttySA0,9600" */

/*#define CONFIG_ETHADDR 08:00:3e:26:0a:5b */

#define CONFIG_NETMASK 255.255.255.0

#define CONFIG_IPADDR 10.0.0.110

#define CONFIG_SERVERIP 10.0.0.1

/*#define CONFIG_BOOTFILE "elinos-lart" */

/*#define CONFIG_BOOTCOMMAND "tftp; bootm" */

修改为:

#define CONFIG_BOOTDELAY 3

#define CONFIG_BOOTARGS "root=/dev/mtdblock3 init=/linuxrc console=ttySAC0,115200"

#define CONFIG_ETHADDR 08:00:3e:26:0a:5b

#define CONFIG_NETMASK 255.255.255.0

#define CONFIG_IPADDR 192.168.1.13

#define CONFIG_SERVERIP 192.168.1.12

#define CONFIG_BOOTFILE "uImage"

#define CONFIG_BOOTCOMMAND "tftp; bootm"

#define CONFIG_CMDLINE_TAG 1

#define CONFIG_SETUP_MEMORY_TAGS 1

#define CONFIG_INITRD_TAG 1

(4)修改命令提示符

找到下面一行:

#define CFG_PROMPT "SMDK2410 # "

修改为:

#define CFG_PROMPT "[ smdk2410 #]"

(5)修改默认下载地址

找到下面一行:

#define CFG_LOAD_ADDR 0x33000000

修改为:

#define CFG_LOAD_ADDR 0x30008000

#define CFG_TFTP_LOAD_ADDR 0x30008000

(6)修改环境变量在Nand Flash中的存储地址

找到下面两行:

#define CFG_ENV_IS_IN_FLASH 1

#define CFG_ENV_SIZE 0x10000

修改为:

#define CFG_ENV_IS_IN_NAND 1

#define CFG_ENV_SIZE 0x4000

#define CFG_ENV_OFFSET (0x80000-0x4000)

4、编译生成u-boot

依次执行以下命令:

#make smdk2410_config

#make

编译完成之后就生成了u-boot.bin文件,这个文件就是我们要烧写到开发板上的文件。

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

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

⑻ 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(仓库):

⑼ 如何构建编译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编译相关的资料

热点内容
51单片机连接adc 浏览:857
python命名变量报错 浏览:116
安卓手机如何换windows系统 浏览:610
python中的类是什么 浏览:627
我的英雄学院用哪个app可以看 浏览:33
excel插入选项卡对象命令 浏览:691
python字符全排列 浏览:499
824页大瓜文件pdf 浏览:219
朔州ios源码 浏览:248
算法逻辑电路 浏览:939
青少年喝酒解压辩论赛 浏览:173
android如何新建activity 浏览:739
ntp支持的认证算法 浏览:712
想做快手主播需要什么app 浏览:923
阿里云服务器如何转账户 浏览:903
编译器和解释器实现技术完全不同 浏览:431
虐杀原形汉化补丁怎么解压 浏览:645
文件夹验证失败 浏览:637
python是用什么软件编程 浏览:251
java并发编程教程 浏览:324