114 pagesV  1 2 3 4 5 6 > »  
 
REPLY
> Building TWRP recovery from source
baddhet
Message#1
17.01.15, 23:38
Starting a new life.
*********
[offline]

Topics Curator
Group: Curators
Messages 2549
Check in: 03.04.12
Xiaomi Redmi Note 4X Snapdragon 3/32

Reputation:-  697  +

������ TWRP recovery �� ���������� download



Order table recovery | How to build cwm � | CWM Recovery Compilation � | Creating recovery for MTK �
  • To get started, it is strongly recommended to get acquainted with Forum RulesandRules section "Android - Development and Programming"
  • Before asking a question, look Android OS FAQandGlossary. Respect your and other people's time.
  • The administration of the resource and the authors of the manuals for the erroneous or incorrect actions of the owners with their device are not liable
  • All operations with your phone, You do at your own risk.
  • Sure tomake a full backup before any manipulations with the device!
  • Before posting photos, read the topic Working with Images on the forum
  • Messages that are not related to the topic of discussion (offtopic) are deleted without warning.
Since many devices do not have TWRP recovery, I decided to write this guide. First of all, this article is for those who do not have source codes and configs, we will do it ourselves.
What do we need:
AIDA64 and DiskInfo on smartphone
Ubuntu 12.04 x64
Unlimited Internet, as it will be downloaded about 12 gig source.
38.5 GB of free space, this is only on the source code and on the assembly + 10 gigs on the system itself.
I got to Ubuntu 16.04.2 x64 and Android 6.0.
The sources Omni 6.0.1 I weigh 75 gigs + will be unpacked and for a total of about 200 gigs to build.
Build on Ubuntu 17.10
If you do not have your own sources, then look for the config (device) of a similar device on the same processor onGithub.
Here to you for example my configTWRP_D10A_HighScreen
And so let's get started
Under the utility spoiler there is a video instruction for assembling TWRP
Install Ubuntu 12.04 x64 or 16.04.2 x64 (as you are looking for yourself, I will not paint)
For Ubuntu 12.04 x64 and Android 4.4.4
Install the necessary packages
sudo apt-get install bison build-essential curl flex g ++ - multilib gcc-multilib git-core gnupg gperf lib32ncurses5-dev libxml2-utils lzop pngcrush schedtool squashfs-tools xsltproc zip zlib1g-dev

Next, we put Java Oracle 6
sudo add-apt-repository ppa: webupd8team / java
sudo apt-get update
sudo apt-get install oracle-java6-installer

Login on github (quotes are not needed)
git config --global user.name "your nickname"
git config --global user.email "your mail"

Next, create folders
mkdir ~ / bin
mkdir ~ / omni

Install repo
curl http://commondatastorage.googleapis.com/git-repo-downloads/repo>~ / bin / repo
chmod a + x ~ / bin / repo

Add a variable
echo "export PATH = ~ / bin: $ PATH">>~ / .bashrc

And download the source, android omni 4.4.4.
cd ~ / omni
repo init -u https://github.com/omnirom/android.git -b android-4.4
repo sync

Now we wait while about 12 gig sources are downloaded.
For Ubuntu 16.04.2 x64 and Android 6.0
Install the necessary packages
sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g ++ liblii-dev-i386 libc6-dev-i386 dev libxml2-utils xsltproc unzip maven schedtool

For Android 5.0 - 6.0 you need openjdk 7
sudo add-apt-repository ppa: openjdk-r / ppa
sudo apt-get update
sudo apt-get install openjdk-7-jdk

Login on github'e
git config --global user.name "your nickname"
git config --global user.email "your mail"

Further, according to the familiar scheme
mkdir ~ / bin
PATH = ~ / bin: $ PATH
echo 'PATH = ~ / bin: $ PATH'>>~ / .bashrc
echo 'export USE_CCACHE = 1'>>~ / .bashrc
curl https://storage.googleapis.com/git-repo-downloads/repo>~ / bin / repo
chmod a + x ~ / bin / repo

Create a folder for omnirom sources and enter it.
mkdir omni
cd omni

Downloading source
repo init -u https://github.com/omnirom/android.git -b android-6.0
repo sync
Well, let's start writing a config for our device
Finalization spoiler
And now the fun begins
First, create the device folder for your device.
cd ~ / omni / device
mkdir -p vendor_name / device_name
I have it so
mkdir -p HighScreen / D10A_HighScreen
Next, create * .mk files in the final directory, go through the newly created path in the "explorer".
Create an Android.mk file with the contents:
LOCAL_PATH: = $ (call my-dir)

ifeq ($ (TARGET_DEVICE), device_name)
include $ (call all-makefiles-under, $ (LOCAL_PATH))

endif
It looks like this to me
LOCAL_PATH: = $ (call my-dir)

ifeq ($ (TARGET_DEVICE), D10A_HighScreen)
include $ (call all-makefiles-under, $ (LOCAL_PATH))

endif
Next, create the file AndroidProducts.mk with the contents:
PRODUCT_MAKEFILES: = \
$ (LOCAL_DIR) /device_name.mk \
$ (LOCAL_DIR) /omni_device_name.mk

I look like
PRODUCT_MAKEFILES: = \
$ (LOCAL_DIR) /D10A_HighScreen.mk \
$ (LOCAL_DIR) /omni_D10A_HighScreen.mk
Next, create 2 files that we specified in the AndroidProducts.mk file: device_name.mk and omni_device_name.mk. I have it as it is not difficult to guess D10A_HighScreen.mk and omni_D10A_HighScreen.mk
The contents of the device_name.mk file should look like this:
LOCAL_PATH: = device / vendor_name / device_name

$ (shell mkdir -p $ (OUT) / obj / KERNEL_OBJ / usr)

ifeq ($ (TARGET_PREBUILT_KERNEL),)
LOCAL_KERNEL: = $ (LOCAL_PATH) / kernel
else
LOCAL_KERNEL: = $ (TARGET_PREBUILT_KERNEL)
endif

PRODUCT_COPY_FILES + = \
$ (LOCAL_PATH) / kernel: kernel \
$ (LOCAL_PATH) /dt.img:dt.img \
$ (LOCAL_PATH) /recovery.fstab:root/recovery.fstab

$ (call inherit-product, build / target / product / full.mk)

PRODUCT_NAME: = device_name
$ (shell mkdir -p $ (OUT) / obj / KERNEL_OBJ / usr) on omni 6.0.1, this line is no longer needed and only errors are generated from it, I did not intend to write to 4.4.4 without it.
Attention if in your kernel and recovery there is no dt.img file, then you should not have a line:
$ (LOCAL_PATH) /dt.img:dt.img \

It looks like this to me:
LOCAL_PATH: = device / HighScreen / D10A_HighScreen

$ (shell mkdir -p $ (OUT) / obj / KERNEL_OBJ / usr)

ifeq ($ (TARGET_PREBUILT_KERNEL),)
LOCAL_KERNEL: = $ (LOCAL_PATH) / kernel
else
LOCAL_KERNEL: = $ (TARGET_PREBUILT_KERNEL)
endif

PRODUCT_COPY_FILES + = \
$ (LOCAL_PATH) / kernel: kernel \
$ (LOCAL_PATH) /dt.img:dt.img \
$ (LOCAL_PATH) /recovery.fstab:root/recovery.fstab

$ (call inherit-product, build / target / product / full.mk)

PRODUCT_NAME: = D10A_HighScreen
The contents of the omni_device_name.mk file should look like this:]
# Inherit device configuration
$ (call inherit-product, device / vendor_name / device_name / device_name.mk)

# Device identifier. This must come after all inclusions
PRODUCT_DEVICE: = device_name
PRODUCT_NAME: = omni_device_name
PRODUCT_BRAND: = vendor_name
PRODUCT_MODEL: = # device model
PRODUCT_MANUFACTURER: = vendor_name

All these values ​​are in your system / build.prop stock firmware, rely primarily on them. I have so
# Inherit device configuration
$ (call inherit-product, device / HighScreen / D10A_HighScreen / D10A_HighScreen.mk)

