Help generating incremental OTA update package - Android Q&A, Help & Troubleshooting

Hi guys,
I am trying to generate an incremental OTA update package from AOSP source code.
I saw that the key may be the file ./build/tools/releasetools/ota_from_target_files that requires the "-i <previous_OTA_zip_file>" parameter to do this.
I tried adding this in the ./build/core/Makefile correct section, changing :
Code:
$(INTERNAL_OTA_PACKAGE_TARGET): $(BUILT_TARGET_FILES_PACKAGE) $(DISTTOOLS)
@echo "Package OTA: [email protected]"
$(hide) ./build/tools/releasetools/ota_from_target_files -v \
-p $(HOST_OUT) \
-k $(KEY_CERT_PAIR) \
$(BUILT_TARGET_FILES_PACKAGE) [email protected]
to
Code:
$(INTERNAL_OTA_PACKAGE_TARGET): $(BUILT_TARGET_FILES_PACKAGE) $(DISTTOOLS)
@echo "Package OTA: [email protected]"
$(hide) ./build/tools/releasetools/ota_from_target_files -v \
[B]-i ./temp/old_ota.zip \[/B]
-p $(HOST_OUT) \
-k $(KEY_CERT_PAIR) \
$(BUILT_TARGET_FILES_PACKAGE) [email protected]
However, when I issue the command 'make otapackage', I receive the following error :
... can't find recovery API version in input target-files
Does anyone know how to fix this ? Or, if I'm doing something wrong, please enlighten me
Thanks/

Is there already a solution? I have the same problem.

TheRavenGod said:
Hi guys,
I am trying to generate an incremental OTA update package from AOSP source code.
I saw that the key may be the file ./build/tools/releasetools/ota_from_target_files that requires the "-i <previous_OTA_zip_file>" parameter to do this.
I tried adding this in the ./build/core/Makefile correct section, changing :
Code:
$(INTERNAL_OTA_PACKAGE_TARGET): $(BUILT_TARGET_FILES_PACKAGE) $(DISTTOOLS)
@echo "Package OTA: [email protected]"
$(hide) ./build/tools/releasetools/ota_from_target_files -v \
-p $(HOST_OUT) \
-k $(KEY_CERT_PAIR) \
$(BUILT_TARGET_FILES_PACKAGE) [email protected]
to
Code:
$(INTERNAL_OTA_PACKAGE_TARGET): $(BUILT_TARGET_FILES_PACKAGE) $(DISTTOOLS)
@echo "Package OTA: [email protected]"
$(hide) ./build/tools/releasetools/ota_from_target_files -v \
[B]-i ./temp/old_ota.zip \[/B]
-p $(HOST_OUT) \
-k $(KEY_CERT_PAIR) \
$(BUILT_TARGET_FILES_PACKAGE) [email protected]
However, when I issue the command 'make otapackage', I receive the following error :
... can't find recovery API version in input target-files
Does anyone know how to fix this ? Or, if I'm doing something wrong, please enlighten me
Thanks/
Click to expand...
Click to collapse
did you solved this??

Yes, I did !
The trick is that the old OTA file should actually be one of the other files produced by the 'make otapackage' command : the one with target in the title.
After a lot of struggle (that in the end produced the desired incremental OTA), I also found this site that explains it : http://jhshi.me/2014/11/09/aosp-release-tools/
Best regards

Related

"No space left" but 94.5GB is free

Hello
I'm building CM for my Xperia J, almost finished but I have this stupid error:
Code:
Package target files: /home/lozohcum/CM/out/target/product/jlo/obj/PACKAGING/target_files_intermediates/cm_jlo-target_files-2081b25fba.zip
Package OTA: /home/lozohcum/CM/out/target/product/jlo/cm_jlo-ota-2081b25fba.zip
MKBOOTIMG=device/sony/tamsui-common/custombootimg.mk \
device/sony/tamsui-common/releasetools/semc_ota_from_target_files -v \
-p /home/lozohcum/CM/out/host/linux-x86 \
-k build/target/product/security/testkey \
--backup=true \
--override_device=ST26i,ST26a,jlo \
/home/lozohcum/CM/out/target/product/jlo/obj/PACKAGING/target_files_intermediates/cm_jlo-target_files-2081b25fba.zip /home/lozohcum/CM/out/target/product/jlo/cm_jlo-ota-2081b25fba.zip
unzipping target target-files...
running: unzip -o -q /home/lozohcum/CM/out/target/product/jlo/obj/PACKAGING/target_files_intermediates/cm_jlo-target_files-2081b25fba.zip -d /tmp/targetfiles-ttBFcz
/tmp/targetfiles-ttBFcz/SYSTEM/lib/libOmxWmvDec.so: write error (disk full?). Continue? (y/n/^C) y
The problem is that I actually have 94.5GB free on my /home
/home is on different partition that ubuntu itself.
I have the strange feeling that CM build script is trying to build CM on my system partition where I had my home in past but it would be nonsense

PAC Building Error.

