導航:首頁 > 源碼編譯 > 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編譯相關的資料

熱點內容
android如何新建activity 瀏覽:737
ntp支持的認證演算法 瀏覽:710
想做快手主播需要什麼app 瀏覽:921
阿里雲伺服器如何轉賬戶 瀏覽:901
編譯器和解釋器實現技術完全不同 瀏覽:429
虐殺原形漢化補丁怎麼解壓 瀏覽:643
文件夾驗證失敗 瀏覽:635
python是用什麼軟體編程 瀏覽:247
java並發編程教程 瀏覽:319
江鈴寶典空調壓縮機工作時間過短 瀏覽:634
自製單片機玩具車 瀏覽:901
stm32單片機模塊電源電壓 瀏覽:187
pdf層次 瀏覽:735
電腦里找不到編譯器 瀏覽:843
明茨伯格pdf 瀏覽:442
把網頁存成pdf 瀏覽:268
如何對電腦的d盤加密 瀏覽:101
刀片式伺服器怎麼連接電腦 瀏覽:82
矩陣計算java 瀏覽:235
如何把各銀行app整合 瀏覽:881