# Device identifier. This must come after all inclusions
PRODUCT_DEVICE: = D10A_HighScreen
PRODUCT_NAME: = omni_D10A_HighScreen
PRODUCT_BRAND: = HighScreen
PRODUCT_MODEL: = Boost 2se
PRODUCT_MANUFACTURER: = HighScreen
Further, from where to get 3 files that we specified in device_name.mk? It's simple, take the programAndroid Image Kitchenand unpack the stock recovery. There will be 2 ramdisk and split_img folders.
In the split_img folder, take the file recovery.img-zImage, rename it to kernel. In the same folder, take the file recovery.img-dtb and rename it to dt.img, if this file is not there, we disassemble the kernel and look for there only the name will be boot.img-dtb, if there is not, then it is not needed. Both files (or one) are left in the device / vendor_name / device_name path
Next, go to the ramdisk / etc folder, take the file recovery.fstab, put it there as the previous 2 files and edit it to make it look like this, but the paths should be yours!
/ system ext4 /dev/block/platform/msm_sdcc.1/by-name/system
/ data ext4 /dev/block/platform/msm_sdcc.1/by-name/userdata
/ cache ext4 /dev/block/platform/msm_sdcc.1/by-name/cache
/ boot emmc /dev/block/platform/msm_sdcc.1/by-name/boot
/ recovery emmc /dev/block/platform/msm_sdcc.1/by-name/recovery
/ external_sd vfat / dev / block / mmcblk1p1 flags = display = "External_sd"; storage; wipeingui; removable
/ internal_sd vfat /dev/block/platform/msm_sdcc.1/by-name/usbmsc flags = display = "Internal_sd"; storage; wipeingui; removable
/ usb-otg vfat / dev / block / sda1 / dev / block / sda flags = display = "USB OTG"; storage; wipeingui; removable

We create the BoardConfig.mk file here the most difficult and some values ​​will have to be pulled from the device on the same process. Well, let's go, we write there:
# Platform
TARGET_BOARD_PLATFORM: =

Open AIDA64, point CPU, first line. I have so
# Platform
TARGET_BOARD_PLATFORM: = msm8226

Further
# Architecture
TARGET_ARCH: = # AIDA64 second line,
TARGET_ARCH_VARIANT: =
TARGET_CPU_ABI: =
TARGET_CPU_ABI2: =
TARGET_CPU_SMP: =
TARGET_CPU_VARIANT: =

These values ​​also write off, I have it so
# Architecture
TARGET_ARCH: = arm
TARGET_ARCH_VARIANT: = armv7-a-neon
TARGET_CPU_ABI: = armeabi-v7a
TARGET_CPU_ABI2: = armeabi
TARGET_CPU_SMP: = true
TARGET_CPU_VARIANT: = krait

Further
# Bootloader
TARGET_NO_BOOTLOADER: = true
TARGET_BOOTLOADER_BOARD_NAME: =

The first line does not change, and in the second the name of the chip is mine
# Bootloader
TARGET_NO_BOOTLOADER: = true
TARGET_BOOTLOADER_BOARD_NAME: = MSM8226

Here we will stop on more in detail:
# Kernel
TARGET_PREBUILT_KERNEL: = # here we specify the path to the device / vendor_name / device_name / kernel kernel
BOARD_KERNEL_CMDLINE: =
BOARD_KERNEL_BASE: =
BOARD_KERNEL_PAGESIZE: =
BOARD_KERNEL_SEPARATED_DT: = true
BOARD_MKBOOTIMG_ARGS: =

With the first line, the line BOARD_KERNEL_CMDLINE, go to the folder of the parsed recovery and look for the file recovery.img-cmdline and enter its contents in this line.
The string BOARD_KERNEL_BASE in the same folder as the recovery.img-base file, its contents is entered in this string.
Line BOARD_KERNEL_PAGESIZE in the same file recovery.img-pagesize its contents we enter in this line.
This BOARD_KERNEL_SEPARATED_DT: = true line does not change.
Here BOARD_MKBOOTIMG_ARGS first specify the path to dt.img - dt device / vendor_name / device_name / dt.img Next - kernel_offset write the contents of the file recovery.img-kerneloff
Attention if in your kernel and recovery there is no dt.img file, then you should not have a line:
BOARD_KERNEL_SEPARATED_DT: = true

And in the line:
BOARD_MKBOOTIMG_ARGS: = --dt device / vendorname / devicename / dt.img --kernel_offset 0x ******** --ramdisk_offset 0x ******** - tags_offset 0x ******* *

There should be no path to this file.--dt device / vendorname / devicename / dt.img, just write like this:
BOARD_MKBOOTIMG_ARGS: = --kernel_offset 0x ******** --ramdisk_offset 0x ******** --tags_offset 0x ********

Next --ramdisk_offset here is the contents of the file recovery.img-ramdiskoff And finally - tags_offset is the contents of the file recovery.img-tagsoff, you also need to add before each value 0x (your characters) for clarity, see below. It looks like this to me
# Kernel
TARGET_PREBUILT_KERNEL: = device / HighScreen / D10A_HighScreen / kernel
BOARD_KERNEL_CMDLINE: = console = null androidboot.hardware = qcom user_debug = 31 msm_rtb.filter = 0x37 lpj = 192000
BOARD_KERNEL_BASE: = 0x00000000
BOARD_KERNEL_PAGESIZE: = 2048
BOARD_KERNEL_SEPARATED_DT: = true
BOARD_MKBOOTIMG_ARGS: = --dt device / HighScreen / D10A_HighScreen / dt.img --kernel_offset 0x00008000 --ramdisk_offset 0x02000000 - tags_offset 0x01e00000

The next thing we need is the size of the partitions in bytes. Download from Google Play "terminal emulator" and write
cat / proc / partitions

Open DiskInfo, 3 points, settings, set daws Partition name, Expert mode and Unmounted partitions. We look for the necessary section, we take number from the terminal and we multiply by 1024, we fill
# Partitions
BOARD_BOOTIMAGE_PARTITION_SIZE: =
BOARD_RECOVERYIMAGE_PARTITION_SIZE: =
BOARD_SYSTEMIMAGE_PARTITION_SIZE: =
BOARD_CACHEIMAGE_PARTITION_SIZE: =
BOARD_USERDATAIMAGE_PARTITION_SIZE: =
BOARD_FLASH_BLOCK_SIZE: = 131072

The string BOARD_FLASH_BLOCK_SIZE is pulled from a similar device, but I have not seen another value for now.

# Recovery
TARGET_RECOVERY_PIXEL_FORMAT: = "RGBX_8888" # Open AIDA64, Display and at the bottom of the line GL_EXT_texture_format
TARGET_USERIMAGES_USE_EXT4: = true
BOARD_HAS_LARGE_FILESYSTEM: = true
BOARD_USE_CUSTOM_RECOVERY_FONT: = \ "roboto_15x24.h \"
BOARD_SUPPRESS_EMMC_WIPE: = true

And last
# TWRP
HAVE_SELINUX: = true
DEVICE_RESOLUTION: = # here we write the screen resolution
TW_IGNORE_MAJOR_AXIS_0: = # we look at it like a similar device
RECOVERY_GRAPHICS_USE_LINELENGTH: = # we are looking like a similar device
BOARD_HAS_NO_REAL_SDCARD: = # # this is if you have a separate partition for internal memory, and not in the / data section (/ data / media)
TW_DEFAULT_EXTERNAL_STORAGE: = # we are looking like a similar device
TW_INTERNAL_STORAGE_PATH: = # here we write for example "/ internal_sd" - you have these values ​​in recovery.fstab
TW_INTERNAL_STORAGE_MOUNT_POINT: = # then "internal_sd"
TW_EXTERNAL_STORAGE_PATH: = # here we write "/ external_sd"
TW_EXTERNAL_STORAGE_MOUNT_POINT: = # then "external_sd"

# USB Mounting
TARGET_USE_CUSTOM_LUN_FILE_PATH: = / sys / devices / platform / msm_hsusb / gadget / lun% d / file # This is the line you are looking for yourself using the root explorer to go through this path, you may have another.

And create the last vendorsetup.sh file with the contents
add_lunch_combo omni_device_name-userdebug

I have it so
add_lunch_combo omni_D10A_HighScreen-userdebug

Everything, now we will start assembly
We collect
I want to draw your attention, collect recovery on the commands below, if you collect with the command mka or some other, then look for answers in another topic, you can not write here. [/ B]
It's pretty simple
cd ~ / omni
. build / envsetup.sh
lunch omni_device_name-userdebug
make -j5 recoveryimage # here we write the number of cores of your CPU +1

Well, now we wait, in the omni / out / folder I don’t remember the exact path, then I’ll write, and you’ll find it, there will be a freshly baked recovery.img.
Examples
Utility
Sources

In qms with requests to help me, do not write, I gave you all the necessary information. Only editable suggestions are accepted. Good luck in the assembly of the recovery.

Post has been editedbaddhet - 18.03.19, 09:57
Reason for editing: Solving time synchronization problem.
baddhet
Message#2
18.01.15, 17:10
Starting a new life.
*********
[offline]