Hello All,
I'm builiding PAC for an officially supported device the Motorola Edison.
And i've been experiencing a stand still in the build process :crying:
Code:
[email protected]:/home/android/PAC# make bacon -j4
============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=4.4.2
CM_VERSION=
TARGET_PRODUCT=pac_edison
TARGET_BUILD_VARIANT=userdebug
TARGET_BUILD_TYPE=release
TARGET_BUILD_APPS=
TARGET_ARCH=arm
TARGET_ARCH_VARIANT=armv7-a-neon
TARGET_CPU_VARIANT=cortex-a9
HOST_ARCH=x86
HOST_OS=linux
HOST_OS_EXTRA=Linux-3.11.0-15-generic-x86_64-with-Ubuntu-13.10-saucy
HOST_BUILD_TYPE=release
BUILD_ID=KVT49L
OUT_DIR=/home/android/PAC/out
============================================
build/core/java.mk:23: *** cts/apps/CtsVerifier: Invalid LOCAL_SDK_VERSION 'current' Choices are: . Stop.
[email protected]:/home/android/PAC#
java.mk:23 is the error i get. and it seems to be related the cts/apps/CtsVerifier.
i tried manually inputting the LOCAL_SDK_VERSION to to my version number. but still i experience the same error.
i have also tried using Oracle JDK 6. And Open JDK 6 & 7. but still i experience the same result.
If there's anyone who can help me with this error i would gladly appreciate it :crying:
Regards,
Uzayr
Uzayr said:
Hello All,
I'm builiding PAC for an officially supported device the Motorola Edison.
And i've been experiencing a stand still in the build process :crying:
Code:
[email protected]:/home/android/PAC# make bacon -j4
============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=4.4.2
CM_VERSION=
TARGET_PRODUCT=pac_edison
TARGET_BUILD_VARIANT=userdebug
TARGET_BUILD_TYPE=release
TARGET_BUILD_APPS=
TARGET_ARCH=arm
TARGET_ARCH_VARIANT=armv7-a-neon
TARGET_CPU_VARIANT=cortex-a9
HOST_ARCH=x86
HOST_OS=linux
HOST_OS_EXTRA=Linux-3.11.0-15-generic-x86_64-with-Ubuntu-13.10-saucy
HOST_BUILD_TYPE=release
BUILD_ID=KVT49L
OUT_DIR=/home/android/PAC/out
============================================
build/core/java.mk:23: *** cts/apps/CtsVerifier: Invalid LOCAL_SDK_VERSION 'current' Choices are: . Stop.
[email protected]:/home/android/PAC#
java.mk:23 is the error i get. and it seems to be related the cts/apps/CtsVerifier.
i tried manually inputting the LOCAL_SDK_VERSION to to my version number. but still i experience the same error.
i have also tried using Oracle JDK 6. And Open JDK 6 & 7. but still i experience the same result.
If there's anyone who can help me with this error i would gladly appreciate it :crying:
Regards,
Uzayr
Click to expand...
Click to collapse
You have to set android latest SDK to your linux path
Regards
MasterAwesome
MasterAwesome said:
You have to set android latest SDK to your linux path
Regards
MasterAwesome
Click to expand...
Click to collapse
Thank you MasterAwesome for repsonding.
And, if you don't mind. Any idea how i can set the linux path to the latest SDK?
Uzayr said:
Thank you MasterAwesome for repsonding.
And, if you don't mind. Any idea how i can set the linux path to the latest SDK?
Click to expand...
Click to collapse
Open your ~/.bashrc and at the end add
Code:
export PATH=$PATH:~/SDK/platform-tools;
export PATH=$PATH:~/SDK/build-tools;
export PATH=$PATH:~/SDK/tools;
or to do it via terminal
Code:
echo 'export PATH=$PATH:~/SDK/platform-tools;' >> ~/.bashrc
echo 'export PATH=$PATH:~/SDK/build-tools;' >> ~/.bashrc
echo 'export PATH=$PATH:~/SDK/tools;' >> ~/.bashrc
MasterAwesome said:
Open your ~/.bashrc and at the end add
Code:
export PATH=$PATH:~/SDK/platform-tools;
export PATH=$PATH:~/SDK/build-tools;
export PATH=$PATH:~/SDK/tools;
or to do it via terminal
Code:
echo 'export PATH=$PATH:~/SDK/platform-tools;' >> ~/.bashrc
echo 'export PATH=$PATH:~/SDK/build-tools;' >> ~/.bashrc
echo 'export PATH=$PATH:~/SDK/tools;' >> ~/.bashrc
Click to expand...
Click to collapse
That's more than enough
thanks a lot. that should hopefully fix my issue.
i appreciate your help
you just saved hours of work.
Sent from my MB865 using Tapatalk
Don't mention it
I have a question, what does your signature mean?
Regards
MasterAwesome
MasterAwesome said:
Don't mention it
I have a question, what does your signature mean?
Regards
MasterAwesome
Click to expand...
Click to collapse
Lol
there you go :
http://it.toolbox.com/blogs/grandpuba/lesson-1-never-play-leapfrog-with-a-unicorn-18108
EDIT:
I get the same error even after installing the ADT Bundle,
This is what my .bashrc looks like.
Code:
# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples
# If not running interactively, don't do anything
case $- in
*i*) ;;
*) return;;
esac
# don't put duplicate lines or lines starting with space in the history.
# See bash(1) for more options
HISTCONTROL=ignoreboth
# append to the history file, don't overwrite it
shopt -s histappend
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=1000
HISTFILESIZE=2000
# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize
# If set, the pattern "**" used in a pathname expansion context will
# match all files and zero or more directories and subdirectories.
#shopt -s globstar
# make less more friendly for non-text input files, see lesspipe(1)
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
# set variable identifying the chroot you work in (used in the prompt below)
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
debian_chroot=$(cat /etc/debian_chroot)
fi
# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
xterm-color) color_prompt=yes;;
esac
# uncomment for a colored prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the prompt
#force_color_prompt=yes
if [ -n "$force_color_prompt" ]; then
if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
# We have color support; assume it's compliant with Ecma-48
# (ISO/IEC-6429). (Lack of such support is extremely rare, and such
# a case would tend to support setf rather than setaf.)
color_prompt=yes
else
color_prompt=
fi
fi
if [ "$color_prompt" = yes ]; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\[email protected]\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
PS1='${debian_chroot:+($debian_chroot)}\[email protected]\h:\w\$ '
fi
unset color_prompt force_color_prompt
# If this is an xterm set the title to [email protected]:dir
case "$TERM" in
xterm*|rxvt*)
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\[email protected]\h: \w\a\]$PS1"
;;
*)
;;
esac
# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
alias ls='ls --color=auto'
#alias dir='dir --color=auto'
#alias vdir='vdir --color=auto'
alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'
fi
# some more ls aliases
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'
# Add an "alert" alias for long running commands. Use like so:
# sleep 10; alert
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if ! shopt -oq posix; then
if [ -f /usr/share/bash-completion/bash_completion ]; then
. /usr/share/bash-completion/bash_completion
elif [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
fi
export PATH=~/bin:$PATH
# Android tools
export PATH=$PATH:~/sdk/platform-tools;
export PATH=$PATH:~/sdk/build-tools;
export PATH=$PATH:~/sdk/tools;
export PATH=${PATH}:~/bin;
Uzayr said:
Lol
there you go :
http://it.toolbox.com/blogs/grandpuba/lesson-1-never-play-leapfrog-with-a-unicorn-18108
EDIT:
I get the same error even after installing the ADT Bundle,
This is what my .bashrc looks like.
Code:
# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples
# If not running interactively, don't do anything
case $- in
*i*) ;;
*) return;;
esac
# don't put duplicate lines or lines starting with space in the history.
# See bash(1) for more options
HISTCONTROL=ignoreboth
# append to the history file, don't overwrite it
shopt -s histappend
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=1000
HISTFILESIZE=2000
# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize
# If set, the pattern "**" used in a pathname expansion context will
# match all files and zero or more directories and subdirectories.
#shopt -s globstar
# make less more friendly for non-text input files, see lesspipe(1)
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
# set variable identifying the chroot you work in (used in the prompt below)
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
debian_chroot=$(cat /etc/debian_chroot)
fi
# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
xterm-color) color_prompt=yes;;
esac
# uncomment for a colored prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the prompt
#force_color_prompt=yes
if [ -n "$force_color_prompt" ]; then
if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
# We have color support; assume it's compliant with Ecma-48
# (ISO/IEC-6429). (Lack of such support is extremely rare, and such
# a case would tend to support setf rather than setaf.)
color_prompt=yes
else
color_prompt=
fi
fi
if [ "$color_prompt" = yes ]; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\[email protected]\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
PS1='${debian_chroot:+($debian_chroot)}\[email protected]\h:\w\$ '
fi
unset color_prompt force_color_prompt
# If this is an xterm set the title to [email protected]:dir
case "$TERM" in
xterm*|rxvt*)
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\[email protected]\h: \w\a\]$PS1"
;;
*)
;;
esac
# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
alias ls='ls --color=auto'
#alias dir='dir --color=auto'
#alias vdir='vdir --color=auto'
alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'
fi
# some more ls aliases
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'
# Add an "alert" alias for long running commands. Use like so:
# sleep 10; alert
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if ! shopt -oq posix; then
if [ -f /usr/share/bash-completion/bash_completion ]; then
. /usr/share/bash-completion/bash_completion
elif [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
fi
export PATH=~/bin:$PATH
# Android tools
export PATH=$PATH:~/sdk/platform-tools;
export PATH=$PATH:~/sdk/build-tools;
export PATH=$PATH:~/sdk/tools;
export PATH=${PATH}:~/bin;
Click to expand...
Click to collapse
Well that was a fun article :/
Anyway type emulator in your terminal and see if you get any result.. If you don't you haven't set the path correctly.
Regards
MasterAwesome
---------- Post added at 07:49 PM ---------- Previous post was at 07:48 PM ----------
MasterAwesome said:
Well that was a fun article :/
Anyway type emulator in your terminal and see if you get any result.. If you don't you haven't set the path correctly.
Or set your path during setting the build environment by typing the export commands in your terminal without the semicolon at the end
Regards
MasterAwesome
Click to expand...
Click to collapse
Regards
MasterAwesome
MasterAwesome said:
Well that was a fun article :/
Anyway type emulator in your terminal and see if you get any result.. If you don't you haven't set the path correctly.
Regards
MasterAwesome
---------- Post added at 07:49 PM ---------- Previous post was at 07:48 PM ----------
Regards
MasterAwesome
Click to expand...
Click to collapse
this is what i get when i type emulator
Code:
[email protected]:~$ emulator
emulator: ERROR: You did not specify a virtual device name, and the system
directory could not be found.
If you are an Android SDK user, please use '@<name>' or '-avd <name>'
to start a given virtual device (see -help-avd for details).
Otherwise, follow the instructions in -help-disk-images to start the emulator
[email protected]:~$
but my other builds have no problems. it's only PAC which is causing me problems.
Uzayr said:
this is what i get when i type emulator
Code:
[email protected]:~$ emulator
emulator: ERROR: You did not specify a virtual device name, and the system
directory could not be found.
If you are an Android SDK user, please use '@<name>' or '-avd <name>'
to start a given virtual device (see -help-avd for details).
Otherwise, follow the instructions in -help-disk-images to start the emulator
[email protected]:~$
but my other builds have no problems. it's only PAC which is causing me problems.
Click to expand...
Click to collapse
Try syncing your repository..
And try
Sudo updates-alternatives --config java
And two me output
Regards
MasterAwesome
MasterAwesome said:
Try syncing your repository..
And try
Sudo updates-alternatives --config java
And two me output
Regards
MasterAwesome
Click to expand...
Click to collapse
i got OpenJDK 6 & 7 and i switch between them when i have to.
Code:
[email protected]:~$ sudo update-alternatives --config java
[sudo] password for android:
There are 2 choices for the alternative java (providing /usr/bin/java).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java 1071 auto mode
1 /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java 1061 manual mode
2 /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java 1071 manual mode
Press enter to keep the current choice[*], or type selection number:
and syncing is fine..i just did a re-sync again.
Uzayr said:
i got OpenJDK 6 & 7 and i switch between them when i have to.
Code:
[email protected]:~$ sudo update-alternatives --config java
[sudo] password for android:
There are 2 choices for the alternative java (providing /usr/bin/java).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java 1071 auto mode
1 /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java 1061 manual mode
2 /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java 1071 manual mode
Press enter to keep the current choice
[*], or type selection number:
and syncing is fine..i just did a re-sync again.
Click to expand...
Click to collapse
There's your error you need sun java.. Oracle JDK 1.6 others are not supported.
Regards
MasterAwesome
MasterAwesome said:
There's your error you need sun java.. Oracle JDK 1.6 others are not supported.
Regards
MasterAwesome
Click to expand...
Click to collapse
i had previously Oracle jdk 1.6 when i started this build. but after these errors i switched to open jdk.
oracle jdk 7 breaks my java installation.
Uzayr said:
i had previously Oracle jdk 1.6 when i started this build. but after these errors i switched to open jdk.
oracle jdk 7 breaks my java installation.
Click to expand...
Click to collapse
yeah you're not supposed to use jdk 7 for now android supports only jdk 1.6_45 :/
first, extract jdk 1.6.bin to your /usr/lib/jvm
and you're supposed to update-configurations for each java binary
rename the .txt attched to .sh and make it runnable by using chmod a+x filename and run it.. you'll get options choose sun java 1.6 and click update. this will make it work.
MasterAwesome said:
yeah you're not supposed to use jdk 7 for now android supports only jdk 1.6_45 :/
first, extract jdk 1.6.bin to your /usr/lib/jvm
and you're supposed to update-configurations for each java binary
rename the .txt attched to .sh and make it runnable by using chmod a+x filename and run it.. you'll get options choose sun java 1.6 and click update. this will make it work.
Click to expand...
Click to collapse
i'll try it out and let you know, ASAP
thank you
Uzayr said:
i'll try it out and let you know, ASAP
thank you
Click to expand...
Click to collapse
ASAP=as slow as possible?
Jk
Regards
MasterAwesome
MasterAwesome said:
ASAP=as slow as possible?
Jk
Regards
MasterAwesome
Click to expand...
Click to collapse
lol,
alright...i get the same error when using Oracle's Java 6
Code:
[email protected]:~$ java -version
java version "1.6.0_45"
Java(TM) SE Runtime Environment (build 1.6.0_45-b06)
Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01, mixed mode)
[email protected]:~$ javac -version
javac 1.6.0_45
[email protected]:~$
Uzayr said:
lol,
alright...i get the same error when using Oracle's Java 6
Code:
[email protected]:~$ java -version
java version "1.6.0_45"
Java(TM) SE Runtime Environment (build 1.6.0_45-b06)
Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01, mixed mode)
[email protected]:~$ javac -version
javac 1.6.0_45
[email protected]:~$
Click to expand...
Click to collapse
Okay send me the build/core/java.mk I'll check it
Regards
MasterAwesome
MasterAwesome said:
Okay send me the build/core/java.mk I'll check it
Regards
MasterAwesome
Click to expand...
Click to collapse
I have attaches
Uzayr said:
I have attaches
Click to expand...
Click to collapse
facing the same issue. is it solved ?

