Ⅰ 如何構建編譯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/下的鎖機軟體刪除,重啟這個估計有點難度,對於一般手機用戶,第三個是連接電腦手機助手看能不能卸載,如果不知道是哪個軟體就將所有第三方的度卸載了 第四講鎖機軟體備份導出(電腦)反編譯破解鎖機密碼(不一定成功)