Topics Curator
Group: Curators
Messages 2549
Check in: 03.04.12
Xiaomi Redmi Note 4X Snapdragon 3/32

Reputation:-  697  +

Building TWRP recovery from source[/ b] [/ size]

Order table recovery | How to build cwm � | CWM Recovery Compilation � | Creating recovery for MTK �
  • To get started, it is strongly recommended to get acquainted with Forum RulesandRules section "Android - Development and Programming"
  • Before asking a question, look Android OS FAQandGlossary. Respect your and other people's time.
  • The administration of the resource and the authors of the manuals for the erroneous or incorrect actions of the owners with their device are not liable
  • All operations with your phone, You do at your own risk.
  • Sure tomake a full backup before any manipulations with the device!
  • Before posting photos, read the topic Working with Images on the forum
  • Messages that are not related to the topic of discussion (offtopic) are deleted without warning.
Since many devices do not have TWRP recovery, I decided to write this guide. First of all, this article is for those who do not have source codes and configs, we will do it ourselves.
What do we need:
Ubuntu 12.04 x64
Unlimited Internet, as it will be downloaded about 12 gig source.
38.5 GB of free space, this is only on the source code and on the assembly + 10 gigs on the system itself.
I got to Ubuntu 16.04.2 x64 and android 6.0.
The sources Omni 6.0.1 I weigh 75 gigs + will be unpacked and for a total of about 200 gigs to build.
Build on Ubuntu 17.10
If you do not have your own sources, then look for the config (device) of a similar device on the same processor onGithub.
Here to you for example my configTWRP_D10A_HighScreen
And so let's get started
Under the utility spoiler there is a video instruction for assembling TWRP
Install Ubuntu 12.04 x64 or 16.04.2 x64 (as you are looking for yourself, I will not paint)
For Ubuntu 12.04 x64 and Android 4.4.4
Install the necessary packages
sudo apt-get install bison build-essential curl flex g ++ - multilib gcc-multilib git-core gnupg gperf lib32ncurses5-dev libxml2-utils lzop pngcrush schedtool squashfs-tools xsltproc zip zlib1g-dev

Next, we put Java Oracle 6
sudo add-apt-repository ppa: webupd8team / java
sudo apt-get update
sudo apt-get install oracle-java6-installer

Login on github (quotes are not needed)
git config --global user.name "your nickname"
git config --global user.email "your mail"

Next, create folders
mkdir ~ / bin
mkdir ~ / omni

Install repo
curl http://commondatastorage.googleapis.com/git-repo-downloads/repo>~ / bin / repo
chmod a + x ~ / bin / repo

Add a variable
echo "export PATH = ~ / bin: $ PATH">>~ / .bashrc

And download the source, android omni 4.4.4.
cd ~ / omni
repo init -u https://github.com/omnirom/android.git -b android-4.4
repo sync

Now we wait while about 12 gig sources are downloaded.
For ubuntu 16.04.2 x64 and Android 6.0
Install the necessary packages
sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g ++ liblii-dev-i386 libc6-dev-i386 dev libxml2-utils xsltproc unzip maven schedtool

For Android 5.0 - 6.0 you need openjdk 7
sudo add-apt-repository ppa: openjdk-r / ppa
sudo apt-get update
sudo apt-get install openjdk-7-jdk