[Q] ANDROID BUILD ERROR while building ota zip

Hello everyone so i'm a developer and i'm STUCK. I have spent countless hours trying to figure out what is causing this.. I'm at my end. If someone knows how to fix this error PLEASE let me know...If you even just have a idea or something for me to try PLEASE post it. :fingers-crossed:
thank you in advance
I posted a pic of the error but here is another look at the error
Package OTA: //out/target/product/vs980/giggle_vs980-ota-eng.gigglekat.zip
MKBOOTIMG=device/lge/g2-common/releasetools/mkbootimg.mk \
./build/tools/releasetools/ota_from_target_files -v \
-p /home/gigglekat/jenkins/giggle/out/host/linux-x86 \
-k build/target/product/security/testkey \
--backup=true \
--override_device=vs980,g2,galbi \
\
\
//out/target/product/vs980/obj/PACKAGING/target_files_intermediates/giggle_vs980-target_files-eng.gigglekat.zip /home/gigglekat/jenkins/giggle/out/target/product/vs980/giggle_vs980-ota-eng.gigglekat.zip
unzipping target target-files...
running: unzip -o -q /out/target/product/vs980/obj/PACKAGING/target_files_intermediates/giggle_vs980-target_files-eng.gigglekat.zip -d /tmp/targetfiles-_hgXek
Traceback (most recent call last):
File "./build/tools/releasetools/ota_from_target_files", line 1172, in <module>
main(sys.argv[1:])
File "./build/tools/releasetools/ota_from_target_files", line 1115, in main
OPTIONS.info_dict = common.LoadInfoDict(input_zip)
File "//build/tools/releasetools/common.py", line 156, in LoadInfoDict
d["build.prop"] = LoadBuildProp(zip)
File "/build/tools/releasetools/common.py", line 170, in LoadBuildProp
name, value = line.split("=", 1)
ValueError: need more than 1 value to unpack

