Yes, you could skip the whole os installation, and for unpacking tool I use this
https://github.com/xiaolu/mkbootimg_tools
Since we are talking about compiling CWM based recovery, or official CWM, we will move to cyanogenmod guide.
So do what they say to sync the cm-11.0 repo. I usually do this in a folder named CM11-0, but you can use what name you want, or as they say "/android/system". Wait to finish the repo sync (depends on internet connection, computer performances, etc) - for me it takes about four hours.
.
can anyone help me with this
grep: build/target/board/generic/recovery.fstab: No such file or directory
find: ‘out/target/common/docs/gen’: No such file or directory
find: ‘out/target/common/docs/gen’: No such file or directory
find: ‘out/target/common/docs/gen’: No such file or directory
find: ‘out/target/common/docs/gen’: No such file or directory
find: ‘out/target/common/docs/gen’: No such file or directory
build/core/prebuilt.mk:123: *** recipe commences before first target. Stop.
So if you want to add some init files in recovery ramdisk root (init.usb.rc or init.ssd.rc, etc.) there is another way. For cm11, you have to create a subfolder "recovery" in device tree - which you did already, and in that folder to create subfolders that match recovery ramdisk folders (ex. etc, res, sbin...), and for files that have to be in root create a root subfolder. The building process will take those, if they are in res or root subfolder and place them in corresponding folders in recovery ramdisk. for the other subfolders (etc, sbin) you have to create an Android.mk file in recovery folder defining every file as local module and to use device_xxxx.mk to add them as product packages. This method with locale module is also recommended for boot image ramdisk. For building recovery we don't need that, but I mention it for further developments.
Now it's time to add some files in recovery folder. A custom init.rc and fstab, named after your hardware: if it is qualcomm will be init.qualcomm.rc and fstab.qualcomm, if it is a MTK phone will be init.mt6589.rc and fstab.mt6589 or whatever is your MTK hardware, and so on. This fstab will be placed in /recovery/root folder and init file will remain in recovery folder. Another way is to name init.{hardware}.rc as init.recovery.{hardware}.rc and to place it in /recovery/root folder too, and to not use a custom init.rc for recovery, because that one will be called in default init.rc, but I prefer only one init.rc file in ramdisk.
If you don't know your hardware, get it with adb:
and you will find the hardware.Code:adb shell cat /proc/cpuinfo
For me it is:
Code:[COLOR="Blue"]Hardware[/COLOR] : [COLOR="Red"]MT6589[/COLOR] [/QUOTE] What if it says both qualcomm and a mtk number/?? Hardware : Qualcomm MSM8212 Revision : 0000 Serial : 0000000000000000 also my bootloader board name line is this... TARGET_BOOTLOADER_BOARD_NAME := msm8610 Here is my whole " adb shell cat /proc/cpuinfo " Processor : ARMv7 Processor rev 3 (v7l) processor : 0 BogoMIPS : 38.40 processor : 1 BogoMIPS : 38.40 processor : 2 BogoMIPS : 38.40 processor : 3 BogoMIPS : 38.40 Features : swp half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt CPU implementer : 0x41 CPU architecture: 7 CPU variant : 0x0 CPU part : 0xc07 CPU revision : 3 Hardware : Qualcomm MSM8212 Revision : 0000 Serial : 0000000000000000
VENDOR : Unknown
CODENAME : astar-inet
CPU : Allwinner A33 Quad-Core ARM Cortex A7 @ 1.2GHz
GPU : Mali400 MP2
RAM : 1GB LPDDR3/DDR3
ROM : 8GB
SCREEN : 7" IPS 1024x600p
STOCK FIRMWARE: Android 4.4.2 (A33_U70_U708HC_1412005_20141202.img)
root@astar-inet:/ # cat /proc/cpuinfo
Processor : ARMv7 Processor rev 5 (v7l)
processor : 0
BogoMIPS : 74951.62
Features : swp half thumb fastmult vfp edsp thumbee neon vfpv3 tls vfpv4 idiva idivt
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part : 0xc07
CPU revision : 5
Hardware : sun8i
Revision : 0000
Serial : 034c1a49079500000000
adb push recovery.img /mnt/extsd/
adb shell "cat /mnt/extsd/recovery.img > /dev/block/nandg
sudo apt-get update
sudo apt-get install git gnupg flex bison gperf build-essential zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev libx11-dev libreadline6-dev libgl1-mesa-dri-lts-trusty:i386 libgl1-mesa-dev-lts-trusty g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386 lzop ccache gnupg python gcc g++ cpp
sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
sudo apt-get install ia32-libs
sudo apt-get install bison g++-multilib git gperf libxml2-utils
sudo apt-get install gnupg ccache lzop flex build-essential zip curl zlib1g-dev zlib1g-dev:i386 libc6-dev lib32bz2-1.0 lib32ncurses5-dev x11proto-core-dev libx11-dev:i386 libreadline6-dev:i386 lib32z1-dev libgl1-mesa-glx:i386 libgl1-mesa-dev mingw32 tofrodos python-markdown xsltproc libreadline6-dev lib32readline-gplv2-dev libncurses5-dev bzip2 libbz2-dev libbz2-1.0 libghc-bzlib-dev lib32bz2-dev squashfs-tools pngcrush pngquant schedtool dpkg-dev
sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
#MTK
SUBSYSTEM=="usb", ATTR{idVendor}=="0e8d", MODE="0666", GROUP="plugdev", OWNER="your_username"
#MTK adb and mass storage
SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", [COLOR="Red"]ATTR{idProduct}=="0c03"[/COLOR], MODE="0666", GROUP="plugdev", OWNER="your_username"
tar xzf $HOME/Downloads/android-sdk_[COLOR="Red"]rxx[/COLOR]-linux.tgz
"openjdk is not supported" and "FAIL"
sudo apt-get purge openjdk-\* icedtea-\* icedtea-6-\* icedtea-7-\*
sudo dpkg --list | grep -i jdk
mv $HOME/Downloads/jdk-7u67-linux-x64.tar.gz $HOME && mv $HOME/Downloads/jdk-6u45-linux-x64.bin $HOME
sudo mkdir -p /opt/java
sudo tar -zxf jdk-7u67-linux-x64.tar.gz -C /opt/java
chmod u+x jdk-6u45-linux-x64.bin
./jdk-6u45-linux-x64.bin
sudo mv jdk1.6.0_45 /opt/java
sudo rm jdk-6u45-linux-x64.bin jdk-7u67-linux-x64.tar.gz
sudo update-alternatives --install "/usr/bin/java" "java" "/opt/java/jdk1.7.0_67/bin/java" 1
sudo update-alternatives --install "/usr/bin/javac" "javac" "/opt/java/jdk1.7.0_67/bin/javac" 1
sudo update-alternatives --install "/usr/bin/javadoc" "javadoc" "/opt/java/jdk1.7.0_67/bin/javadoc" 1
sudo update-alternatives --install "/usr/bin/javah" "javah" "/opt/java/jdk1.7.0_67/bin/javah" 1
sudo update-alternatives --install "/usr/bin/javap" "javap" "/opt/java/jdk1.7.0_67/bin/javap" 1
sudo update-alternatives --install "/usr/bin/javaws" "javaws" "/opt/java/jdk1.7.0_67/bin/javaws" 1
sudo update-alternatives --install "/usr/bin/java" "java" "/opt/java/jdk1.6.0_45/bin/java" 2
sudo update-alternatives --install "/usr/bin/javac" "javac" "/opt/java/jdk1.6.0_45/bin/javac" 2
sudo update-alternatives --install "/usr/bin/javaws" "javaws" "/opt/java/jdk1.6.0_45/bin/javaws" 2
ls -la /etc/alternatives/java*
sudo update-alternatives --config java
sudo update-alternatives --config javac
sudo update-alternatives --config javaws
sudo ln -s /opt/java/jdk1.7.0_67/jre/lib/amd64/libnpjp2.so /usr/lib/mozilla/plugins/libnpjp2.so
sudo ln -s /opt/java/jdk1.7.0_67/jre/lib/amd64/libnpjp2.so /usr/lib/chromium-browser/plugins/libnpjp2.so
sudo ln -s /opt/java/jdk1.7.0_67/jre/lib/amd64/libnpjp2.so /usr/lib/opera/plugins/libnpjp2.so
export JAVA_HOME=/opt/java/jdk1.6.0_45
[COLOR="Red"]#[/COLOR] export JAVA_HOME=/opt/java/jdk1.7.0_67
(gedit:7129): Gtk-CRITICAL **: gtk_tree_selection_get_selected: assertion `GTK_IS_TREE_SELECTION (selection)' failed
sudo gedit
sudo rm -rf /opt/java/jdk1.6.0_45
sudo rm -rf /opt/java/jdk1.7.0_67
sudo update-alternatives --remove "java" "/usr/bin/java"
sudo update-alternatives --remove "javac" "/usr/bin/javac"
sudo update-alternatives --remove "javadoc" "/usr/bin/javadoc"
sudo update-alternatives --remove "javah" "/usr/bin/javah"
sudo update-alternatives --remove "javap" "/usr/bin/javap"
sudo update-alternatives --remove "javaws" "/usr/bin/javaws"
sudo update-alternatives --config java
sudo update-alternatives --config javac
sudo update-alternatives --config javadoc
sudo update-alternatives --config javah
sudo update-alternatives --config javap
sudo update-alternatives --config javaws
sudo rm /usr/lib/mozilla/plugins/libnpjp2.so
sudo rm /usr/lib/chromium-browser/plugins/libnpjp2.so
sudo rm /usr/lib/opera/plugins/libnpjp2.so
#export JAVA_HOME=/opt/java/jdk1.6.0_45
export JAVA_HOME=/opt/java/jdk1.7.0_67
sudo apt-get update
sudo apt-get install openjdk-7-jdk icedtea-netx
sudo update-alternatives --install "/usr/bin/java" "java" "/opt/java/jdk1.7.0_67/bin/java" 1
sudo update-alternatives --install "/usr/bin/javac" "javac" "/opt/java/jdk1.7.0_67/bin/javac" 1
sudo update-alternatives --install "/usr/bin/java" "java" "/opt/java/jdk1.6.0_45/bin/java" 2
sudo update-alternatives --install "/usr/bin/javac" "javac" "/opt/java/jdk1.6.0_45/bin/javac" 2
#export JAVA_HOME=/opt/java/jdk1.7.0_67
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
#export JAVA_HOME=/opt/java/jdk1.6.0_45
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
sudo update-alternatives --config java
sudo update-alternatives --config javac
sudo gedit ~/.bashrc
export PATH=~/bin:$PATH
#export JAVA_HOME=/opt/java/jdk1.7.0_67
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
export JRE_HOME=JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
export PATH=$HOME/bin:$HOME/android-sdk/platform-tools/:$HOME/android-sdk/tools:$PATH
export USE_CCACHE=1
java -version
which java
echo $JAVA_HOME
ro.product.manufacturer=[COLOR="Red"]LENOVO[/COLOR]
ro.product.device=[COLOR="Red"]P780[/COLOR]
./build/tools/device/mkvendor.sh lenovo P780 recovery.img
"[COLOR="Red"]unpackbootimg[/COLOR] not found. Is your android build environment set up and have the host tools been built?"
. build/envsetup.sh
make -j4 otatools
UNPACKBOOTIMG=[COLOR="Red"]$(which unpackbootimg)[/COLOR]
cp $HOME/CM11_folder/out/host/linux-x86/bin/unpackbootimg $HOME/bin
which unpackbootimg
cd CM11-0
./build/tools/device/mkvendor.sh lenovo P780 recovery.img
# mount point fstype device [device2]
/boot mtd boot
/cache yaffs2 cache
/data yaffs2 userdata
/misc mtd misc
/recovery mtd recovery
/sdcard vfat /dev/block/mmcblk0p1 /dev/block/mmcblk0
/system yaffs2 system
/sd-ext ext4 /dev/block/mmcblk0p2
./unpack_MTK_img recovery.img
./repack_img recovery
./build/tools/device/mkvendor.sh lenovo P780 recovery.img
boot /boot emmc defaults defaults
/dev/block/mmcblk0p2 /cache ext4 defaults defaults
/dev/block/mmcblk0p3 /data ext4 defaults defaults
misc /misc emmc defaults defaults
recovery /recovery emmc defaults defaults
/dev/block/mmcblk0p4 /sdcard vfat defaults defaults
/dev/block/mmcblk0p6 /system ext4 defaults defaults
./unpack_img boot.img
./unpack_MTK_img boot.img
# Copyright (C) 2014 The CyanogenMod Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#<src> <mnt_point> <type> <mnt_flags> <fs_mgr_flags>
#/dev/block/platform/msm_sdcc.1/by-name/dsps /firmware_dsps vfat ro,shortname=lower wait
/dev/block/platform/msm_sdcc.1/by-name/radio /firmware_radio vfat ro,shortname=lower wait
/dev/block/platform/msm_sdcc.1/by-name/adsp /firmware_q6 vfat ro,shortname=lower wait
#/dev/block/platform/msm_sdcc.1/by-name/wcnss /firmware_wcnss vfat ro,shortname=lower wait
/dev/block/platform/msm_sdcc.1/by-name/boot /boot emmc defaults defaults
/dev/block/platform/msm_sdcc.1/by-name/recovery /recovery emmc defaults defaults
/dev/block/platform/msm_sdcc.1/by-name/misc /misc emmc defaults defaults
/dev/block/platform/msm_sdcc.1/by-name/devlog /devlog ext4 noatime,nosuid,nodev,barrier=0 wait
/dev/block/platform/msm_sdcc.1/by-name/system /system ext4 ro,noatime,barrier=0 wait
/dev/block/platform/msm_sdcc.1/by-name/cache /cache ext4 noatime,nosuid,nodev,barrier=0 wait
/dev/block/platform/msm_sdcc.1/by-name/userdata /data ext4 noatime,nosuid,nodev,noauto_da_alloc,barrier=0 wait,encryptable=/dev/block/platform/msm_sdcc.1/by-name/extra
# SD card
/devices/platform/msm_sdcc.1/mmc_host/mmc0 auto auto defaults voldmanaged=sdcard0:36,noemulatedsd
# USB storage
/devices/platform/msm_hsusb_host/usb auto auto defaults voldmanaged=usbdisk:auto
# Android fstab file.
# The filesystem that contains the filesystem checker binary (typically /system) cannot
# specify MF_CHECK, and must come before any filesystems that do specify MF_CHECK
#<src> <mnt_point> <type> <mnt_flags and options> <fs_mgr_flags>
/emmc@android /system ext4 ro,noatime wait
/emmc@cache /cache ext4 noatime,nosuid,nodev,noauto_da_alloc wait
/emmc@usrdata /data ext4 noatime,nosuid,nodev,noauto_da_alloc wait,encryptable=footer
# vold-managed volumes
/devices/platform/mtk-msdc.0/mmc_host/mmc0 auto auto defaults voldmanaged=sdcard1:8,
/devices/platform/mtk-msdc.1/mmc_host/mmc1 auto auto defaults voldmanaged=sdcard0:auto
/dev/bootimg /boot emmc defaults defaults
/dev/nvram /nvram emmc defaults defaults
/dev/recovery /recovery emmc defaults defaults
/dev/uboot /uboot emmc defaults defaults
/dev/misc /misc emmc defaults defaults
# Android fstab file.
# The filesystem that contains the filesystem checker binary (typically /system) cannot
# specify MF_CHECK, and must come before any filesystems that do specify MF_CHECK
#<src> <mnt_point> <type> <mnt_flags and options> <fs_mgr_flags>
/emmc@android /system ext4 ro,noatime wait
/emmc@cache /cache ext4 noatime,nosuid,nodev,noauto_da_alloc wait
/emmc@usrdata /data ext4 noatime,nosuid,nodev,noauto_da_alloc wait,encryptable=footer
[COLOR="Red"]/emmc@protect_f /protect_f ext4 noatime,nosuid,nodev,noauto_da_alloc wait,check
/emmc@protect_s /protect_s ext4 noatime,nosuid,nodev,noauto_da_alloc wait,check[/COLOR]
# vold-managed volumes
/devices/platform/mtk-msdc.0/mmc_host/mmc0 auto auto defaults voldmanaged=sdcard0:8
/devices/platform/mtk-msdc.1/mmc_host/mmc1 auto auto defaults voldmanaged=sdcard1:auto
/devices/platform/mt_usb/sda/sda1 auto auto defaults voldmanaged=usbotg:auto
/dev/bootimg /boot emmc defaults defaults
/dev/nvram /nvram emmc defaults defaults
/dev/recovery /recovery emmc defaults defaults
/dev/uboot /uboot emmc defaults defaults
/dev/misc /misc emmc defaults defaults
# Android fstab file.
# The filesystem that contains the filesystem checker binary (typically /system) cannot
# specify MF_CHECK, and must come before any filesystems that do specify MF_CHECK
#<src> <mnt_point> <type> <mnt_flags and options> <fs_mgr_flags>
/ubi@system /system ubifs ro,noatime wait
/ubi@cache /cache ubifs noatime,nosuid,nodev,noauto_da_alloc wait
/ubi@userdata /data ubifs noatime,nosuid,nodev,noauto_da_alloc wait,encryptable=footer
# vold-managed volumes
/devices/platform/mtk-msdc.0/mmc_host/mmc0 auto auto defaults voldmanaged=sdcard0:8,
/devices/platform/mtk-msdc.1/mmc_host/mmc1 auto auto defaults voldmanaged=sdcard1:auto
/dev/mtd/mtd6 /boot mtd defaults defaults
/dev/mtd/mtd2 /nvram mtd defaults defaults
/dev/mtd/mtd7 /recovery mtd defaults defaults
/dev/mtd/mtd5 /uboot mtd defaults defaults
/dev/mtd/mtd9 /misc mtd defaults defaults
adb shell ls /proc
adb shell cat /proc/[COLOR="Red"]the_name_you_see[/COLOR]
C:\Users\carliv>adb shell ls /proc
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
[HIDE]1
........
98[/HIDE] [COLOR="Red"]<- ignored[/COLOR]
aed
asound
audio
batdrv_log
boot_mode
bootprof
buddyinfo
bus
cgroups
clkmgr
cmdline
consoles
cpu
cpu_ss
cpufreq
cpuinfo
crypto
[COLOR="Red"]devices[/COLOR]
diskstats
dma-mappings
driver
[COLOR="Red"]dumchar_info[/COLOR]
emifreq
[COLOR="Red"]emmc[/COLOR]
execdomains
fat
fb
fgadc_log
filesystems
fm
freqhopping
fs
golden_setting
gpt_stat
gpufreq
interrupts
iomem
ioports
irq
kallsyms
kmsg
kpagecount
kpageflags
last_kmsg
lk_env
loadavg
locks
log_ts
mcdi
meminfo
misc
modules
[COLOR="Red"]mounts[/COLOR]
msdc_FT
msdc_debug
msdc_help
msdc_tune
msdc_tune_flag
mt_hotplug_test
mtd
mtk_battery_cmd
mtk_mdm_txpwr
mtk_sched
mtkcooler
mtkfb_size
mtktsbattery
mtktscpu
mtktspa
mtktspmic
mtktz
mtprof
net
nt35590_hd720_dsi_vdo_truly
pagetypeinfo
[COLOR="Red"]partitions[/COLOR]
pm_init
ptp
pvr
rid
sched_debug
schedstat
scsi
sd_upgrade
self
softirqs
stat
swaps
sys
sysram
sysram_flag
timer_list
tty
uid_stat
uptime
version
vmallocinfo
vmstat
wdk
wmt_tm
xlog
yaffs
zoneinfo
C:\Users\carliv>
<default revision="refs/heads/cm-11.0"
remote="github"
sync-c="true"
sync-j=[COLOR="Red"]"4"[/COLOR] />
repo sync -j1
# Check for the correct version of java
java_version := $(shell java -version 2>&1 | head -n 1 | grep '^java .*[ "]1\.[67][\. "$$]')
ifneq ($(shell java -version 2>&1 | grep -i openjdk),)
java_version :=
endif
ifeq ($(strip $(java_version)),)
$(info ************************************************************)
$(info You are attempting to build with an unsupported version)
$(info of java.)
$(info $(space))
$(info Your version is: $(shell java -version 2>&1 | head -n 1).)
$(info The correct version is: Java SE 1.6 or 1.7.)
$(info $(space))
$(info Please follow the machine setup instructions at)
$(info $(space)$(space)$(space)$(space)https://source.android.com/source/download.html)
$(info ************************************************************)
endif
# Check for the correct version of javac
javac_version := $(shell javac -version 2>&1 | head -n 1 | grep '[ "]1\.[67][\. "$$]')
ifeq ($(strip $(javac_version)),)
$(info ************************************************************)
$(info You are attempting to build with the incorrect version)
$(info of javac.)
$(info $(space))
$(info Your version is: $(shell javac -version 2>&1 | head -n 1).)
$(info The correct version is: 1.6 or 1.7.)
$(info $(space))
$(info Please follow the machine setup instructions at)
$(info $(space)$(space)$(space)$(space)https://source.android.com/source/download.html)
$(info ************************************************************)
$(error stop)
endif
java_version_str := $(shell unset _JAVA_OPTIONS && java -version 2>&1)
javac_version_str := $(shell unset _JAVA_OPTIONS && javac -version 2>&1)
# Check for the correct version of java, should be 1.7 by
# default, and 1.6 if LEGACY_USE_JAVA6 is set.
ifeq ($(LEGACY_USE_JAVA6),)
required_version := "1.7.x"
required_javac_version := "1.7"
java_version := $(shell echo '$(java_version_str)' | grep '^java .*[ "]1\.7[\. "$$]')
javac_version := $(shell echo '$(javac_version_str)' | grep '[ "]1\.7[\. "$$]')
else # if LEGACY_USE_JAVA6
required_version := "1.6.x"
required_javac_version := "1.6"
java_version := $(shell echo '$(java_version_str)' | grep '^java .*[ "]1\.6[\. "$$]')
javac_version := $(shell echo '$(javac_version_str)' | grep '[ "]1\.6[\. "$$]')
endif # if LEGACY_USE_JAVA6
ifeq ($(strip $(java_version)),)
$(info ************************************************************)
$(info You are attempting to build with the incorrect version)
$(info of java.)
$(info $(space))
$(info Your version is: $(java_version_str).)
$(info The required version is: $(required_version))
$(info $(space))
$(info Please follow the machine setup instructions at)
$(info $(space)$(space)$(space)$(space)https://source.android.com/source/initializing.html)
$(info ************************************************************)
$(error stop)
endif
# Check for the current JDK.
#
# For Java 1.7, we require OpenJDK on linux and Oracle JDK on Mac OS.
# For Java 1.6, we require Oracle for all host OSes.
requires_openjdk := false
ifeq ($(LEGACY_USE_JAVA6),)
ifeq ($(HOST_OS), linux)
requires_openjdk := true
endif
endif
# Check for the current jdk
ifeq ($(requires_openjdk), true)
# The user asked for java7 openjdk, so check that the host
# java version is really openjdk
ifeq ($(shell echo '$(java_version_str)' | grep -i openjdk),)
$(info ************************************************************)
$(info You asked for an OpenJDK 7 build but your version is)
$(info $(java_version_str).)
$(info ************************************************************)
$(error stop)
endif # java version is not OpenJdk
else # if requires_openjdk
ifneq ($(shell echo '$(java_version_str)' | grep -i openjdk),)
$(info ************************************************************)
$(info You are attempting to build with an unsupported JDK.)
$(info $(space))
$(info You use OpenJDK but only Sun/Oracle JDK is supported.)
$(info Please follow the machine setup instructions at)
$(info $(space)$(space)$(space)$(space)https://source.android.com/source/download.html)
$(info ************************************************************)
$(error stop)
endif # java version is not Sun Oracle JDK
endif # if requires_openjdk
# Check for the correct version of javac
ifeq ($(strip $(javac_version)),)
$(info ************************************************************)
$(info You are attempting to build with the incorrect version)
$(info of javac.)
$(info $(space))
$(info Your version is: $(javac_version_str).)
$(info The required version is: $(required_javac_version))
$(info $(space))
$(info Please follow the machine setup instructions at)
$(info $(space)$(space)$(space)$(space)https://source.android.com/source/download.html)
$(info ************************************************************)
$(error stop)
endif