Next, write (Adds export USE_CCACHE = 1 'to the .bashrc file)
echo 'export USE_CCACHE = 1'>>~ / .bashrc

Login on github'e
git config --global user.name "your nickname"
git config --global user.email "your mail"

Further, according to the familiar scheme
mkdir ~ / bin
PATH = ~ / bin: $ PATH
echo 'PATH = ~ / bin: $ PATH'>>~ / .bashrc
curl https://storage.googleapis.com/git-repo-downloads/repo>~ / bin / repo
chmod a + x ~ / bin / repo

Create a folder for omnirom sources and enter it.
mkdir omni
cd omni

Downloading source
repo init -u https://github.com/omnirom/android.git -b android-6.0
repo sync
Well, let's start writing a config for our device
And now the fun begins
First, create the device folder for your device.
cd ~ / omni / device
mkdir vendor_name / device_name

I have it so
mkdir HighScreen / D10A_HighScreen

Next, create * .mk files in the final directory, go through the newly created path in the "explorer" and create the Android.mk file with the contents
LOCAL_PATH: = $ (call my-dir)

ifeq ($ (TARGET_DEVICE), device_name)
include $ (call all-makefiles-under, $ (LOCAL_PATH))

endif

I look like this
LOCAL_PATH: = $ (call my-dir)

ifeq ($ (TARGET_DEVICE), D10A_HighScreen)
include $ (call all-makefiles-under, $ (LOCAL_PATH))

endif

Next, create the file AndroidProducts.mk with the contents
PRODUCT_MAKEFILES: = \
$ (LOCAL_DIR) /device_name.mk \
$ (LOCAL_DIR) /omni_device_name.mk

I look like
PRODUCT_MAKEFILES: = \
$ (LOCAL_DIR) /D10A_HighScreen.mk \
$ (LOCAL_DIR) /omni_D10A_HighScreen.mk

Next, create 2 files that we specified in the AndroidProducts.mk file: device_name.mk and omni_device_name.mk. I have it as it is not difficult to guess D10A_HighScreen.mk and omni_D10A_HighScreen.mk
The contents of the device_name.mk file should look like this:
LOCAL_PATH: = device / vendor_name / device_name

$ (shell mkdir -p $ (OUT) / obj / KERNEL_OBJ / usr)

ifeq ($ (TARGET_PREBUILT_KERNEL),)
LOCAL_KERNEL: = $ (LOCAL_PATH) / kernel
else
LOCAL_KERNEL: = $ (TARGET_PREBUILT_KERNEL)
endif

PRODUCT_COPY_FILES + = \
$ (LOCAL_PATH) / kernel: kernel \
$ (LOCAL_PATH) /dt.img:dt.img \
$ (LOCAL_PATH) /recovery.fstab:root/recovery.fstab

$ (call inherit-product, build / target / product / full.mk)

PRODUCT_NAME: = device_name

It looks like this to me:
LOCAL_PATH: = device / HighScreen / D10A_HighScreen

$ (shell mkdir -p $ (OUT) / obj / KERNEL_OBJ / usr) # on omni 6.0.1, this line is no longer needed and only errors are generated from it, I did not intend to write to 4.4.4.

ifeq ($ (TARGET_PREBUILT_KERNEL),)
LOCAL_KERNEL: = $ (LOCAL_PATH) / kernel
else
LOCAL_KERNEL: = $ (TARGET_PREBUILT_KERNEL)
endif

PRODUCT_COPY_FILES + = \
$ (LOCAL_PATH) / kernel: kernel \
$ (LOCAL_PATH) /dt.img:dt.img \
$ (LOCAL_PATH) /recovery.fstab:root/recovery.fstab

$ (call inherit-product, build / target / product / full.mk)

PRODUCT_NAME: = D10A_HighScreen

Attention if there is no dt.img file in your kernel and recovery? then you should not have the line:
$ (LOCAL_PATH) /dt.img:dt.img \

The contents of the omni_device_name.mk file should look like this:
# Inherit device configuration
$ (call inherit-product, device / vendor_name / device_name / device_name.mk)

# Device identifier. This must come after all inclusions
PRODUCT_DEVICE: = device_name
PRODUCT_NAME: = omni_device_name
PRODUCT_BRAND: = vendor_name
PRODUCT_MODEL: = # device model
PRODUCT_MANUFACTURER: = vendor_name

All these values ​​are in your system / build.prop stock firmware, rely primarily on them. I have so
# Inherit device configuration
$ (call inherit-product, device / HighScreen / D10A_HighScreen / D10A_HighScreen.mk)

# Device identifier. This must come after all inclusions
PRODUCT_DEVICE: = D10A_HighScreen
PRODUCT_NAME: = omni_D10A_HighScreen
PRODUCT_BRAND: = HighScreen
PRODUCT_MODEL: = Boost 2se
PRODUCT_MANUFACTURER: = HighScreen

Further, from where to get 3 files that we specified in device_name.mk? It's simple, take the programAndroid Image Kitchenand unpack the stock recovery. There will be 2 ramdisk and split_img folders.
In the split_img folder, take the file recovery.img-zImage, rename it to kernel. In the same folder, take the file recovery.img-dtb and rename it to dt.img, if this file does not exist, we parse the kernel and look for there only the name will be boot.img-dtb. We put both files in the path device / vendor_name / device_name
Next, go to the ramdisk / etc folder, take the file recovery.fstab, put it there as the previous 2 files and edit it to make it look like this, but the paths should be yours!
/ system ext4 /dev/block/platform/msm_sdcc.1/by-name/system
/ data ext4 /dev/block/platform/msm_sdcc.1/by-name/userdata
/ cache ext4 /dev/block/platform/msm_sdcc.1/by-name/cache
/ boot emmc /dev/block/platform/msm_sdcc.1/by-name/boot
/ recovery emmc /dev/block/platform/msm_sdcc.1/by-name/recovery
/ external_sd vfat / dev / block / mmcblk1p1 flags = display = "External_sd"; storage; wipeingui; removable
/ internal_sd vfat /dev/block/platform/msm_sdcc.1/by-name/usbmsc flags = display = "Internal_sd"; storage; wipeingui; removable
/ usb-otg vfat / dev / block / sda1 / dev / block / sda flags = display = "USB OTG"; storage; wipeingui; removable

We create the BoardConfig.mk file here the most difficult and some values ​​will have to be pulled from the device on the same process. Well, let's go, we write there:
# Platform
TARGET_BOARD_PLATFORM: =

Here we indicate our chip, be sure to see how this line is spelled by a similar device on a git hub. I have so
# Platform
TARGET_BOARD_PLATFORM: = msm8226

Further
# Architecture
TARGET_ARCH: =
TARGET_ARCH_VARIANT: =
TARGET_CPU_ABI: =
TARGET_CPU_ABI2: =
TARGET_CPU_SMP: =
TARGET_CPU_VARIANT: =

These values ​​also write off, I have it so
# Architecture
TARGET_ARCH: = arm
TARGET_ARCH_VARIANT: = armv7-a-neon
TARGET_CPU_ABI: = armeabi-v7a
TARGET_CPU_ABI2: = armeabi
TARGET_CPU_SMP: = true
TARGET_CPU_VARIANT: = krait

Further
# Bootloader
TARGET_NO_BOOTLOADER: = true
TARGET_BOOTLOADER_BOARD_NAME: =

The first line does not change, and in the second the name of the chip is mine
# Bootloader
TARGET_NO_BOOTLOADER: = true
TARGET_BOOTLOADER_BOARD_NAME: = MSM8226

Here we will stop on more in detail:
# Kernel
TARGET_PREBUILT_KERNEL: = # here we specify the path to the device / vendor_name / device_name / kernel kernel
BOARD_KERNEL_CMDLINE: =
BOARD_KERNEL_BASE: =
BOARD_KERNEL_PAGESIZE: =
BOARD_KERNEL_SEPARATED_DT: = true
BOARD_MKBOOTIMG_ARGS: =

With the first line, the line BOARD_KERNEL_CMDLINE, go to the folder of the parsed recovery and look for the file recovery.img-cmdline and enter its contents in this line.
The string BOARD_KERNEL_BASE in the same folder as the recovery.img-base file, its contents is entered in this string.
Line BOARD_KERNEL_PAGESIZE in the same file recovery.img-pagesize its contents we enter in this line.
This BOARD_KERNEL_SEPARATED_DT: = true line does not change.
Here BOARD_MKBOOTIMG_ARGS first specify the path to dt.img - dt device / vendor_name / device_name / dt.img Next - kernel_offset write the contents of the file recovery.img-kerneloff
Attention if there is no dt.img file in your kernel and recovery? then you should not have the line:
BOARD_KERNEL_SEPARATED_DT: = true

And in the line:
BOARD_MKBOOTIMG_ARGS: = --dt device / vendorname / devicename / dt.img --kernel_offset 0x ******** --ramdisk_offset 0x ******** - tags_offset 0x ******* *

There should be no path to this file.--dt device / vendorname / devicename / dt.img, just write like this:
BOARD_MKBOOTIMG_ARGS: = --kernel_offset 0x ******** --ramdisk_offset 0x ******** --tags_offset 0x ********

Next --ramdisk_offset here is the contents of the file recovery.img-ramdiskoff And finally - tags_offset is the contents of the file recovery.img-tagsoff, you also need to add before each value 0x (your characters) for clarity, see below. It looks like this to me
# Kernel
TARGET_PREBUILT_KERNEL: = device / HighScreen / D10A_HighScreen / kernel
BOARD_KERNEL_CMDLINE: = console = null androidboot.hardware = qcom user_debug = 31 msm_rtb.filter = 0x37 lpj = 192000
BOARD_KERNEL_BASE: = 0x00000000
BOARD_KERNEL_PAGESIZE: = 2048
BOARD_KERNEL_SEPARATED_DT: = true
BOARD_MKBOOTIMG_ARGS: = --dt device / HighScreen / D10A_HighScreen / dt.img --kernel_offset 0x00008000 --ramdisk_offset 0x02000000 - tags_offset 0x01e00000

The next thing we need is the size of the sections in! bytes!, I learned this way, I took recovery.fstab and for example we take the / system partition. Download from Google Play "terminal emulator" (Root is needed) and write
su
dd if = / dev / block / platform / msm_sdcc.1 / by-name / system of = / sdcard / system.img
Please note that it will take a full image of the partition / system, it can take a lot of space and will do a dump for quite some time. Then at the end of the process we get the exact size up to a byte. Do not close the terminal window, look at the exhaust, there will be 3-5 lines just the size. Or look for a program that shows the size of the sections in bytes and enter values.
# Partitions
BOARD_BOOTIMAGE_PARTITION_SIZE: =
BOARD_RECOVERYIMAGE_PARTITION_SIZE: =
BOARD_SYSTEMIMAGE_PARTITION_SIZE: =
BOARD_CACHEIMAGE_PARTITION_SIZE: =
BOARD_USERDATAIMAGE_PARTITION_SIZE: =

The string BOARD_FLASH_BLOCK_SIZE is pulled from a similar device.
BOARD_FLASH_BLOCK_SIZE: =
There is probably no need to change anything, but just in case, look like a similar spelling
# Recovery
TARGET_RECOVERY_PIXEL_FORMAT: = "RGBX_8888"
TARGET_USERIMAGES_USE_EXT4: = true
BOARD_HAS_LARGE_FILESYSTEM: = true
BOARD_USE_CUSTOM_RECOVERY_FONT: = \ "roboto_15x24.h \"
BOARD_SUPPRESS_EMMC_WIPE: = true

And last
# TWRP
HAVE_SELINUX: = true
DEVICE_RESOLUTION: = # here we write the screen resolution
TW_IGNORE_MAJOR_AXIS_0: = # we look at it like a similar device
RECOVERY_GRAPHICS_USE_LINELENGTH: = # we are looking like a similar device
BOARD_HAS_NO_REAL_SDCARD: = # # this is if you have a separate partition for internal memory, and not in the / data section (/ data / media)
TW_DEFAULT_EXTERNAL_STORAGE: = # we are looking like a similar device
TW_INTERNAL_STORAGE_PATH: = # here we write for example "/ internal_sd" - you have these values ​​in recovery.fstab
TW_INTERNAL_STORAGE_MOUNT_POINT: = # then "internal_sd"
TW_EXTERNAL_STORAGE_PATH: = # here we write "/ external_sd"
TW_EXTERNAL_STORAGE_MOUNT_POINT: = # then "external_sd"

# USB Mounting
TARGET_USE_CUSTOM_LUN_FILE_PATH: = / sys / devices / platform / msm_hsusb / gadget / lun% d / file # This is the line you are looking for yourself using the root explorer to go through this path, you may have another.

And create the last vendorsetup.sh file with the contents
add_lunch_combo omni_device_name-userdebug

I have it so
add_lunch_combo omni_D10A_HighScreen-userdebug

Everything, now we will start assembly
We collect
I want to draw your attention, collect recovery on the commands below, if you collect with the command mka or some other, then look for answers in another topic, you can not write here. [/ B]
It's pretty simple
cd ~ / omni
. build / envsetup.sh
lunch omni_device_name-userdebug
make -j5 recoveryimage # here we write the number of cores of your CPU +1

Well, now we wait, in the omni / out / folder I don’t remember the exact path, then I’ll write, and you’ll find it, there will be a freshly baked recovery.img.

In qms with requests to help me, do not write, I gave you all the necessary information. Only editable suggestions are accepted. Good luck in the assembly of the recovery.
Examples
Utility
Sources
Building TWRP recovery from source

Order table recovery | How to build cwm � | CWM Recovery Compilation � | Creating recovery for MTK �
  • To get started, it is strongly recommended to get acquainted with Forum RulesandRules section "Android - Development and Programming"
  • Before asking a question, look Android OS FAQandGlossary. Respect your and other people's time.
  • The administration of the resource and the authors of the manuals for the erroneous or incorrect actions of the owners with their device are not liable
  • All operations with your phone, You do at your own risk.
  • Sure tomake a full backup before any manipulations with the device!
  • Before posting photos, read the topic Working with Images on the forum
  • Messages that are not related to the topic of discussion (offtopic) are deleted without warning.
Since many devices do not have TWRP recovery, I decided to write this guide. First of all, this article is for those who do not have source codes and configs, we will do it ourselves.
What do we need:
Ubuntu 12.04 x64
Unlimited Internet, as it will be downloaded about 12 gig source.
38.5 GB of free space, this is only on the source code and on the assembly + 10 gigs on the system itself.
I got to Ubuntu 16.04.2 x64 and android 6.0.
The sources Omni 6.0.1 I weigh 75 gigs + will be unpacked and for a total of about 200 gigs to build.
Build on Ubuntu 17.10
If you do not have your own sources, then look for the config (device) of a similar device on the same processor onGithub.
Here to you for example my configTWRP_D10A_HighScreen
And so let's get started
Under the utility spoiler there is a video instruction for assembling TWRP
Install Ubuntu 12.04 x64 or 16.04.2 x64 (as you are looking for yourself, I will not paint)
For Ubuntu 12.04 x64 and Android 4.4.4
Install the necessary packages
sudo apt-get install bison build-essential curl flex g ++ - multilib gcc-multilib git-core gnupg gperf lib32ncurses5-dev libxml2-utils lzop pngcrush schedtool squashfs-tools xsltproc zip zlib1g-dev

Next, we put Java Oracle 6
sudo add-apt-repository ppa: webupd8team / java
sudo apt-get update
sudo apt-get install oracle-java6-installer

Login on github (quotes are not needed)
git config --global user.name "your nickname"
git config --global user.email "your mail"

Next, create folders
mkdir ~ / bin
mkdir ~ / omni

Install repo
curl http://commondatastorage.googleapis.com/git-repo-downloads/repo>~ / bin / repo
chmod a + x ~ / bin / repo

Add a variable
echo "export PATH = ~ / bin: $ PATH">>~ / .bashrc

And download the source, android omni 4.4.4.
cd ~ / omni
repo init -u https://github.com/omnirom/android.git -b android-4.4
repo sync

Now we wait while about 12 gig sources are downloaded.
For ubuntu 16.04.2 x64 and Android 6.0
Install the necessary packages
sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g ++ liblii-dev-i386 libc6-dev-i386 dev libxml2-utils xsltproc unzip maven schedtool

For Android 5.0 - 6.0 you need openjdk 7
sudo add-apt-repository ppa: openjdk-r / ppa
sudo apt-get update
sudo apt-get install openjdk-7-jdk

Next, write (Adds export USE_CCACHE = 1 'to the .bashrc file)
echo 'export USE_CCACHE = 1'>>~ / .bashrc

Login on github'e
git config --global user.name "your nickname"
git config --global user.email "your mail"

Further, according to the familiar scheme
mkdir ~ / bin
PATH = ~ / bin: $ PATH
echo 'PATH = ~ / bin: $ PATH'>>~ / .bashrc
curl https://storage.googleapis.com/git-repo-downloads/repo>~ / bin / repo
chmod a + x ~ / bin / repo

Create a folder for omnirom sources and enter it.
mkdir omni
cd omni

Downloading source
repo init -u https://github.com/omnirom/android.git -b android-6.0
repo sync
Well, let's start writing a config for our device
And now the fun begins
First, create the device folder for your device.
cd ~ / omni / device
mkdir vendor_name / device_name

I have it so
mkdir HighScreen / D10A_HighScreen

Next, create * .mk files in the final directory, go through the newly created path in the "explorer" and create the Android.mk file with the contents
LOCAL_PATH: = $ (call my-dir)

ifeq ($ (TARGET_DEVICE), device_name)
include $ (call all-makefiles-under, $ (LOCAL_PATH))

endif

I look like this
LOCAL_PATH: = $ (call my-dir)

ifeq ($ (TARGET_DEVICE), D10A_HighScreen)
include $ (call all-makefiles-under, $ (LOCAL_PATH))

endif

Next, create the file AndroidProducts.mk with the contents
PRODUCT_MAKEFILES: = \
$ (LOCAL_DIR) /device_name.mk \
$ (LOCAL_DIR) /omni_device_name.mk

I look like
PRODUCT_MAKEFILES: = \
$ (LOCAL_DIR) /D10A_HighScreen.mk \
$ (LOCAL_DIR) /omni_D10A_HighScreen.mk

Next, create 2 files that we specified in the AndroidProducts.mk file: device_name.mk and omni_device_name.mk. I have it as it is not difficult to guess D10A_HighScreen.mk and omni_D10A_HighScreen.mk
The contents of the device_name.mk file should look like this:
LOCAL_PATH: = device / vendor_name / device_name

$ (shell mkdir -p $ (OUT) / obj / KERNEL_OBJ / usr)

ifeq ($ (TARGET_PREBUILT_KERNEL),)
LOCAL_KERNEL: = $ (LOCAL_PATH) / kernel
else
LOCAL_KERNEL: = $ (TARGET_PREBUILT_KERNEL)
endif

PRODUCT_COPY_FILES + = \
$ (LOCAL_PATH) / kernel: kernel \
$ (LOCAL_PATH) /dt.img:dt.img \
$ (LOCAL_PATH) /recovery.fstab:root/recovery.fstab

$ (call inherit-product, build / target / product / full.mk)

PRODUCT_NAME: = device_name

It looks like this to me:
LOCAL_PATH: = device / HighScreen / D10A_HighScreen

$ (shell mkdir -p $ (OUT) / obj / KERNEL_OBJ / usr) # on omni 6.0.1, this line is no longer needed and only errors are generated from it, I did not intend to write to 4.4.4.

ifeq ($ (TARGET_PREBUILT_KERNEL),)
LOCAL_KERNEL: = $ (LOCAL_PATH) / kernel
else
LOCAL_KERNEL: = $ (TARGET_PREBUILT_KERNEL)
endif

PRODUCT_COPY_FILES + = \
$ (LOCAL_PATH) / kernel: kernel \
$ (LOCAL_PATH) /dt.img:dt.img \
$ (LOCAL_PATH) /recovery.fstab:root/recovery.fstab

$ (call inherit-product, build / target / product / full.mk)

PRODUCT_NAME: = D10A_HighScreen

Attention if there is no dt.img file in your kernel and recovery? then you should not have the line:
$ (LOCAL_PATH) /dt.img:dt.img \

The contents of the omni_device_name.mk file should look like this:
# Inherit device configuration
$ (call inherit-product, device / vendor_name / device_name / device_name.mk)

# Device identifier. This must come after all inclusions
PRODUCT_DEVICE: = device_name
PRODUCT_NAME: = omni_device_name
PRODUCT_BRAND: = vendor_name
PRODUCT_MODEL: = # device model
PRODUCT_MANUFACTURER: = vendor_name

All these values ​​are in your system / build.prop stock firmware, rely primarily on them. I have so
# Inherit device configuration
$ (call inherit-product, device / HighScreen / D10A_HighScreen / D10A_HighScreen.mk)

# Device identifier. This must come after all inclusions
PRODUCT_DEVICE: = D10A_HighScreen
PRODUCT_NAME: = omni_D10A_HighScreen
PRODUCT_BRAND: = HighScreen
PRODUCT_MODEL: = Boost 2se
PRODUCT_MANUFACTURER: = HighScreen

Further, from where to get 3 files that we specified in device_name.mk? It's simple, take the programAndroid Image Kitchenand unpack the stock recovery. There will be 2 ramdisk and split_img folders.
In the split_img folder, take the file recovery.img-zImage, rename it to kernel. In the same folder, take the file recovery.img-dtb and rename it to dt.img, if this file does not exist, we parse the kernel and look for there only the name will be boot.img-dtb. We put both files in the path device / vendor_name / device_name
Next, go to the ramdisk / etc folder, take the file recovery.fstab, put it there as the previous 2 files and edit it to make it look like this, but the paths should be yours!
/ system ext4 /dev/block/platform/msm_sdcc.1/by-name/system
/ data ext4 /dev/block/platform/msm_sdcc.1/by-name/userdata
/ cache ext4 /dev/block/platform/msm_sdcc.1/by-name/cache
/ boot emmc /dev/block/platform/msm_sdcc.1/by-name/boot
/ recovery emmc /dev/block/platform/msm_sdcc.1/by-name/recovery
/ external_sd vfat / dev / block / mmcblk1p1 flags = display = "External_sd"; storage; wipeingui; removable
/ internal_sd vfat /dev/block/platform/msm_sdcc.1/by-name/usbmsc flags = display = "Internal_sd"; storage; wipeingui; removable
/ usb-otg vfat / dev / block / sda1 / dev / block / sda flags = display = "USB OTG"; storage; wipeingui; removable

We create the BoardConfig.mk file here the most difficult and some values ​​will have to be pulled from the device on the same process. Well, let's go, we write there:
# Platform
TARGET_BOARD_PLATFORM: =

Here we indicate our chip, be sure to see how this line is spelled by a similar device on a git hub. I have so
# Platform
TARGET_BOARD_PLATFORM: = msm8226

Further
# Architecture
TARGET_ARCH: =
TARGET_ARCH_VARIANT: =
TARGET_CPU_ABI: =
TARGET_CPU_ABI2: =
TARGET_CPU_SMP: =
TARGET_CPU_VARIANT: =

These values ​​also write off, I have it so
# Architecture
TARGET_ARCH: = arm
TARGET_ARCH_VARIANT: = armv7-a-neon
TARGET_CPU_ABI: = armeabi-v7a
TARGET_CPU_ABI2: = armeabi
TARGET_CPU_SMP: = true
TARGET_CPU_VARIANT: = krait

Further
# Bootloader
TARGET_NO_BOOTLOADER: = true
TARGET_BOOTLOADER_BOARD_NAME: =

The first line does not change, and in the second the name of the chip is mine
# Bootloader
TARGET_NO_BOOTLOADER: = true
TARGET_BOOTLOADER_BOARD_NAME: = MSM8226

Here we will stop on more in detail:
# Kernel
TARGET_PREBUILT_KERNEL: = # here we specify the path to the device / vendor_name / device_name / kernel kernel
BOARD_KERNEL_CMDLINE: =
BOARD_KERNEL_BASE: =
BOARD_KERNEL_PAGESIZE: =
BOARD_KERNEL_SEPARATED_DT: = true
BOARD_MKBOOTIMG_ARGS: =

With the first line, the line BOARD_KERNEL_CMDLINE, go to the folder of the parsed recovery and look for the file recovery.img-cmdline and enter its contents in this line.
The string BOARD_KERNEL_BASE in the same folder as the recovery.img-base file, its contents is entered in this string.
Line BOARD_KERNEL_PAGESIZE in the same file recovery.img-pagesize its contents we enter in this line.
This BOARD_KERNEL_SEPARATED_DT: = true line does not change.
Here BOARD_MKBOOTIMG_ARGS first specify the path to dt.img - dt device / vendor_name / device_name / dt.img Next - kernel_offset write the contents of the file recovery.img-kerneloff
Attention if there is no dt.img file in your kernel and recovery? then you should not have the line:
BOARD_KERNEL_SEPARATED_DT: = true

And in the line:
BOARD_MKBOOTIMG_ARGS: = --dt device / vendorname / devicename / dt.img --kernel_offset 0x ******** --ramdisk_offset 0x ******** - tags_offset 0x ******* *

There should be no path to this file.--dt device / vendorname / devicename / dt.img, just write like this:
BOARD_MKBOOTIMG_ARGS: = --kernel_offset 0x ******** --ramdisk_offset 0x ******** --tags_offset 0x ********

Next --ramdisk_offset here is the contents of the file recovery.img-ramdiskoff And finally - tags_offset is the contents of the file recovery.img-tagsoff, you also need to add before each value 0x (your characters) for clarity, see below. It looks like this to me
# Kernel
TARGET_PREBUILT_KERNEL: = device / HighScreen / D10A_HighScreen / kernel
BOARD_KERNEL_CMDLINE: = console = null androidboot.hardware = qcom user_debug = 31 msm_rtb.filter = 0x37 lpj = 192000
BOARD_KERNEL_BASE: = 0x00000000
BOARD_KERNEL_PAGESIZE: = 2048
BOARD_KERNEL_SEPARATED_DT: = true
BOARD_MKBOOTIMG_ARGS: = --dt device / HighScreen / D10A_HighScreen / dt.img --kernel_offset 0x00008000 --ramdisk_offset 0x02000000 - tags_offset 0x01e00000

The next thing we need is the size of the sections in! bytes!, I learned this way, I took recovery.fstab and for example we take the / system partition. Download from Google Play "terminal emulator" (Root is needed) and write
su
dd if = / dev / block / platform / msm_sdcc.1 / by-name / system of = / sdcard / system.img
Please note that it will take a full image of the partition / system, it can take a lot of space and will do a dump for quite some time. Then at the end of the process we get the exact size up to a byte. Do not close the terminal window, look at the exhaust, there will be 3-5 lines just the size. Or look for a program that shows the size of the sections in bytes and enter values.
# Partitions
BOARD_BOOTIMAGE_PARTITION_SIZE: =
BOARD_RECOVERYIMAGE_PARTITION_SIZE: =
BOARD_SYSTEMIMAGE_PARTITION_SIZE: =
BOARD_CACHEIMAGE_PARTITION_SIZE: =
BOARD_USERDATAIMAGE_PARTITION_SIZE: =

The string BOARD_FLASH_BLOCK_SIZE is pulled from a similar device.
BOARD_FLASH_BLOCK_SIZE: =
There is probably no need to change anything, but just in case, look like a similar spelling
# Recovery
TARGET_RECOVERY_PIXEL_FORMAT: = "RGBX_8888"
TARGET_USERIMAGES_USE_EXT4: = true
BOARD_HAS_LARGE_FILESYSTEM: = true
BOARD_USE_CUSTOM_RECOVERY_FONT: = \ "roboto_15x24.h \"
BOARD_SUPPRESS_EMMC_WIPE: = true

And last
# TWRP
HAVE_SELINUX: = true
DEVICE_RESOLUTION: = # here we write the screen resolution
TW_IGNORE_MAJOR_AXIS_0: = # we look at it like a similar device
RECOVERY_GRAPHICS_USE_LINELENGTH: = # we are looking like a similar device
BOARD_HAS_NO_REAL_SDCARD: = # # this is if you have a separate partition for internal memory, and not in the / data section (/ data / media)
TW_DEFAULT_EXTERNAL_STORAGE: = # we are looking like a similar device
TW_INTERNAL_STORAGE_PATH: = # here we write for example "/ internal_sd" - you have these values ​​in recovery.fstab
TW_INTERNAL_STORAGE_MOUNT_POINT: = # then "internal_sd"
TW_EXTERNAL_STORAGE_PATH: = # here we write "/ external_sd"
TW_EXTERNAL_STORAGE_MOUNT_POINT: = # then "external_sd"

# USB Mounting
TARGET_USE_CUSTOM_LUN_FILE_PATH: = / sys / devices / platform / msm_hsusb / gadget / lun% d / file # This is the line you are looking for yourself using the root explorer to go through this path, you may have another.

And create the last vendorsetup.sh file with the contents
add_lunch_combo omni_device_name-userdebug

I have it so
add_lunch_combo omni_D10A_HighScreen-userdebug

Everything, now we will start assembly
We collect
I want to draw your attention, collect recovery on the commands below, if you collect with the command mka or some other, then look for answers in another topic, you can not write here. [/ B]
It's pretty simple
cd ~ / omni
. build / envsetup.sh
lunch omni_device_name-userdebug
make -j5 recoveryimage # here we write the number of cores of your CPU +1

Well, now we wait, in the omni / out / folder I don’t remember the exact path, then I’ll write, and you’ll find it, there will be a freshly baked recovery.img.

In qms with requests to help me, do not write, I gave you all the necessary information. Only editable suggestions are accepted. Good luck in the assembly of the recovery.
Examples
Utility
Sources


Post has been editedbaddhet - 11.12.18, 20:12


--------------------
Xiaomi Redmi Note 4X
If there are people who learn German and live in St. Petersburg, write in a personal, we will communicate in German.
coqs
Message#3
18.01.15, 22:07
We grow old)
*******
[offline]

Group: Friendssavagemessiahzine.com
Messages 1266
Check in: 30.07.14
Oneplus 5 8/128

Reputation:-  105  +

In fact, you need a config for a similar device. Search for a git hub of course.
I found the source of the device with the same processor (msm8916) in the 400MB archive ... are they suitable to peep?
https://github.com/omn...ble_recovery/issues/18

Post has been editedcoqs - 18.01.15, 22:12


--------------------
Qui quaerit reperit
baddhet
Message#4
18.01.15, 22:13
Starting a new life.
*********
[offline]

Topics Curator
Group: Curators
Messages 2549
Check in: 03.04.12
Xiaomi Redmi Note 4X Snapdragon 3/32

Reputation:-  697  +

* coqs,
On a git hub look something like this -https://github.com/AOKP/device_lge_mako?files=1it's on nexus 4. Find about the same.

Posted on 01/18/2015 22:13:

Then lay out my example. In a couple of days.


--------------------
Xiaomi Redmi Note 4X
If there are people who learn German and live in St. Petersburg, write in a personal, we will communicate in German.
coqs
Message#5
18.01.15, 22:15
We grow old)
*******
[offline]