Help with compiling / porting MultiRom / TWRP for Aquaris E5?

I would like to have a dual boot (Android / Ubuntu Touch) on an Aquaris E5 HD phone ( the Ubuntu Touch variant can be flashed with stock Android and vice versa, see mibqyyo.com/en-articles/2015/09/16/ubuntu-android-installation-process-for-bq-aquaris-e4-5-and-e5 ). ((sorry for the links, new user))
Unfortunately, the instructions from wiki.ubuntu.com/Touch/DualBootInstallation do not work with this phone anymore: it seems that the software in those instructions relies on the device having custom ClockworkMod (CWM) recovery -- and, it seems ClockworkMod does not support this device anymore, if it ever did ( see askubuntu.com/questions/666070/cant-install-ubuntu-touch-dual-boot-on-mobile-stuck-in-waiting-for-device/776357 ).
The only other option I could see for dual boot is MultiROM Manager, unfortunately it fails with "This is unsupported device (Aquaris_E5_HD)!"
However, it is possible to root this phone using a TeamWin Recovery Project (TWRP) custom recovery image ( v3.0.2-0, see mibqyyo.com/comunidad/discussion/77467/how-to-root-a-bq-aquaris-e5-hd-phone ), which seemingly does support this phone. Furthermore, from twrp.me/devices/bqaquarise5hd.html there is a reference to:
Device Tree / files: github.com/TeamWin/android_device_bq_vegetahd - and from there:
Kernel source available on: github.com/bq/aquaris-E5
So, I thought - maybe it would be possible to port / build MultiROM from source, with support for this device? I tried something, and maybe I even got part of the way - unfortunately I cannot get the build to complete, so I hope I can get some assistance here. I will outline the steps I did below. First of all, I use this as my PC:
Code:
$ uname -a
Linux MYPC 4.2.0-38-generic #45~14.04.1-Ubuntu SMP Thu Jun 9 09:27:51 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
$ cat /etc/issue
Ubuntu 14.04.4 LTS \n \l
Then I looked at github.com/Tasssadar/multirom/wiki/Porting-MultiROM:
Prerequisites
* Android 4.1+ tree
* TWRP ported to your device. There are guides on the internet on how to do that.
* Kernel sources
Downloading sources
Just clone TWRP, MultiROM and libbootimg repos into your Android Tree, the commands would look something like this: [...]
Click to expand...
Click to collapse
I was somewhat puzzled about what this "Android Tree" is, but eventually I guessed it is the Android Open Source Project (AOSP) source code. So, I looked and did this:
source.android.com/source/initializing.html
(Note: http removed from links in code below, because I'm a new user and cannot post links):
Code:
cd /tmp
wget archive.ubuntu.com/ubuntu/pool/universe/o/openjdk-8/openjdk-8-jre-headless_8u45-b14-1_amd64.deb
wget archive.ubuntu.com/ubuntu/pool/universe/o/openjdk-8/openjdk-8-jre_8u45-b14-1_amd64.deb
wget archive.ubuntu.com/ubuntu/pool/universe/o/openjdk-8/openjdk-8-jdk_8u45-b14-1_amd64.deb
sudo dpkg -i openjdk-8-jre-headless_8u45-b14-1_amd64.deb
sudo dpkg -i openjdk-8-jre_8u45-b14-1_amd64.deb
sudo dpkg -i openjdk-8-jdk_8u45-b14-1_amd64.deb
sudo apt-get -f install
# already have libgl1-mesa-dev-lts-wily mesa-common-dev-lts-wily
# so removed libgl1-mesa-dev from list below:
sudo apt-get install git-core gnupg flex bison gperf build-essential \
zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \
lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \
libxml2-utils xsltproc unzip
sudo apt-get autoremove --purge
wget -S -O - source.android.com/source/51-android.rules | sed "s/<username>/$USER/" | sudo tee >/dev/null /etc/udev/rules.d/51-android.rules
# for the aquaris:
echo "SUBSYSTEM==\"usb\", ATTRidVendor==\"2a47\", ATTRidProduct==\"201d\", MODE=\"0600\", OWNER=\"$USER\"" \
| sudo tee -a /etc/udev/rules.d/51-android.rules
sudo udevadm control --reload-rules
then
source.android.com/source/downloading.html
Code:
mkdir ~/bin
PATH=~/bin:$PATH
curl storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
cd /path/to/src
mkdir AOSP
cd AOSP
repo init -u android.googlesource.com/platform/manifest -b android-4.1.2_r2.1 2>&1 | tee repo.log
repo sync
Note that here, I took the `4.1+` requirement quite literally, so just chose to checkout the last 4.1 branch, `4.1.2_r2.1`.
Also, repo sync took 14+ hours to complete, for my PC+Internet connection combo (!)
With that done, I have this in the directory:
Code:
AOSP$ ls
abi cts docs hardware ndk prebuilts
bionic dalvik external libcore packages repo.log
bootable development frameworks libnativehelper pdk sdk
build device gdk Makefile prebuilt system
Now, at this point, we should be running build/envsetup.sh and lunch; however, that will cause only the default Google devices (Nexus etc) to be recognized. So, here I did cloned the "device tree" (I guess) into the "Android tree":
Code:
AOSP$ mkdir device/bq
AOSP$ git clone github.com/TeamWin/android_device_bq_vegetahd device/bq/vegetahd
AOSP$ chmod +x device/bq/vegetahd/vendorsetup.sh
AOSP$ ls device/bq/vegetahd/
AndroidBoard.mk BoardConfig.mk kernel omni_vegetahd.mk recovery
AndroidProducts.mk device.mk mkbootimg.mk README.md vendorsetup.sh
AOSP$ ls device/samsung/crespo # for comparison
Android.mk full_crespo.mk libsensors recovery
AndroidProducts.mk gps.conf libstagefrighthw recovery.fstab [...]
vendorsetup.sh
and also cloned the Omnirom TWRP recovery sources (note that if you just mv bootable/recovery bootable/old.recovery, then the builds process may also pick some of those files up, so that directory should be deleted, as guides elsewhere recommend):
Code:
AOSP$ rm -rf bootable/recovery
cd bootable
git clone https://github.com/omnirom/android_bootable_recovery.git recovery-twrp
cd ..
Since build/envsetup.sh should be running the vendorsetup.sh when it finds them, after running it, the Aquaris device should be visible:
Code:
AOSP$ source build/envsetup.sh
including device/asus/grouper/vendorsetup.sh
including device/bq/vegetahd/vendorsetup.sh # ***
including device/generic/armv7-a-neon/vendorsetup.sh
including device/generic/armv7-a/vendorsetup.sh
including device/moto/wingray/vendorsetup.sh
including device/samsung/crespo/vendorsetup.sh
including device/samsung/maguro/vendorsetup.sh
including device/ti/panda/vendorsetup.sh
including sdk/bash_completion/adb.bash
AOSP$ lunch
You're building on Linux
Lunch menu... pick a combo:
1. full-eng
2. full_x86-eng
3. vbox_x86-eng
4. full_grouper-userdebug
5. omni_vegetahd-eng # ***
6. mini_armv7a_neon-userdebug
7. mini_armv7a-userdebug
8. full_wingray-userdebug
9. full_crespo-userdebug
10. full_maguro-userdebug
11. full_panda-userdebug
Which would you like? [full-eng] 5
============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=4.1.2
TARGET_PRODUCT=omni_vegetahd
TARGET_BUILD_VARIANT=eng
TARGET_BUILD_TYPE=release
TARGET_BUILD_APPS=
TARGET_ARCH=arm
TARGET_ARCH_VARIANT=armv7-a-neon
HOST_ARCH=x86
HOST_OS=linux
HOST_OS_EXTRA=Linux-4.2.0-38-generic-x86_64-with-Ubuntu-14.04-trusty
HOST_BUILD_TYPE=release
BUILD_ID=JZO54M
OUT_DIR=out
============================================
Now, it seems that for such an old version like 4.1.2_r2.1, there is no mka command (not found), which should otherwise be ran at this point - however, I can run make instead of it.
Also because it's so old, I get "You are attempting to build with the incorrect version of java. Your version is: openjdk version "1.8.0_45-internal". The correct version is: Java SE 1.6.", which it so happens, I have - but I have to set environment variables. So here I run:
Code:
AOSP$ export RECOVERY_VARIANT=twrp
AOSP$ ANDROID_PRE_BUILD_PATHS=/path/to/jdk1.6.0_45/bin \
ANDROID_JAVA_TOOLCHAIN=/path/to/jdk1.6.0_45/bin \
JAVA_HOME=/path/to/jdk1.6.0_45 \
PATH=/path/to/jdk1.6.0_45/bin:$PATH \
make -j3 recoveryimage
...
target thumb C: adbd <= system/core/adb/log_service.c
make: *** No rule to make target `out/target/product/vegetahd/obj/EXECUTABLES/recovery_intermediates/recovery', needed by `out/target/product/vegetahd/recovery.img'. Stop.
make: *** Waiting for unfinished jobs....
target thumb C: adbd <= system/core/adb/utils.c
... but as you can see, it fails. This was for the Omnirom sources of TWRP recovery.
Then I thought of going back to the Multirom porting, and so did this:
Code:
AOSP$ rm -r bootable/recovery-twrp
git clone github.com/Tasssadar/Team-Win-Recovery-Project.git bootable/recovery
git clone github.com/Tasssadar/multirom.git system/extras/multirom
git clone github.com/Tasssadar/libbootimg.git system/extras/libbootimg
cd system/extras/multirom
git submodule update --init
cd ../../..
Then I checked the touchpad from adb shell as root:
Code:
cat /proc/bus/input/devices
I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="mtk-tpd"
P: Phys=
S: Sysfs=/devices/virtual/input/input3
U: Uniq=
H: Handlers=mouse0 event3 cpufreq
B: PROP=2
B: EV=b
B: KEY=10 0 0 0 0 0 0 0 400 0 0 0 0 1000 40000000 100000 0 0 0
B: ABS=6630000 1000003
... so definitely "type b"; then by doing `find /sys | grep uevent` and comparing as in the porting guide, I put together this file as device/bq/vegetahd/mr_init_devices.c:
Code:
#include <stdlib.h>
// These are paths to folders in /sys which contain "uevent" file
// need to init this device.
// MultiROM needs to init framebuffer, mmc blocks, input devices,
// some ADB-related stuff and USB drives, if OTG is supported
// You can use * at the end to init this folder and all its subfolders
const char *mr_init_devices[] =
{
"/sys/devices/platform/mtkfb.0/graphics/fb0",
"/sys/devices/platform/mtkfb.0",
"/sys/devices/platform/mtk-msdc.0",
"/sys/devices/platform/mtk-msdc.0/mmc_host/mmc0",
"/sys/devices/platform/mtk-msdc.0/mmc_host/mmc0/mmc0:0001",
"/sys/devices/platform/mtk-msdc.0/mmc_host/mmc0/mmc0:0001/block/mmcblk0",
"/sys/devices/platform/mtk-msdc.0/mmc_host/mmc0/mmc0:0001/block/mmcblk0/mmcblk0boot0",
"/sys/devices/platform/mtk-msdc.0/mmc_host/mmc0/mmc0:0001/block/mmcblk0/mmcblk0boot1",
"/sys/devices/platform/mtk-msdc.0/mmc_host/mmc0/mmc0:0001/block/mmcblk0/mmcblk0rpmb",
"/sys/devices/platform/mtk-msdc.0/mmc_host/mmc0/mmc0:0001/block/mmcblk0/mmcblk0p1",
"/sys/devices/platform/mtk-msdc.0/mmc_host/mmc0/mmc0:0001/block/mmcblk0/mmcblk0p2",
"/sys/devices/platform/mtk-msdc.0/mmc_host/mmc0/mmc0:0001/block/mmcblk0/mmcblk0p3",
"/sys/devices/platform/mtk-msdc.0/mmc_host/mmc0/mmc0:0001/block/mmcblk0/mmcblk0p4",
"/sys/devices/platform/mtk-msdc.0/mmc_host/mmc0/mmc0:0001/block/mmcblk0/mmcblk0p5",
"/sys/devices/platform/mtk-msdc.0/mmc_host/mmc0/mmc0:0001/block/mmcblk0/mmcblk0p6",
"/sys/devices/platform/mtk-msdc.0/mmc_host/mmc0/mmc0:0001/block/mmcblk0/mmcblk0p7",
"/sys/devices/platform/mtk-msdc.1",
"/sys/devices/platform/mtk-msdc.1/mmc_host/mmc1",
"/sys/devices/platform/mtk-msdc.1/mmc_host/mmc1/mmc1:0007",
"/sys/devices/platform/mtk-msdc.1/mmc_host/mmc1/mmc1:0007/block/mmcblk1/mmcblk1p1",
"/sys/devices/platform/mtk-msdc.1/mmc_host/mmc1/mmc1:0007/block/mmcblk1",
"/sys/bus/mmc/uevent",
"/sys/bus/mmc/drivers/mmcblk/uevent",
"/sys/bus/sdio/uevent",
"/sys/devices/virtual/input/*",
"/sys/devices/virtual/misc/uinput",
"/sys/devices/platform/mtk-tpd",
"/sys/devices/platform/mtk-kpd",
"/sys/devices/platform/mtk-kpd/input/input0",
"/sys/devices/platform/mtk-kpd/input/input0/event0",
"/sys/devices/platform/mtk-kpd/misc/mtk-kpd",
// for adb
"/sys/devices/virtual/tty/ptmx",
"/sys/devices/virtual/misc/android_adb",
"/sys/devices/virtual/android_usb/android0/f_adb",
"/sys/bus/usb",
NULL // must be NULL-terminated
}
Then I inspected boot.img of the stock Android firmware:
Code:
$ /path/to/bootimg_tools/boot_info /path/to/bq/2.1.0_20151104-0859_E5HD_bq-FW/boot.img
Page size: 2048 (0x00000800)
Kernel size: 3747904 (0x00393040)
Ramdisk size: 615529 (0x00096469)
Second size: 0 (0x00000000)
Board name: fbcdadc
Command line: ''
Base address: 2147483648 (0x80000000)
... and also did:
Code:
mkdir device/bq/vegetahd/mrom-infos/
wget raw.githubusercontent.com/Tasssadar/device_asus_grouper/cm-10.2-mrom/mrom_infos/ubuntu_touch.txt -O device/bq/vegetahd/mrom-infos/ubuntu_touch.txt
... and confirmed paths, and could finally add this to device/bq/vegetahd/BoardConfig.mk :
Code:
#MultiROM config. MultiROM also uses parts of TWRP config
MR_INPUT_TYPE := type_b
MR_INIT_DEVICES := device/bq/vegetahd/mr_init_devices.c
MR_RD_ADDR := 0x82500000
MR_DPI := hdpi
MR_DPI_FONT := 216
MR_FSTAB := device/bq/vegetahd/recovery/etc/twrp.fstab
MR_KEXEC_MEM_MIN := 0x85000000
MR_INFOS := device/bq/vegetahd/mrom_infos
Here, if I run ... make ... (after first exiting the old terminal shell, and repeating envsetup.sh / lunch in a new one), I get "build/core/base_rules.mk:103: *** user tag detected on new module - user tags are only supported on legacy modules. Stop." So, I did these changes:
Code:
# bootable/recovery/Android.mk:
LOCAL_MODULE := recovery
LOCAL_MODULE_TAGS := optional # add
# bootable/recovery/tests/Android.mk:
LOCAL_MODULE := asn1_decoder_test
LOCAL_MODULE_TAGS := optional # add
Then, a ... make ... at this point fails with: "make: *** No rule to make target `out/target/product/vegetahd/system/xbin/busybox', needed by `out/target/product/vegetahd/obj/SHARED_LIBRARIES/libbmlutils_intermediates/teamwin'. Stop.".
Here I found "[DEV]How to compile TWRP touch recovery - Pg. 150 | Android Development and Hacking" ( forum.xda-developers.com/showthread.php?p=65556586 ), and I downloaded busybox.zip from that page - and did:
Code:
AOSP$ unzip busybox.zip
AOSP$ mv busybox external/
Now, the ... make ... at this point is a bit funny, because it will exit not reporting an error, as if it finished:
Code:
AOSP$ ANDROID_PRE_BUILD_PATHS=/path/to/jdk1.6.0_45/bin \
ANDROID_JAVA_TOOLCHAIN=/path/to/jdk1.6.0_45/bin \
JAVA_HOME=/path/to/jdk1.6.0_45 \
PATH=/path/to/jdk1.6.0_45/bin:$PATH \
make -j3 recoveryimage
...
GEN include/usage_compressed.h
GEN include/applet_tables.h
HOSTCC applets/usage_pod
GEN include/bbconfigopts.h
CC applets/applets.o
LD applets/built-in.o
make[1]: Leaving directory `/media/Data1/src/AOSP/external/busybox'
AOSP$
But here it is apparently just done with applets in busybox! So, I try running ... make ... again, and get:
Code:
external/busybox/android/librpc/bindresvport.c:41:13: error: conflicting types for '__set_errno'
bionic/libc/include/errno.h:45:15: note: previous declaration of '__set_errno' was here
This I fix by changing external/selinux/libsepol/include to external/libsepol/include in:
Code:
# external/busybox/Android.mk:
BUSYBOX_C_INCLUDES = \
$(BB_PATH)/include $(BB_PATH)/libbb \
bionic/libc/private \
bionic/libm/include \
bionic/libc \
bionic/libm \
libc/kernel/common \
external/libselinux/include \
external/libsepol/include \
...
... and at this point, ... make ... will fail with:
Code:
external/busybox/android/librpc/pmap_rmt.c:235:8: warning: implicit declaration of function 'inet_makeaddr' [-Wimplicit-function-declaration]
external/busybox/android/librpc/pmap_rmt.c:238:8: warning: implicit declaration of function 'inet_netof' [-Wimplicit-function-declaration]
external/busybox/android/librpc/pmap_rmt.c:235:19: error: incompatible types when assigning to type 'struct in_addr' from type 'int'
Here I found stackoverflow.com/questions/27762475/incompatible-types-when-assigning-to-type-struct-in-addr-from-type-int/27763398, which notes:
The error message is misleading, the function is simply missing from earlier versions of the NDK.
Click to expand...
Click to collapse
So, as a final try, I tried forcing a newer NDK through an environment variable, as in:
Code:
NDK_HOME=/path/to/android-ndk-r10e \
ANDROID_PRE_BUILD_PATHS=/path/to/jdk1.6.0_45/bin \
ANDROID_JAVA_TOOLCHAIN=/path/to/jdk1.6.0_45/bin \
JAVA_HOME=/path/to/jdk1.6.0_45 \
PATH=/path/to/jdk1.6.0_45/bin:$PATH \
make -j3 recoveryimage
... but this fails in exactly the same manner (with "implicit declaration of function 'inet_makeaddr'", etc).
At this point, I really don't know what I should do... Should I:
Try to use the BQ Kernel sources for this device (even if mentioned above, I haven't used them anywhere yet) somewhere (say clone them in the Android tree)? If so - where?
Try to find a busybox for AOSP 4.1.2? If so - what version is OK, and where do I find it?
Try to bump the AOSP repo version up from 4.1.2? If so, what would be the minimum version required so this builds - and would I have to wait 14+ hours again?
... or is there anything else I could try?
Again, I'm mostly interested in building MultiROM and the recovery image (TWRP?) required for it on the Aquaris E5 - but it would be nice to know how to build TWRP proper recovery image as well...
Thanks in advance for any hints...
Me too
I am planning on doing almost the exact same thing you're trying! But I have a few questions:
Have you tried adding --depth 1 to your repo command to reduce the download time?
Have you seen https://forum.xda-developers.com/showthread.php?t=2329228 ? Mainly the local manifest, also to reduce download time
Why do you want to use the lowest version possible? The TWRP device tree is for Android 5.1, so I'll be using that version.

docker-lineage-cicd: some basic questions to get me started

microg fork of lineage rom was released but unfortunately not for my device (herolte), but they did provide the instructions for docker-lineage-cicd (https://github.com/lineageos4microg/docker-lineage-cicd). The problem is that those instructions are far too vague for my level of expertise (proficient in c/c++ and linux and flashing since forever but never built android from source). Based on instructions there I have created the folders to be shared with docker image but when i start the docker image, all that i get is some hash. I would somehow believe that at least some additional knowlidge is needed about where to provide binaries (samsung?) and how not to mention custom packages (are they included in docker image?). Can please someone help me out or point me into some documentation so i can figure out what is needed to build a rom?
Here is the run script but i am probably missing a content of mapped directories, which are atm empty. There is also a reference for this manifest xml file (https://raw.githubusercontent.com/TheMuppets/manifests/cm-14.1/muppets.xml) but i cant figure out what the point is.
Code:
docker run \
--name=lineage-$(date +%Y%m%d_%H%M) \
-d \
-e "USER_NAME=$NAME" \
-e "USER_MAIL=$EMAIL" \
-e "WITH_SU=true" \
-e "RELEASE_TYPE=microG" \
-e "DEVICE_LIST=herolte" \
-e "OTA_URL=https://api.lineage.microg.org" \
-e "CRONTAB_TIME=now" \
-e "SIGNATURE_SPOOFING=restricted" \
-e "CUSTOM_PACKAGES=GmsCore GsfProxy FakeStore FDroid FDroidPrivilegedExtension MozillaNlpBackend NominatimNlpBackend com.google.android.maps.jar" \
-e "SIGN_BUILDS=false" \
-e "CLEAN_OUTDIR=false" \
-e "CLEAN_AFTER_BUILD=true" \
-e "ZIP_SUBDIR=true" \
-e "LOGS_SUBDIR=true" \
-e "DELETE_OLD_ZIPS=3" \
-e "DELETE_OLD_LOGS=3" \
-v "$ROOTDIR/cache:/srv/ccache" \
-v "$ROOTDIR/lineage:/srv/src" \
-v "$ROOTDIR/zips:/srv/zips" \
-v "$ROOTDIR/lineage_manifests:/srv/local_manifests" \
-v "$ROOTDIR/lineage_keys:/srv/keys" \
-v "$ROOTDIR/logs:/srv/logs" \
-v "$ROOTDIR/lineage_scripts:/srv/userscripts" \
lineageos4microg/docker-lineage-cicd
Sorry, complete noob but I would really like to figure it out before i start setting up build system by lineageos build instructions and patching the source code "by hand".
root said:
microg fork of lineage rom was released but unfortunately not for my device (herolte), but they did provide the instructions for docker-lineage-cicd...
Click to expand...
Click to collapse
Your best bet is to check out the following threads and, if needed, post your question within the thread that closely matches your question.
https://forum.xda-developers.com/showthread.php?t=3551484
https://forum.xda-developers.com/showthread.php?t=3567885
https://forum.xda-developers.com/showthread.php?t=3503018
https://forum.xda-developers.com/showthread.php?t=2814763
https://forum.xda-developers.com/showthread.php?t=1272270
Good Luck!
~~~~~~~~~~~~~~~
I DO NOT PROVIDE SUPPORT VIA PM UNLESS ASKED/REQUESTED BY MYSELF.
PLEASE KEEP IT IN THE THREADS WHERE EVERYONE CAN SHARE
@root,
did you find out how it works? I also want to put microg on my not officially supported phone - and decided to do it in advance....
hirntot. said:
@root,
did you find out how it works? I also want to put microg on my not officially supported phone - and decided to do it in advance....
Click to expand...
Click to collapse
ah. well. yeah. I somehow understood. not interesting to me anymore. I thought that docker would just unzip an existing file, insert microg and zip it again.
but when reading the instructions again, I understood that docker is a development tool to develop official and unofficial lineageOS systems. I have no interest in developping an unofficial lineageos, so that's it.

Categories

Resources