Group: Friendssavagemessiahzine.com
Messages 1266
Check in: 30.07.14
Oneplus 5 8/128

Reputation:-  105  +

Find about the same.
Like this one, different resolution and camera and in my more RAMhttps://github.com/MoK...d_device_huawei_c8817dI'm downloading the 411/415 source code ... I can’t get down to point 2)

Post has been editedcoqs - 18.01.15, 22:37


--------------------
Qui quaerit reperit
coqs
Message#6
19.01.15, 18:35
We grow old)
*******
[offline]

Group: Friendssavagemessiahzine.com
Messages 1266
Check in: 30.07.14
Oneplus 5 8/128

Reputation:-  105  +

I would be grateful if you tell me how best to create recovery.fstab
recovery.fstab
# device mount point fstype mount_flags fs_mgr_flags

/ dev / block / bootdevice / by-name / system / system ext4 ro, barrier = 1 wait
/ dev / block / bootdevice / by-name / custpack / custpack ext4 ro, barrier = 1 wait
/ dev / block / bootdevice / by-name / persist / persist ext4 ro, barrier = 1 wait
/ dev / block / bootdevice / by-name / cache / cache ext4 noatime, nosuid, nodev, barrier = 1, data = wait, check
# PR-551802, add flag 'length'
/ dev / block / bootdevice / by-name / userdata / data ext4 noatime, nosuid, nodev, barrier = 1 data = ordered
/ dev / block / mmcblk1p1 / storage / sdcard1 vfat nosuid, nodev, barrier = 1, data = ordered, nodelalloc wait
/ dev / block / bootdevice / by-name / boot / boot emmc defaults defaults
/ dev / block / bootdevice / by-name / recovery / recovery emmc defaults defaults
/ dev / block / bootdevice / by-name / misc / misc emmc defaults defaults
/ dev / block / bootdevice / by-name / modem / firmware vfat defaults defaults
/ dev / block / bootdevice / by-name / sbl1 / sbl1 emmc defaults defaults
/ dev / block / bootdevice / by-name / aboot / aboot emmc defaults defaults
/ dev / block / bootdevice / by-name / rpm / rpm emmc defaults defaults
/ dev / block / bootdevice / by-name / tz / tz emmc defaults defaults
/ dev / block / bootdevice / by-name / hyp / hyp emmc defaults defaults
/ dev / block / bootdevice / by-name / sec / sec emmc defaults defaults
/ dev / block / bootdevice / by-name / splash / splash emmc defaults defaults
/ dev / block / bootdevice / by-name / abootbak / abootbak emmc defaults defaults
/ dev / block / bootdevice / by-name / rpmbak / rpmbak emmc defaults defaults
/ dev / block / bootdevice / by-name / tzbak / tzbak emmc defaults defaults
/ dev / block / bootdevice / by-name / sbl1bak / sbl1bak emmc defaults defaults
/ dev / block / bootdevice / by-name / hypbak / hypbak emmc defaults defaults

In particular, these lines
code
/ external_sd vfat / dev / block / mmcblk1p1 flags = display = "External_sd"; storage; wipeingui; removable
/ internal_sd vfat /dev/block/platform/msm_sdcc.1/by-name/usbmsc flags = display = "Internal_sd"; storage; wipeingui; removable
/ usb-otg vfat / dev / block / sda1 / dev / block / sda flags = display = "USB OTG"; storage; wipeingui; removable


Post has been editedcoqs - 19.01.15, 18:39


--------------------
Qui quaerit reperit
baddhet
Message#7
19.01.15, 19:07
Starting a new life.
*********
[offline]

Topics Curator
Group: Curators
Messages 2549
Check in: 03.04.12
Xiaomi Redmi Note 4X Snapdragon 3/32

Reputation:-  697  +

/ external_sd vfat / dev / block / mmcblk1p1 flags = display = "External_sd"; storage; wipeingui; removable
You just have it. External no memory card?


--------------------
Xiaomi Redmi Note 4X
If there are people who learn German and live in St. Petersburg, write in a personal, we will communicate in German.
coqs
Message#8
19.01.15, 19:15
We grow old)
*******
[offline]

Group: Friendssavagemessiahzine.com
Messages 1266
Check in: 30.07.14
Oneplus 5 8/128

Reputation:-  105  +

The card is the only one in the system that is somehow wonderfully mounted via / dev / fuse (through this fuse, usb-otg, sdcard0, and something else is mounted)

this file mounts everything somehowAttached fileinit.environ.rc.txt(1.32 KB)
those. sdcard0 it is somewhere in / data ext4 / dev / block / bootdevice / by-name / userdata
or rather the path / data / media / 0
And how, it is interesting, how to mount it? =)
Usb-otg fuck with him, he is not needed in recovery.

Post has been editedcoqs - 19.01.15, 20:20


--------------------
Qui quaerit reperit
baddhet
Message#9
19.01.15, 20:24
Starting a new life.
*********
[offline]

Topics Curator
Group: Curators
Messages 2549
Check in: 03.04.12
Xiaomi Redmi Note 4X Snapdragon 3/32

Reputation:-  697  +

* coqs,
Download the storage partition program. You can see the mount points in it.


--------------------
Xiaomi Redmi Note 4X
If there are people who learn German and live in St. Petersburg, write in a personal, we will communicate in German.
coqs
Message#10
19.01.15, 20:41
We grow old)
*******
[offline]

Group: Friendssavagemessiahzine.com
Messages 1266
Check in: 30.07.14
Oneplus 5 8/128

Reputation:-  105  +

In principle, it is possible to assemble without an internal memory card and without usb-otg or is it necessary?
And this program in simple mode shows only data and system well, and if you connect the card, then another sdcard1,
sdcard0 is located directly in the dada ..... media .... 0 ....

Post has been editedcoqs - 19.01.15, 20:51


--------------------
Qui quaerit reperit
coqs
Message#11
19.01.15, 20:55
We grow old)
*******
[offline]

Group: Friendssavagemessiahzine.com
Messages 1266
Check in: 30.07.14
Oneplus 5 8/128

Reputation:-  105  +

In the end, so I leave
/ system ext4 / dev / block / bootdevice / by-name / system
# / custpack ext4 / dev / block / bootdevice / by-name / custpack
/ cache ext4 / dev / block / bootdevice / by-name / cache
/ data ext4 / dev / block / bootdevice / by-name / userdata
/ external_sd vfat / dev / block / mmcblk1p1 flags = display = "External_sd"; storage; wipeingui; $
/ boot emmc / dev / block / bootdevice / by-name / boot
/ recovery emmc / dev / block / bootdevice / by-name / recovery
# / internal_sd vfat /dev/block/platform/msm_sdcc.1/by-name/usbmsc flags = display = "Internal_sd"; storage; wipeingui $
# / usb-otg vfat / dev / block / sda1 / dev / block / sda flags = display = "USB OTG"; storage; wipeingui; rem $


Post has been editedcoqs - 19.01.15, 23:12


--------------------
Qui quaerit reperit
baddhet
Message#12
19.01.15, 23:14
Starting a new life.
*********
[offline]

Topics Curator
Group: Curators
Messages 2549
Check in: 03.04.12
Xiaomi Redmi Note 4X Snapdragon 3/32

Reputation:-  697  +

* coqs,
just try lunch Alto45


--------------------
Xiaomi Redmi Note 4X
If there are people who learn German and live in St. Petersburg, write in a personal, we will communicate in German.
baddhet
Message#13
19.01.15, 23:27
Starting a new life.
*********
[offline]

Topics Curator
Group: Curators
Messages 2549
Check in: 03.04.12
Xiaomi Redmi Note 4X Snapdragon 3/32

Reputation:-  697  +

then lunch and get here


--------------------
Xiaomi Redmi Note 4X
If there are people who learn German and live in St. Petersburg, write in a personal, we will communicate in German.
coqs
Message#14
19.01.15, 23:39
We grow old)
*******
[offline]

Group: Friendssavagemessiahzine.com
Messages 1266
Check in: 30.07.14
Oneplus 5 8/128

Reputation:-  105  +

It was necessary to add lunch omni _ * - userdebug

WARNING: device / TCL / Alto45 / omni.dependencies file not found Is it critical? what does he want?
BATTLE

Oh, went from here added file cortex-a53.mkhttps://github.com/Opt...rtex-a53/cortex-a53.mk
Now in the morning I will test .... for now, sleep)
Mistake
bionic / libc / include / string.h: 144: error: undefined reference to 'memset'
bionic / libc / include / ln -sf / sbin / unpigz / home / user / omni / out / target / product / Alto45 / recovery / root / sbin / gunzip
string.h: 108: error: undefined reference to 'memcpy'
bionic / libc / bionic / malloc_debug_common.cpp: 364: error: undefined reference to 'strcmp'
bionic / libc / bionic / malloc_debug_common.cpp: 364: error: undefined reference to 'strcmp'
bionic / libc / include / string.h: 144: error: undefined reference to 'memset'
bionic / libc / include / string.h: 144: error: undefined reference to 'memset'
bionic / libc / include / string.h: 144: error: undefined reference to 'memset'
bionic / libc / include / string.h: 108: error: undefined reference to 'memcpy'
bionic / libc / include / string.h: 108: error: undefined reference to 'memcpy'
bionic / libc / include / string.h: 217: error: undefined reference to 'strlen'
bionic / libc / include / string.h: 217: error: undefined reference to 'strlen'
bionic / libc / include / string.h: 217: error: undefined reference to 'strlen'
bionic / libc / include / string.h: 108: error: undefined reference to 'memcpy'
bionic / libc / include / string.h: 217: error: undefined reference to 'strlen'
bionic / libc / include / string.h: 118: error: reference: strcpy
bionic / libc / include / stdio.h: 479: error: undefined reference to 'strcpy'
bionic / libc / include / stdio.h: 479: error: undefined reference to 'strcpy'
bionic / libc / include / stdio.h: 479: error: undefined reference to 'strcpy'
bionic / libc / bionic / stubs.cpp: 235: error: undefined reference to 'strcmp'
bionic / libc / bionic / stubs.cpp: 183: error: undefined reference to 'strcmp'
bionic / libc / include / string.h: 108: error: reference: reference to '__memcpy_chk'
bionic / libc / include / string.h: 108: error: reference: reference to '__memcpy_chk'
bionic / libc / include / string.h: 113: error: undefined reference to 'memmove'
bionic / libc / include / string.h: 113: error: undefined reference to 'memmove'
bionic / libc / include / string.h: 118: error: reference: reference to '__strcpy_chk'
bionic / libc / include / string.h: 113: error: undefined reference to 'memmove'
bionic / libc / include / string.h: 108: error: reference: reference to '__memcpy_chk'
bionic / libc / include / string.h: 113: error: undefined reference to 'memmove'
bionic / libc / include / string.h: 118: error: reference: reference to '__strcpy_chk'
bionic / libc / include / string.h: 118: error: reference: reference to '__strcpy_chk'
collect2: error: ld returned 1 exit status
make: *** [/home/user/omni/out/target/product/Alto45/obj/SHARED_LIBRARIES/libc_intermediates/LINKED/libc.so] Error 1
make: *** Waiting for task completion ...
Symlink: / home / user / omni / out / target / product / Alto45 / recovery / root / sbin / bbconfig ->busybox
user @ user-vm: ~ / omni $


Post has been editedcoqs - 21.01.15, 09:28


--------------------
Qui quaerit reperit
baddhet
Message#15
21.01.15, 08:10
Starting a new life.
*********
[offline]

Topics Curator
Group: Curators
Messages 2549
Check in: 03.04.12
Xiaomi Redmi Note 4X Snapdragon 3/32

Reputation:-  697  +

You had a mistake
bionic / libc / arch-arm / arm.mk: 41: *** "TARGET_CPU_VARIANT
Look at her. It is registered in boardconfig.mk


--------------------
Xiaomi Redmi Note 4X
If there are people who learn German and live in St. Petersburg, write in a personal, we will communicate in German.
coqs
Message#16
21.01.15, 09:24
We grow old)
*******
[offline]

Group: Friendssavagemessiahzine.com
Messages 1266
Check in: 30.07.14
Oneplus 5 8/128

Reputation:-  105  +

bionic / libc / arch-arm / arm.mk: 41: *** "TARGET_CPU_VARIANT
Look at her. It is registered in boardconfig.mk
I dealt with this error.


--------------------
Qui quaerit reperit
IvvanVG
Message#17
21.01.15, 09:46
Old resident
*******
[offline]

Group: Friendssavagemessiahzine.com
Messages 1167
Check in: 28.11.11
ZUK Z2

Reputation:-  204  +

* baddhet
Next, we put Java Oracle 6
and what if it already costs version 7? No compilation errors?
baddhet
Message#18
21.01.15, 10:22
Starting a new life.
*********
[offline]

Topics Curator
Group: Curators
Messages 2549
Check in: 03.04.12
Xiaomi Redmi Note 4X Snapdragon 3/32

Reputation:-  697  +

* IvvaNGrigO,
May be. I use the 6th.

Added 01/21/2015 10:22 AM:

* coqs,
How did you decide?


--------------------
Xiaomi Redmi Note 4X
If there are people who learn German and live in St. Petersburg, write in a personal, we will communicate in German.
IvvanVG
Message#19
21.01.15, 10:30
Old resident
*******
[offline]

Group: Friendssavagemessiahzine.com
Messages 1167
Check in: 28.11.11
ZUK Z2

Reputation:-  204  +

* baddhet
Damn installed java 6 when checking the version gave an error: they say need 7 ...
I understand correctly that it depends on the version of linux? I have ubuntu 14.10

Concerning the last point:
j16 means that the operation will be performed in 4 threads for each core.
If you have a small-core computer, add 1 to your number of cores and write the result.
those. If I have 4 cores, what is the optimal number of threads I need to specify? 4 * 4 = 16 - right?

Regarding the choice of repository: if you choose omni 5.0, then the kernel should be from version 5 android? Or you can use the kernel from 4.4.2 ..

Post has been editedIvvaNGrigO - 21.01.15, 11:12
coqs
Message#20
21.01.15, 10:52
We grow old)
*******
[offline]

Group: Friendssavagemessiahzine.com
Messages 1266
Check in: 30.07.14
Oneplus 5 8/128

Reputation:-  105  +

Oh, went from here added file cortex-a53.mkhttps://github.com/Opt...rtex-a53/cortex-a53.mk

Created a file bionic / libc / arc-arm / cortex-a53 / cortex-a53.mk, with such content.
libc_bionic_src_files_arm + = \
arch-arm / cortex-a15 / bionic / memchr.S \
arch-arm / cortex-a15 / bionic / memcpy.S \
arch-arm / cortex-a15 / bionic / memset.S \
arch-arm / cortex-a15 / bionic / strcat.S \
arch-arm / cortex-a15 / bionic / strcmp.S \
arch-arm / cortex-a15 / bionic / strcpy.S \
arch-arm / cortex-a15 / bionic / strlen.S \
arch-arm / cortex-a15 / bionic / __ strcat_chk.S \
arch-arm / cortex-a15 / bionic / __ strcpy_chk.S \
arch-arm / krait / bionic / memmove.S
beddhet, something like that.

Post has been editedcoqs - 21.01.15, 11:00


--------------------
Qui quaerit reperit
baddhet
Message#21
21.01.15, 11:14
Starting a new life.
*********
[offline]

Topics Curator
Group: Curators
Messages 2549
Check in: 03.04.12
Xiaomi Redmi Note 4X Snapdragon 3/32

Reputation:-  697  +

No, it does not depend on the version; you can do this:
sudo update-alternatives --config javac
sudo update-alternatives --config java
sudo update-alternatives --config javaws
sudo update-alternatives --config javadoc
sudo update-alternatives --config javah
sudo update-alternatives --config javap
sudo update-alternatives --config jar

Each drain must be entered separately. There will be a choice of which version to use, choose 6 or it will show 1.6.45. I do not remember.

Posted 01/21/2015 11:14:

And here are your mistakes
bionic / libc / include / string.h: 113: error: undefined reference to 'memmove'
bionic / libc / include / string.h: 118: error: reference: reference to '__strcpy_chk'


Posted 01/21/2015 11:14:

Just what you did. Show BoardConfig.mk


--------------------
Xiaomi Redmi Note 4X
If there are people who learn German and live in St. Petersburg, write in a personal, we will communicate in German.

114 pagesV  1 2 3 4 5 6 > » 


 mobile version    Now: 05/01/19 13:39