lineage: Initial Evolution X rebrand

Co-authored-by: Joey Huab <joey@evolution-x.org>
Co-authored-by: Pranav Vashi <neobuddy89@gmail.com>
Co-authored-by: Lup Gabriel <gwolf2u.website@gmail.com>
Co-authored-by: Hemant Sachdeva <hemant.evolver@gmail.com>
Signed-off-by: AnierinB <anierin@evolution-x.org>
This commit is contained in:
AnierinB
2025-01-23 17:40:28 +09:00
committed by Joey
parent f251f3b7dc
commit 5b200d6862
57 changed files with 308 additions and 328 deletions

View File

@@ -1,26 +1,2 @@
LineageOS
Evolution X
===========
Getting started
---------------
Please see the [LineageOS Wiki](https://wiki.lineageos.org/) for building instructions, by device.
Submitting patches
------------------
Patches are always welcome! Please submit your patches via LineageOS Gerrit!
Simply follow our guide on [how to submit patches](https://wiki.lineageos.org/submitting-patch-howto.html).
To view the status of your and others' patches, visit [LineageOS Gerrit Code Review](https://review.lineageos.org/).
Buildbot
--------
All supported devices are built weekly and periodically as changes are committed to ensure the source trees remain buildable.
You can view the current build statuses at [LineageOS Buildkite](https://buildkite.com/lineageos).
Builds produced weekly by the buildbot can be downloaded from [LineageOS downloads](https://download.lineageos.org/).

Binary file not shown.

View File

@@ -32,7 +32,7 @@ function brunch()
{
breakfast $*
if [ $? -eq 0 ]; then
mka bacon
mka evolution
else
echo "No such item in brunch menu. Try 'breakfast'"
return 1
@@ -707,7 +707,7 @@ function cmka() {
if [ ! -z "$1" ]; then
for i in "$@"; do
case $i in
bacon|otapackage|systemimage)
evolution|otapackage|systemimage)
mka installclean
mka $i
;;

15
build/tasks/ascii_output.sh Executable file
View File

@@ -0,0 +1,15 @@
#!/bin/bash
BLUE="\e[34m"
GREEN="\e[32m"
ENDCOLOR="\e[0m"
echo -e "${GREEN}===========================================================${ENDCOLOR}"
echo -e "${BLUE} ______ __ __ _ _ __ ${ENDCOLOR}"
echo -e "${BLUE} / ____/ ______ / /_ __/ /_(_)___ ____ | |/ / ${ENDCOLOR}"
echo -e "${BLUE} / __/ | | / / __ \/ / / / / __/ / __ \/ __ \ | / ${ENDCOLOR}"
echo -e "${BLUE} / /___ | |/ / /_/ / / /_/ / /_/ / /_/ / / / / / | ${ENDCOLOR}"
echo -e "${BLUE} /_____/ |___/\____/_/\__,_/\__/_/\____/_/ /_/ /_/|_| ${ENDCOLOR}"
echo -e "${BLUE} ${ENDCOLOR}"
echo -e "${BLUE}#KeepEvolving ${ENDCOLOR}"
echo -e "${GREEN}===========================================================${ENDCOLOR}"

View File

@@ -14,16 +14,19 @@
# limitations under the License.
# -----------------------------------------------------------------
# Lineage OTA update package
# Evolution X OTA update package
LINEAGE_TARGET_PACKAGE := $(PRODUCT_OUT)/lineage-$(LINEAGE_VERSION).zip
LINEAGE_TARGET_PACKAGE := $(PRODUCT_OUT)/$(LINEAGE_VERSION).zip
SHA256 := prebuilts/build-tools/path/$(HOST_PREBUILT_TAG)/sha256sum
$(LINEAGE_TARGET_PACKAGE): $(INTERNAL_OTA_PACKAGE_TARGET)
$(hide) ln -f $(INTERNAL_OTA_PACKAGE_TARGET) $(LINEAGE_TARGET_PACKAGE)
$(hide) mv -f $(INTERNAL_OTA_PACKAGE_TARGET) $(LINEAGE_TARGET_PACKAGE)
$(hide) $(SHA256) $(LINEAGE_TARGET_PACKAGE) | sed "s|$(PRODUCT_OUT)/||" > $(LINEAGE_TARGET_PACKAGE).sha256sum
$(hide) ./vendor/lineage/build/tools/createjson.py $(TARGET_DEVICE) $(PRODUCT_OUT) $(LINEAGE_VERSION).zip $(TARGET_BUILD_VARIANT)
$(hide) rm -rf $(call intermediates-dir-for,PACKAGING,target_files)
$(hide) ./vendor/lineage/build/tasks/ascii_output.sh
@echo "Package Complete: $(LINEAGE_TARGET_PACKAGE)" >&2
.PHONY: bacon
bacon: $(LINEAGE_TARGET_PACKAGE) $(DEFAULT_GOAL)
.PHONY: evolution
evolution: $(LINEAGE_TARGET_PACKAGE) $(DEFAULT_GOAL)

125
build/tools/createjson.py Executable file
View File

@@ -0,0 +1,125 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# SPDX-FileCopyrightText: 2025 The Evolution X Project
# SPDX-License-Identifier: Apache-2.0
import argparse
import os
import hashlib
import json
def generate_json(target_device, product_out, file_name, build_variant):
output = os.path.join(product_out, f"{target_device}.json")
if os.path.exists(output):
os.remove(output)
android_version = file_name.split('-')[1].split('.')[0]
existing_ota_json = os.path.join(f"./evolution/OTA/builds", f"{target_device}.json")
maintainer = ""
currently_maintained = False
oem = ""
device = ""
forum = ""
firmware = ""
paypal = ""
github = ""
initial_installation_images = []
extra_images = []
if os.path.exists(existing_ota_json):
with open(existing_ota_json, 'r') as f:
ota_data = json.load(f)
response_data = ota_data["response"][0]
maintainer = response_data.get("maintainer", "")
currently_maintained = response_data.get("currently_maintained", False)
oem = response_data.get("oem", "")
device = response_data.get("device", "")
forum = response_data.get("forum", "")
firmware = response_data.get("firmware", "")
paypal = response_data.get("paypal", "")
github = response_data.get("github", "")
initial_installation_images = response_data.get("initial_installation_images", [])
extra_images = response_data.get("extra_images", [])
filename = file_name
if "Official" in file_name:
download = f"https://cdn.evolution-x.org/{target_device}/{android_version}/{file_name}/download"
else:
download = f"https://sourceforge.net/projects/your_unoffical_sourceforge_project/files/{target_device}/{android_version}/{file_name}/download"
version = file_name.split('-')[4]
buildprop = os.path.join(product_out, "system", "build.prop")
timestamp = get_timestamp_from_buildprop(buildprop)
md5 = get_checksum(os.path.join(product_out, file_name), 'md5')
sha256 = get_checksum(os.path.join(product_out, file_name), 'sha256')
size = os.path.getsize(os.path.join(product_out, file_name))
json_data = {
"response": [
{
"maintainer": maintainer,
"currently_maintained": currently_maintained,
"oem": oem,
"device": device,
"filename": filename,
"download": download,
"timestamp": timestamp,
"md5": md5,
"sha256": sha256,
"size": size,
"version": version,
"buildtype": build_variant,
"forum": f"{forum}" if forum else "",
"firmware": f"{firmware}" if firmware else "",
"paypal": f"{paypal}" if paypal else "",
"github": github,
"initial_installation_images": initial_installation_images,
"extra_images": extra_images
}
]
}
with open(output, 'w') as f:
json.dump(json_data, f, indent=2)
def get_timestamp_from_buildprop(buildprop_path):
with open(buildprop_path, 'r') as f:
for line in f:
if "ro.system.build.date.utc" in line:
return int(line.split('=')[1].strip())
return 0
def get_checksum(file_path, checksum_type='md5'):
if checksum_type == 'md5':
return calculate_md5(file_path)
elif checksum_type == 'sha256':
return calculate_sha256(file_path)
def calculate_md5(file_path):
hash_md5 = hashlib.md5()
with open(file_path, "rb") as f:
for chunk in iter(lambda: f.read(4096), b""):
hash_md5.update(chunk)
return hash_md5.hexdigest()
def calculate_sha256(file_path):
hash_sha256 = hashlib.sha256()
with open(file_path, "rb") as f:
for chunk in iter(lambda: f.read(4096), b""):
hash_sha256.update(chunk)
return hash_sha256.hexdigest()
def main():
parser = argparse.ArgumentParser(description="Generate a JSON file for OTA.")
parser.add_argument("target_device", help="Target device name")
parser.add_argument("product_out", help="Product output directory")
parser.add_argument("file_name", help="File name for OTA")
parser.add_argument("build_variant", help="Build variant")
args = parser.parse_args()
generate_json(args.target_device, args.product_out, args.file_name, args.build_variant)
if __name__ == "__main__":
main()

View File

@@ -1,6 +1,7 @@
#!/usr/bin/env python3
# Copyright (C) 2012-2013, The CyanogenMod Project
# (C) 2017-2018,2020-2021, The LineageOS Project
# (C) 2024, The Evolution X Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -16,11 +17,12 @@
from __future__ import print_function
import base64
import glob
import json
import netrc
import os
import re
import subprocess
import sys
import urllib.error
import urllib.parse
@@ -45,22 +47,38 @@ except:
device = product
if not depsonly:
print("Device %s not found. Attempting to retrieve device repository from LineageOS Github (http://github.com/LineageOS)." % device)
print("Device %s not found. Attempting to retrieve device repository from Evolution-X-Devices Github (http://github.com/Evolution-X-Devices)." % device)
repositories = []
try:
authtuple = netrc.netrc().authenticators("api.github.com")
if authtuple:
auth_string = ('%s:%s' % (authtuple[0], authtuple[2])).encode()
githubauth = base64.encodestring(auth_string).decode().replace('\n', '')
else:
githubauth = None
except:
githubauth = None
def add_auth(githubreq):
if githubauth:
githubreq.add_header("Authorization","Basic %s" % githubauth)
if not depsonly:
githubreq = urllib.request.Request("https://raw.githubusercontent.com/LineageOS/mirror/main/default.xml")
githubreq = urllib.request.Request("https://api.github.com/search/repositories?q=%s+user:Evolution-X-Devices+in:name+fork:true" % device)
add_auth(githubreq)
try:
result = ElementTree.fromstring(urllib.request.urlopen(githubreq, timeout=10).read().decode())
result = json.loads(urllib.request.urlopen(githubreq, timeout=10).read().decode())
except urllib.error.URLError:
print("Failed to fetch data from GitHub")
print("Failed to search GitHub")
sys.exit(1)
except ValueError:
print("Failed to parse return data from GitHub")
sys.exit(1)
for res in result.findall('.//project'):
repositories.append(res.attrib['name'][10:])
for res in result.get('items', []):
repositories.append(res)
local_manifests = r'.repo/local_manifests'
if not os.path.exists(local_manifests): os.makedirs(local_manifests)
@@ -100,12 +118,6 @@ def get_manifest_path():
except IndexError:
return ".repo/manifests/{}".format(m.find("include").get("name"))
def get_default_revision():
m = ElementTree.parse(get_manifest_path())
d = m.findall('default')[0]
r = d.get('revision')
return r.replace('refs/heads/', '').replace('refs/tags/', '')
def get_from_manifest(devicename):
for path in glob.glob(".repo/local_manifests/*.xml"):
try:
@@ -115,7 +127,7 @@ def get_from_manifest(devicename):
lm = ElementTree.Element("manifest")
for localpath in lm.findall("project"):
if re.search("android_device_.*_%s$" % device, localpath.get("name")):
if re.search("device_.*_%s$" % device, localpath.get("name")):
return localpath.get("path")
return None
@@ -154,6 +166,17 @@ def is_in_manifest(projectpath):
if localpath.get("path") == projectpath:
return True
# ... and don't forget the evolution snippet
try:
lm = ElementTree.parse(".repo/manifests/snippets/evolution.xml")
lm = lm.getroot()
except:
lm = ElementTree.Element("manifest")
for localpath in lm.findall("project"):
if localpath.get("path") == projectpath:
return True
return False
def add_to_manifest(repositories):
@@ -169,41 +192,45 @@ def add_to_manifest(repositories):
for repository in repositories:
repo_name = repository['repository']
repo_target = repository['target_path']
repo_revision = repository['branch']
repo_remote = repository.get("remote", "evo-devices")
repo_revision = repository.get('revision')
if repo_remote != "evo-devices" and not repo_remote.startswith("aosp-"):
repo_revision = repo_revision or repository.get('branch') or get_default_or_fallback_revision(repo_name)
print('Checking if %s is fetched from %s' % (repo_target, repo_name))
if is_in_manifest(repo_target):
print('LineageOS/%s already fetched to %s' % (repo_name, repo_target))
print('%s already fetched to %s' % (repo_name, repo_target))
continue
project = ElementTree.Element("project", attrib = {
project_attrib = {
"path": repo_target,
"remote": "github",
"name": "LineageOS/%s" % repo_name,
"revision": repo_revision })
if repo_remote := repository.get("remote", None):
# aosp- remotes are only used for kernel prebuilts, thus they
# don't let you customize clone-depth/revision.
if repo_remote.startswith("aosp-"):
project.attrib["name"] = repo_name
project.attrib["remote"] = repo_remote
project.attrib["clone-depth"] = "1"
del project.attrib["revision"]
if project.attrib.get("revision", None) == get_default_revision():
del project.attrib["revision"]
print("Adding dependency: %s -> %s" % (project.attrib["name"], project.attrib["path"]))
"name": repo_name,
"remote": repo_remote,
}
if repo_revision and not (repo_remote == "evo-devices" and repo_revision == get_default_or_fallback_revision(repo_name)):
project_attrib["revision"] = repo_revision
project = ElementTree.Element("project", attrib=project_attrib)
if repo_remote.startswith("aosp-"):
project.set("clone-depth", "1")
project.attrib.pop('revision', None)
print("Adding dependency: %s -> %s" % (repo_name, repo_target))
lm.append(project)
indent(lm, 0)
raw_xml = ElementTree.tostring(lm).decode()
raw_xml = '<?xml version="1.0" encoding="UTF-8"?>\n' + raw_xml
f = open('.repo/local_manifests/roomservice.xml', 'w')
f.write(raw_xml)
f.close()
with open('.repo/local_manifests/roomservice.xml', 'w') as f:
f.write(raw_xml)
def fetch_dependencies(repo_path):
print('Looking for dependencies in %s' % repo_path)
dependencies_path = repo_path + '/lineage.dependencies'
dependencies_path = repo_path + '/evolution.dependencies'
syncable_repos = []
verify_repos = []
@@ -244,37 +271,34 @@ def fetch_dependencies(repo_path):
for deprepo in verify_repos:
fetch_dependencies(deprepo)
def get_default_or_fallback_revision(repo_name):
default_revision = get_default_revision()
print("Default revision: %s" % default_revision)
print("Checking branch info")
def get_remote_revision_from_snippet(snippet_path, remote_name):
try:
stdout = subprocess.run(
["git", "ls-remote", "-h", "https://:@github.com/LineageOS/" + repo_name],
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
).stdout.decode()
branches = [x.split("refs/heads/")[-1] for x in stdout.splitlines()]
except:
return ""
tree = ElementTree.parse(snippet_path)
root = tree.getroot()
remote = root.find(f".//remote[@name='{remote_name}']")
if remote is not None:
revision = remote.get('revision')
return revision.split('/')[-1]
except FileNotFoundError:
print(f"Error: {snippet_path} not found.")
raise
except ElementTree.ParseError:
print(f"Error: There was a problem parsing {snippet_path}.")
raise
if default_revision in branches:
return default_revision
raise ValueError(f"Remote {remote_name} not found in the snippet.")
if os.getenv('ROOMSERVICE_BRANCHES'):
fallbacks = list(filter(bool, os.getenv('ROOMSERVICE_BRANCHES').split(' ')))
for fallback in fallbacks:
if fallback in branches:
print("Using fallback branch: %s" % fallback)
return fallback
def get_default_or_fallback_revision(repo_name):
default_revision = get_remote_revision_from_snippet(".repo/manifests/snippets/evolution.xml", "evo-devices")
print("Using default revision: %s" % default_revision)
print("Default revision %s not found in %s. Bailing." % (default_revision, repo_name))
print("Branches found:")
for branch in branches:
print(branch)
print("Use the ROOMSERVICE_BRANCHES environment variable to specify a list of fallback branches.")
return ""
fallback_revision = os.getenv('ROOMSERVICE_FALLBACK_REVISION')
if fallback_revision:
print("Using fallback revision from environment: %s" % fallback_revision)
return fallback_revision
return default_revision
if depsonly:
repo_path = get_from_manifest(device)
@@ -286,11 +310,12 @@ if depsonly:
sys.exit()
else:
for repo_name in repositories:
if re.match(r"^android_device_[^_]*_" + device + "$", repo_name):
print("Found repository: %s" % repo_name)
manufacturer = repo_name.replace("android_device_", "").replace("_" + device, "")
for repository in repositories:
repo_name = repository['name']
if re.match(r"^device_[^_]*_" + device + "$", repo_name):
print("Found repository: %s" % repository['name'])
manufacturer = repo_name.replace("device_", "").replace("_" + device, "")
repo_path = "device/%s/%s" % (manufacturer, device)
revision = get_default_or_fallback_revision(repo_name)
if revision == "":
@@ -311,4 +336,4 @@ else:
print("Done")
sys.exit()
print("Repository for %s not found in the LineageOS Github repository list. If this is in error, you may need to manually add it to your local_manifests/roomservice.xml." % device)
print("Repository for %s not found in the Evolution-X-Devices Github repository list. If this is an error, you may need to manually add it to your local_manifests/roomservice.xml." % device)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 24 KiB

View File

@@ -1,5 +1,5 @@
<svg width="300" height="300" viewBox="0 0 300 300" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="300" height="300" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M0 150C0 232.843 67.1573 300 150 300C232.843 300 300 232.843 300 150C300 67.1573 232.843 0 150 0C67.1573 0 0 67.1573 0 150ZM150 0.000214268L169.738 31.6154L169.771 31.6209L198.705 8.12763L207.106 44.433L207.143 44.4527L242.132 31.6291L238.287 68.7251L238.288 68.7264L275.575 67.958L259.91 101.76L259.931 101.809L295.41 113.177L269.596 140.084L269.597 140.096L299.487 162.387L266.362 179.441L266.349 179.49L287.366 210.255L250.478 215.631L250.465 215.652L260.358 251.593L223.712 244.698L223.705 244.704L221.392 281.921L189.001 263.52L188.947 263.538L174.689 297.954L150 270L125.31 297.954L111.052 263.538L110.998 263.52L78.6075 281.921L76.2945 244.704L76.2875 244.698L39.6411 251.593L49.535 215.651L49.5221 215.631L12.6336 210.255L33.6504 179.49L33.6382 179.441L0.511969 162.387L30.4029 140.096L30.4038 140.085L4.58961 113.177L40.0687 101.809L40.09 101.76L24.4247 67.958L61.7121 68.7264L61.7127 68.7257L57.8678 31.6291L92.8571 44.4528L92.8929 44.4334L101.295 8.12763L130.229 31.621L130.262 31.6156L150 0.000214268Z" fill="#167c80"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M0 150C0 232.843 67.1573 300 150 300C232.843 300 300 232.843 300 150C300 67.1573 232.843 0 150 0C67.1573 0 0 67.1573 0 150ZM150 0.000214268L169.738 31.6154L169.771 31.6209L198.705 8.12763L207.106 44.433L207.143 44.4527L242.132 31.6291L238.287 68.7251L238.288 68.7264L275.575 67.958L259.91 101.76L259.931 101.809L295.41 113.177L269.596 140.084L269.597 140.096L299.487 162.387L266.362 179.441L266.349 179.49L287.366 210.255L250.478 215.631L250.465 215.652L260.358 251.593L223.712 244.698L223.705 244.704L221.392 281.921L189.001 263.52L188.947 263.538L174.689 297.954L150 270L125.31 297.954L111.052 263.538L110.998 263.52L78.6075 281.921L76.2945 244.704L76.2875 244.698L39.6411 251.593L49.535 215.651L49.5221 215.631L12.6336 210.255L33.6504 179.49L33.6382 179.441L0.511969 162.387L30.4029 140.096L30.4038 140.085L4.58961 113.177L40.0687 101.809L40.09 101.76L24.4247 67.958L61.7121 68.7264L61.7127 68.7257L57.8678 31.6291L92.8571 44.4528L92.8929 44.4334L101.295 8.12763L130.229 31.621L130.262 31.6156L150 0.000214268Z" fill="#0060ff"/>
<path d="M138.78 169.072Q138.78 159.656 141.117 154.063Q143.453 148.469 150.356 141.779Q157.259 135.088 159.1 132.256Q161.932 127.937 161.932 122.91Q161.932 116.255 158.64 112.75Q155.348 109.246 148.976 109.246Q142.887 109.246 139.17 112.679Q135.453 116.113 135.453 121.99L118.248 121.99Q118.39 109.458 126.78 102.166Q135.169 94.873 148.976 94.873Q163.207 94.873 171.172 102.095Q179.137 109.316 179.137 122.273Q179.137 133.813 168.375 145L159.667 153.567Q154.994 158.877 154.852 169.072Z M137.577 191.091Q137.577 186.914 140.196 184.33Q142.816 181.746 147.276 181.746Q151.808 181.746 154.427 184.401Q157.047 187.056 157.047 191.091Q157.047 194.985 154.498 197.605Q151.949 200.225 147.276 200.225Q142.604 200.225 140.09 197.605Q137.577 194.985 137.577 191.091Z" fill="white"/>
</svg>

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

@@ -1,7 +1,7 @@
<svg width="300" height="300" viewBox="0 0 300 300" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="300" height="300" fill="black"/>
<circle cx="150" cy="150" r="150" fill="#181818"/>
<path d="M150 20C150 8.9543 158.994 -0.137173 169.941 1.33127C194.494 4.62455 217.959 13.9649 238.168 28.6475C258.377 43.33 274.511 62.7604 285.23 85.0935C290.01 95.0516 284.142 106.414 273.637 109.828L176.18 141.493C163.258 145.692 150 136.06 150 122.472L150 20Z" fill="#167c80"/>
<path d="M150 20C150 8.9543 158.994 -0.137173 169.941 1.33127C194.494 4.62455 217.959 13.9649 238.168 28.6475C258.377 43.33 274.511 62.7604 285.23 85.0935C290.01 95.0516 284.142 106.414 273.637 109.828L176.18 141.493C163.258 145.692 150 136.06 150 122.472L150 20Z" fill="#0060ff"/>
<circle cx="150" cy="150" r="128" fill="black"/>
<path d="M162.73 230.297L149.298 254.672C149.006 255.202 148.199 254.959 148.247 254.357L149.72 236.199L137.762 236.199C137.336 236.199 137.064 235.742 137.27 235.367L150.703 210.992C150.995 210.462 151.802 210.705 151.753 211.307L150.281 229.465L162.238 229.465C162.665 229.465 162.935 229.922 162.73 230.297Z" fill="white"/>
</svg>

Before

Width:  |  Height:  |  Size: 862 B

After

Width:  |  Height:  |  Size: 862 B

View File

@@ -1,7 +1,7 @@
<svg width="300" height="300" viewBox="0 0 300 300" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="300" height="300" fill="black"/>
<circle cx="150" cy="150" r="150" fill="#181818"/>
<path d="M150 20C150 8.9543 158.993 -0.137047 169.941 1.33137C182.784 3.05407 195.379 6.4376 207.403 11.4181C225.601 18.9563 242.137 30.0052 256.066 43.934C269.995 57.8628 281.044 74.3987 288.582 92.5975C293.562 104.621 296.946 117.216 298.669 130.059C300.137 141.007 291.046 150 280 150L170 150C158.954 150 150 141.046 150 130L150 20Z" fill="#167c80"/>
<path d="M150 20C150 8.9543 158.993 -0.137047 169.941 1.33137C182.784 3.05407 195.379 6.4376 207.403 11.4181C225.601 18.9563 242.137 30.0052 256.066 43.934C269.995 57.8628 281.044 74.3987 288.582 92.5975C293.562 104.621 296.946 117.216 298.669 130.059C300.137 141.007 291.046 150 280 150L170 150C158.954 150 150 141.046 150 130L150 20Z" fill="#0060ff"/>
<circle cx="150" cy="150" r="128" fill="black"/>
<path d="M162.73 230.297L149.298 254.672C149.006 255.202 148.199 254.959 148.247 254.357L149.72 236.199L137.762 236.199C137.336 236.199 137.064 235.742 137.27 235.367L150.703 210.992C150.995 210.462 151.802 210.705 151.753 211.307L150.281 229.465L162.238 229.465C162.665 229.465 162.935 229.922 162.73 230.297Z" fill="white"/>
</svg>

Before

Width:  |  Height:  |  Size: 934 B

After

Width:  |  Height:  |  Size: 934 B

View File

@@ -1,7 +1,7 @@
<svg width="300" height="300" viewBox="0 0 300 300" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="300" height="300" fill="black"/>
<circle cx="150" cy="150" r="150" fill="#181818"/>
<path d="M150 20C150 8.9543 158.993 -0.137072 169.941 1.33136C186.679 3.57645 202.966 8.63872 218.099 16.349C239.19 27.0957 257.439 42.6815 271.353 61.8322C285.266 80.9829 294.45 103.155 298.153 126.535C300.81 143.309 300.591 160.364 297.554 176.976C295.568 187.842 284.142 193.585 273.637 190.172L163.82 154.49C155.579 151.813 150 144.134 150 135.469L150 20Z" fill="#167c80"/>
<path d="M150 20C150 8.9543 158.993 -0.137072 169.941 1.33136C186.679 3.57645 202.966 8.63872 218.099 16.349C239.19 27.0957 257.439 42.6815 271.353 61.8322C285.266 80.9829 294.45 103.155 298.153 126.535C300.81 143.309 300.591 160.364 297.554 176.976C295.568 187.842 284.142 193.585 273.637 190.172L163.82 154.49C155.579 151.813 150 144.134 150 135.469L150 20Z" fill="#0060ff"/>
<circle cx="150" cy="150" r="128" fill="black"/>
<path d="M162.73 230.297L149.298 254.672C149.006 255.202 148.199 254.959 148.247 254.357L149.72 236.199L137.762 236.199C137.336 236.199 137.064 235.742 137.27 235.367L150.703 210.992C150.995 210.462 151.802 210.705 151.753 211.307L150.281 229.465L162.238 229.465C162.665 229.465 162.935 229.922 162.73 230.297Z" fill="white"/>
</svg>

Before

Width:  |  Height:  |  Size: 958 B

After

Width:  |  Height:  |  Size: 958 B

View File

@@ -1,7 +1,7 @@
<svg width="300" height="300" viewBox="0 0 300 300" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="300" height="300" fill="black"/>
<circle cx="150" cy="150" r="150" fill="#181818"/>
<path d="M150 20C150 8.9543 158.994 -0.137109 169.941 1.33134C190.581 4.09984 210.494 11.1469 228.375 22.104C251.962 36.558 271.092 57.2532 283.651 81.9014C296.21 106.55 301.708 134.191 299.538 161.769C297.892 182.675 291.889 202.927 281.997 221.252C276.75 230.972 264.108 232.905 255.172 226.412L158.244 155.99C153.065 152.227 150 146.212 150 139.809L150 20Z" fill="#167c80"/>
<path d="M150 20C150 8.9543 158.994 -0.137109 169.941 1.33134C190.581 4.09984 210.494 11.1469 228.375 22.104C251.962 36.558 271.092 57.2532 283.651 81.9014C296.21 106.55 301.708 134.191 299.538 161.769C297.892 182.675 291.889 202.927 281.997 221.252C276.75 230.972 264.108 232.905 255.172 226.412L158.244 155.99C153.065 152.227 150 146.212 150 139.809L150 20Z" fill="#0060ff"/>
<circle cx="150" cy="150" r="128" fill="black"/>
<path d="M162.73 230.297L149.298 254.672C149.006 255.202 148.199 254.959 148.247 254.357L149.72 236.199L137.762 236.199C137.336 236.199 137.064 235.742 137.27 235.367L150.703 210.992C150.995 210.462 151.802 210.705 151.753 211.307L150.281 229.465L162.238 229.465C162.665 229.465 162.935 229.922 162.73 230.297Z" fill="white"/>
</svg>

Before

Width:  |  Height:  |  Size: 958 B

After

Width:  |  Height:  |  Size: 958 B

View File

@@ -1,7 +1,7 @@
<svg width="300" height="300" viewBox="0 0 300 300" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="300" height="300" fill="black"/>
<circle cx="150" cy="150" r="150" fill="#181818"/>
<path d="M150 20C150 8.9543 158.994 -0.137173 169.941 1.33127C194.494 4.62455 217.959 13.9649 238.168 28.6475C263.795 47.2667 282.87 73.5209 292.658 103.647C302.447 133.774 302.447 166.226 292.658 196.353C284.939 220.109 271.446 241.458 253.518 258.554C245.524 266.177 232.905 264.108 226.412 255.172L153.82 155.257C151.337 151.84 150 147.725 150 143.502L150 20Z" fill="#167c80"/>
<path d="M150 20C150 8.9543 158.994 -0.137173 169.941 1.33127C194.494 4.62455 217.959 13.9649 238.168 28.6475C263.795 47.2667 282.87 73.5209 292.658 103.647C302.447 133.774 302.447 166.226 292.658 196.353C284.939 220.109 271.446 241.458 253.518 258.554C245.524 266.177 232.905 264.108 226.412 255.172L153.82 155.257C151.337 151.84 150 147.725 150 143.502L150 20Z" fill="#0060ff"/>
<circle cx="150" cy="150" r="128" fill="black"/>
<path d="M162.73 230.297L149.298 254.672C149.006 255.202 148.199 254.959 148.247 254.357L149.72 236.199L137.762 236.199C137.336 236.199 137.064 235.742 137.27 235.367L150.703 210.992C150.995 210.462 151.802 210.705 151.753 211.307L150.281 229.465L162.238 229.465C162.665 229.465 162.935 229.922 162.73 230.297Z" fill="white"/>
</svg>

Before

Width:  |  Height:  |  Size: 961 B

After

Width:  |  Height:  |  Size: 961 B

View File

@@ -1,7 +1,7 @@
<svg width="300" height="300" viewBox="0 0 300 300" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="300" height="300" fill="black"/>
<circle cx="150" cy="150" r="150" fill="#181818"/>
<path d="M150 20C150 8.9543 158.994 -0.137283 169.941 1.33108C198.42 5.15078 225.355 17.0964 247.417 35.9391C274.575 59.1345 292.566 91.2591 298.153 126.535C303.74 161.811 296.557 197.922 277.896 228.375C262.737 253.113 240.811 272.797 214.906 285.23C204.948 290.01 193.585 284.142 190.172 273.637L150.979 153.013C150.33 151.017 150 148.931 150 146.832L150 20Z" fill="#167c80"/>
<path d="M150 20C150 8.9543 158.994 -0.137283 169.941 1.33108C198.42 5.15078 225.355 17.0964 247.417 35.9391C274.575 59.1345 292.566 91.2591 298.153 126.535C303.74 161.811 296.557 197.922 277.896 228.375C262.737 253.113 240.811 272.797 214.906 285.23C204.948 290.01 193.585 284.142 190.172 273.637L150.979 153.013C150.33 151.017 150 148.931 150 146.832L150 20Z" fill="#0060ff"/>
<circle cx="150" cy="150" r="128" fill="black"/>
<path d="M162.73 230.297L149.298 254.672C149.006 255.202 148.199 254.959 148.247 254.357L149.72 236.199L137.762 236.199C137.336 236.199 137.064 235.742 137.27 235.367L150.703 210.992C150.995 210.462 151.802 210.705 151.753 211.307L150.281 229.465L162.238 229.465C162.665 229.465 162.935 229.922 162.73 230.297Z" fill="white"/>
</svg>

Before

Width:  |  Height:  |  Size: 959 B

After

Width:  |  Height:  |  Size: 959 B

View File

@@ -1,7 +1,7 @@
<svg width="300" height="300" viewBox="0 0 300 300" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="300" height="300" fill="black"/>
<circle cx="150" cy="150" r="150" fill="#181818"/>
<path d="M150 20C150 8.9543 158.993 -0.137047 169.941 1.33137C182.784 3.05407 195.379 6.4376 207.403 11.4181C225.601 18.9563 242.137 30.0052 256.066 43.934C269.995 57.8628 281.044 74.3987 288.582 92.5975C296.12 110.796 300 130.302 300 150C300 169.698 296.12 189.204 288.582 207.403C281.044 225.601 269.995 242.137 256.066 256.066C242.137 269.995 225.601 281.044 207.402 288.582C195.379 293.562 182.784 296.946 169.941 298.669C158.993 300.137 150 291.046 150 280L150 150L150 20Z" fill="#167c80"/>
<path d="M150 20C150 8.9543 158.993 -0.137047 169.941 1.33137C182.784 3.05407 195.379 6.4376 207.403 11.4181C225.601 18.9563 242.137 30.0052 256.066 43.934C269.995 57.8628 281.044 74.3987 288.582 92.5975C296.12 110.796 300 130.302 300 150C300 169.698 296.12 189.204 288.582 207.403C281.044 225.601 269.995 242.137 256.066 256.066C242.137 269.995 225.601 281.044 207.402 288.582C195.379 293.562 182.784 296.946 169.941 298.669C158.993 300.137 150 291.046 150 280L150 150L150 20Z" fill="#0060ff"/>
<circle cx="150" cy="150" r="128" fill="black"/>
<path d="M162.73 230.297L149.298 254.672C149.006 255.202 148.199 254.959 148.247 254.357L149.72 236.199L137.762 236.199C137.336 236.199 137.064 235.742 137.27 235.367L150.703 210.992C150.995 210.462 151.802 210.705 151.753 211.307L150.281 229.465L162.238 229.465C162.665 229.465 162.935 229.922 162.73 230.297Z" fill="white"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -1,7 +1,7 @@
<svg width="300" height="300" viewBox="0 0 300 300" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="300" height="300" fill="black"/>
<circle cx="150" cy="150" r="150" fill="#181818"/>
<path d="M150 20C150 8.9543 158.993 -0.137056 169.941 1.33137C184.731 3.31516 199.18 7.49993 212.799 13.7785C232.49 22.8562 249.979 36.095 264.061 52.5828C278.143 69.0705 288.483 88.4152 294.368 109.284C300.254 130.153 301.545 152.049 298.153 173.465C294.761 194.881 286.767 215.307 274.72 233.335C262.674 251.364 246.862 266.567 228.375 277.896C209.887 289.225 189.163 296.412 167.631 298.96C152.738 300.723 137.703 300.238 123.024 297.554C112.158 295.568 106.415 284.142 109.828 273.637L149.021 153.013C149.67 151.017 150 148.931 150 146.832L150 20Z" fill="#167c80"/>
<path d="M150 20C150 8.9543 158.993 -0.137056 169.941 1.33137C184.731 3.31516 199.18 7.49993 212.799 13.7785C232.49 22.8562 249.979 36.095 264.061 52.5828C278.143 69.0705 288.483 88.4152 294.368 109.284C300.254 130.153 301.545 152.049 298.153 173.465C294.761 194.881 286.767 215.307 274.72 233.335C262.674 251.364 246.862 266.567 228.375 277.896C209.887 289.225 189.163 296.412 167.631 298.96C152.738 300.723 137.703 300.238 123.024 297.554C112.158 295.568 106.415 284.142 109.828 273.637L149.021 153.013C149.67 151.017 150 148.931 150 146.832L150 20Z" fill="#0060ff"/>
<circle cx="150" cy="150" r="128" fill="black"/>
<path d="M162.73 230.297L149.298 254.672C149.006 255.202 148.199 254.959 148.247 254.357L149.72 236.199L137.762 236.199C137.336 236.199 137.064 235.742 137.27 235.367L150.703 210.992C150.995 210.462 151.802 210.705 151.753 211.307L150.281 229.465L162.238 229.465C162.665 229.465 162.935 229.922 162.73 230.297Z" fill="white"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -1,7 +1,7 @@
<svg width="300" height="300" viewBox="0 0 300 300" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="300" height="300" fill="black"/>
<circle cx="150" cy="150" r="150" fill="#181818"/>
<path d="M150 20C150 8.9543 158.993 -0.137072 169.941 1.33136C186.679 3.57645 202.966 8.63872 218.099 16.349C239.19 27.0957 257.439 42.6815 271.353 61.8322C285.266 80.9829 294.45 103.155 298.153 126.535C301.856 149.915 299.973 173.84 292.658 196.353C285.344 218.866 272.804 239.328 256.066 256.066C239.328 272.804 218.866 285.344 196.353 292.658C173.84 299.973 149.915 301.856 126.535 298.153C109.761 295.496 93.6083 290.018 78.7474 281.997C69.0275 276.75 67.0955 264.108 73.588 255.172L146.18 155.257C148.663 151.84 150 147.725 150 143.502L150 20Z" fill="#167c80"/>
<path d="M150 20C150 8.9543 158.993 -0.137072 169.941 1.33136C186.679 3.57645 202.966 8.63872 218.099 16.349C239.19 27.0957 257.439 42.6815 271.353 61.8322C285.266 80.9829 294.45 103.155 298.153 126.535C301.856 149.915 299.973 173.84 292.658 196.353C285.344 218.866 272.804 239.328 256.066 256.066C239.328 272.804 218.866 285.344 196.353 292.658C173.84 299.973 149.915 301.856 126.535 298.153C109.761 295.496 93.6083 290.018 78.7474 281.997C69.0275 276.75 67.0955 264.108 73.588 255.172L146.18 155.257C148.663 151.84 150 147.725 150 143.502L150 20Z" fill="#0060ff"/>
<circle cx="150" cy="150" r="128" fill="black"/>
<path d="M162.73 230.297L149.298 254.672C149.006 255.202 148.199 254.959 148.247 254.357L149.72 236.199L137.762 236.199C137.336 236.199 137.064 235.742 137.27 235.367L150.703 210.992C150.995 210.462 151.802 210.705 151.753 211.307L150.281 229.465L162.238 229.465C162.665 229.465 162.935 229.922 162.73 230.297Z" fill="white"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -1,7 +1,7 @@
<svg width="300" height="300" viewBox="0 0 300 300" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="300" height="300" fill="black"/>
<circle cx="150" cy="150" r="150" fill="#181818"/>
<path d="M150 20C150 8.9543 158.993 -0.137085 169.941 1.33136C188.629 3.83801 206.738 9.85427 223.293 19.1256C245.686 31.666 264.486 49.7423 277.896 71.6252C291.306 93.5082 298.877 118.466 299.884 144.111C300.892 169.756 295.303 195.231 283.651 218.099C271.999 240.966 254.675 260.462 233.336 274.72C211.996 288.979 187.355 297.524 161.769 299.538C136.183 301.551 110.509 296.966 87.2011 286.221C69.9695 278.278 54.458 267.163 41.4457 253.518C33.8228 245.524 35.8917 232.905 44.8278 226.412L141.756 155.99C146.935 152.227 150 146.212 150 139.809L150 20Z" fill="#167c80"/>
<path d="M150 20C150 8.9543 158.993 -0.137085 169.941 1.33136C188.629 3.83801 206.738 9.85427 223.293 19.1256C245.686 31.666 264.486 49.7423 277.896 71.6252C291.306 93.5082 298.877 118.466 299.884 144.111C300.892 169.756 295.303 195.231 283.651 218.099C271.999 240.966 254.675 260.462 233.336 274.72C211.996 288.979 187.355 297.524 161.769 299.538C136.183 301.551 110.509 296.966 87.2011 286.221C69.9695 278.278 54.458 267.163 41.4457 253.518C33.8228 245.524 35.8917 232.905 44.8278 226.412L141.756 155.99C146.935 152.227 150 146.212 150 139.809L150 20Z" fill="#0060ff"/>
<circle cx="150" cy="150" r="128" fill="black"/>
<path d="M162.73 230.297L149.298 254.672C149.006 255.202 148.199 254.959 148.247 254.357L149.72 236.199L137.762 236.199C137.336 236.199 137.064 235.742 137.27 235.367L150.703 210.992C150.995 210.462 151.802 210.705 151.753 211.307L150.281 229.465L162.238 229.465C162.665 229.465 162.935 229.922 162.73 230.297Z" fill="white"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -1,7 +1,7 @@
<svg width="300" height="300" viewBox="0 0 300 300" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="300" height="300" fill="black"/>
<circle cx="150" cy="150" r="150" fill="#181818"/>
<path d="M150 20C150 8.9543 158.994 -0.137109 169.941 1.33134C190.581 4.09984 210.494 11.1469 228.375 22.104C251.962 36.558 271.092 57.2532 283.651 81.9014C296.21 106.55 301.708 134.191 299.538 161.769C297.367 189.347 287.613 215.788 271.353 238.168C255.092 260.548 232.96 277.996 207.403 288.582C181.845 299.168 153.858 302.481 126.535 298.153C99.2121 293.826 73.6182 282.027 52.5828 264.061C36.6366 250.442 23.781 233.681 14.7699 214.906C9.99029 204.948 15.8576 193.586 26.3627 190.172L136.18 154.49C144.421 151.813 150 144.134 150 135.469L150 20Z" fill="#167c80"/>
<path d="M150 20C150 8.9543 158.994 -0.137109 169.941 1.33134C190.581 4.09984 210.494 11.1469 228.375 22.104C251.962 36.558 271.092 57.2532 283.651 81.9014C296.21 106.55 301.708 134.191 299.538 161.769C297.367 189.347 287.613 215.788 271.353 238.168C255.092 260.548 232.96 277.996 207.403 288.582C181.845 299.168 153.858 302.481 126.535 298.153C99.2121 293.826 73.6182 282.027 52.5828 264.061C36.6366 250.442 23.781 233.681 14.7699 214.906C9.99029 204.948 15.8576 193.586 26.3627 190.172L136.18 154.49C144.421 151.813 150 144.134 150 135.469L150 20Z" fill="#0060ff"/>
<circle cx="150" cy="150" r="128" fill="black"/>
<path d="M162.73 230.297L149.298 254.672C149.006 255.202 148.199 254.959 148.247 254.357L149.72 236.199L137.762 236.199C137.336 236.199 137.064 235.742 137.27 235.367L150.703 210.992C150.995 210.462 151.802 210.705 151.753 211.307L150.281 229.465L162.238 229.465C162.665 229.465 162.935 229.922 162.73 230.297Z" fill="white"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -1,7 +1,7 @@
<svg width="300" height="300" viewBox="0 0 300 300" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="300" height="300" fill="black"/>
<circle cx="150" cy="150" r="150" fill="#181818"/>
<path d="M150 20C150 8.9543 158.994 -0.137139 169.941 1.33131C192.536 4.36201 214.235 12.5169 233.336 25.2796C258.003 41.7618 277.229 65.1886 288.582 92.5975C299.935 120.006 302.906 150.166 297.118 179.264C291.33 208.361 277.044 235.088 256.066 256.066C235.088 277.044 208.361 291.33 179.264 297.118C150.166 302.906 120.006 299.935 92.5975 288.582C65.1886 277.229 41.7618 258.003 25.2796 233.336C12.5169 214.235 4.36201 192.536 1.33131 169.941C-0.137139 158.994 8.95431 150 20 150L130 150C141.046 150 150 141.046 150 130L150 20Z" fill="#167c80"/>
<path d="M150 20C150 8.9543 158.994 -0.137139 169.941 1.33131C192.536 4.36201 214.235 12.5169 233.336 25.2796C258.003 41.7618 277.229 65.1886 288.582 92.5975C299.935 120.006 302.906 150.166 297.118 179.264C291.33 208.361 277.044 235.088 256.066 256.066C235.088 277.044 208.361 291.33 179.264 297.118C150.166 302.906 120.006 299.935 92.5975 288.582C65.1886 277.229 41.7618 258.003 25.2796 233.336C12.5169 214.235 4.36201 192.536 1.33131 169.941C-0.137139 158.994 8.95431 150 20 150L130 150C141.046 150 150 141.046 150 130L150 20Z" fill="#0060ff"/>
<circle cx="150" cy="150" r="128" fill="black"/>
<path d="M162.73 230.297L149.298 254.672C149.006 255.202 148.199 254.959 148.247 254.357L149.72 236.199L137.762 236.199C137.336 236.199 137.064 235.742 137.27 235.367L150.703 210.992C150.995 210.462 151.802 210.705 151.753 211.307L150.281 229.465L162.238 229.465C162.665 229.465 162.935 229.922 162.73 230.297Z" fill="white"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -1,7 +1,7 @@
<svg width="300" height="300" viewBox="0 0 300 300" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="300" height="300" fill="black"/>
<circle cx="150" cy="150" r="150" fill="#181818"/>
<path d="M150 20C150 8.9543 158.994 -0.137173 169.941 1.33127C194.494 4.62455 217.959 13.9649 238.168 28.6475C263.795 47.2667 282.87 73.5209 292.658 103.647C302.447 133.774 302.447 166.226 292.658 196.353C282.87 226.479 263.795 252.733 238.168 271.353C212.541 289.972 181.677 300 150 300C118.323 300 87.4593 289.972 61.8322 271.353C36.2051 252.733 17.1302 226.479 7.34152 196.353C-0.377567 172.596 -2.0096 147.393 2.44542 123.024C4.43186 112.159 15.8576 106.414 26.3627 109.828L123.82 141.493C136.742 145.692 150 136.06 150 122.472L150 20Z" fill="#167c80"/>
<path d="M150 20C150 8.9543 158.994 -0.137173 169.941 1.33127C194.494 4.62455 217.959 13.9649 238.168 28.6475C263.795 47.2667 282.87 73.5209 292.658 103.647C302.447 133.774 302.447 166.226 292.658 196.353C282.87 226.479 263.795 252.733 238.168 271.353C212.541 289.972 181.677 300 150 300C118.323 300 87.4593 289.972 61.8322 271.353C36.2051 252.733 17.1302 226.479 7.34152 196.353C-0.377567 172.596 -2.0096 147.393 2.44542 123.024C4.43186 112.159 15.8576 106.414 26.3627 109.828L123.82 141.493C136.742 145.692 150 136.06 150 122.472L150 20Z" fill="#0060ff"/>
<circle cx="150" cy="150" r="128" fill="black"/>
<path d="M162.73 230.297L149.298 254.672C149.006 255.202 148.199 254.959 148.247 254.357L149.72 236.199L137.762 236.199C137.336 236.199 137.064 235.742 137.27 235.367L150.703 210.992C150.995 210.462 151.802 210.705 151.753 211.307L150.281 229.465L162.238 229.465C162.665 229.465 162.935 229.922 162.73 230.297Z" fill="white"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -1,7 +1,7 @@
<svg width="300" height="300" viewBox="0 0 300 300" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="300" height="300" fill="black"/>
<circle cx="150" cy="150" r="150" fill="#181818"/>
<path d="M150 20C150 8.9543 158.994 -0.13721 169.942 1.33122C196.455 4.88752 221.666 15.4912 242.864 32.2025C269.324 53.0615 287.99 82.2213 295.855 114.983C303.721 147.745 300.327 182.201 286.221 212.799C272.116 243.397 248.119 268.355 218.099 283.651C188.078 298.947 153.782 303.691 120.736 297.118C87.691 290.545 57.8208 273.037 35.9391 247.417C14.0573 221.797 1.43841 189.556 0.115643 155.889C-0.944093 128.917 5.29598 102.288 18.0031 78.7477C23.25 69.0277 35.8917 67.0954 44.8278 73.5879L118.244 126.928C131.465 136.533 150 127.089 150 110.748L150 20Z" fill="#167c80"/>
<path d="M150 20C150 8.9543 158.994 -0.13721 169.942 1.33122C196.455 4.88752 221.666 15.4912 242.864 32.2025C269.324 53.0615 287.99 82.2213 295.855 114.983C303.721 147.745 300.327 182.201 286.221 212.799C272.116 243.397 248.119 268.355 218.099 283.651C188.078 298.947 153.782 303.691 120.736 297.118C87.691 290.545 57.8208 273.037 35.9391 247.417C14.0573 221.797 1.43841 189.556 0.115643 155.889C-0.944093 128.917 5.29598 102.288 18.0031 78.7477C23.25 69.0277 35.8917 67.0954 44.8278 73.5879L118.244 126.928C131.465 136.533 150 127.089 150 110.748L150 20Z" fill="#0060ff"/>
<circle cx="150" cy="150" r="128" fill="black"/>
<path d="M162.73 230.297L149.298 254.672C149.006 255.202 148.199 254.959 148.247 254.357L149.72 236.199L137.762 236.199C137.336 236.199 137.064 235.742 137.27 235.367L150.703 210.992C150.995 210.462 151.802 210.705 151.753 211.307L150.281 229.465L162.238 229.465C162.665 229.465 162.935 229.922 162.73 230.297Z" fill="white"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -1,7 +1,7 @@
<svg width="300" height="300" viewBox="0 0 300 300" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="300" height="300" fill="black"/>
<circle cx="150" cy="150" r="150" fill="#181818"/>
<path d="M150 20C150 8.9543 158.994 -0.137283 169.941 1.33108C198.42 5.15078 225.355 17.0964 247.417 35.9391C274.575 59.1345 292.566 91.2591 298.153 126.535C303.74 161.811 296.557 197.922 277.896 228.375C259.235 258.827 230.32 281.622 196.353 292.658C162.385 303.695 125.594 302.25 92.5974 288.582C59.6007 274.914 32.5635 249.921 16.349 218.099C0.134526 186.276 -4.1931 149.712 4.14452 114.983C10.9176 86.7713 25.6875 61.2748 46.4819 41.4454C54.4756 33.8226 67.0955 35.8916 73.588 44.8278L113.82 100.202C125.208 115.876 150 107.821 150 88.4463L150 20Z" fill="#167c80"/>
<path d="M150 20C150 8.9543 158.994 -0.137283 169.941 1.33108C198.42 5.15078 225.355 17.0964 247.417 35.9391C274.575 59.1345 292.566 91.2591 298.153 126.535C303.74 161.811 296.557 197.922 277.896 228.375C259.235 258.827 230.32 281.622 196.353 292.658C162.385 303.695 125.594 302.25 92.5974 288.582C59.6007 274.914 32.5635 249.921 16.349 218.099C0.134526 186.276 -4.1931 149.712 4.14452 114.983C10.9176 86.7713 25.6875 61.2748 46.4819 41.4454C54.4756 33.8226 67.0955 35.8916 73.588 44.8278L113.82 100.202C125.208 115.876 150 107.821 150 88.4463L150 20Z" fill="#0060ff"/>
<circle cx="150" cy="150" r="128" fill="black"/>
<path d="M162.73 230.297L149.298 254.672C149.006 255.202 148.199 254.959 148.247 254.357L149.72 236.199L137.762 236.199C137.336 236.199 137.064 235.742 137.27 235.367L150.703 210.992C150.995 210.462 151.802 210.705 151.753 211.307L150.281 229.465L162.238 229.465C162.665 229.465 162.935 229.922 162.73 230.297Z" fill="white"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -1,7 +1,7 @@
<svg width="300" height="300" viewBox="0 0 300 300" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="300" height="300" fill="black"/>
<circle cx="150" cy="150" r="150" fill="#181818"/>
<path d="M150 20C150 8.9543 158.994 -0.137312 169.942 1.33104C200.389 5.41475 229.026 18.7812 251.82 39.8516C279.537 65.4731 296.576 100.602 299.538 138.231C302.499 175.86 291.165 213.222 267.798 242.864C244.43 272.506 210.746 292.249 173.465 298.153C136.185 304.058 98.0484 295.691 66.6644 274.72C35.2804 253.75 12.9559 221.719 4.1445 185.017C-4.66693 148.314 0.682508 109.639 19.1256 76.7068C34.2927 49.6239 57.3981 28.0622 85.0931 14.7697C95.0512 9.99024 106.415 15.8576 109.828 26.3626L110.979 29.9051C118.017 51.5659 150 46.5002 150 23.7248L150 20Z" fill="#167c80"/>
<path d="M150 20C150 8.9543 158.994 -0.137312 169.942 1.33104C200.389 5.41475 229.026 18.7812 251.82 39.8516C279.537 65.4731 296.576 100.602 299.538 138.231C302.499 175.86 291.165 213.222 267.798 242.864C244.43 272.506 210.746 292.249 173.465 298.153C136.185 304.058 98.0484 295.691 66.6644 274.72C35.2804 253.75 12.9559 221.719 4.1445 185.017C-4.66693 148.314 0.682508 109.639 19.1256 76.7068C34.2927 49.6239 57.3981 28.0622 85.0931 14.7697C95.0512 9.99024 106.415 15.8576 109.828 26.3626L110.979 29.9051C118.017 51.5659 150 46.5002 150 23.7248L150 20Z" fill="#0060ff"/>
<circle cx="150" cy="150" r="128" fill="black"/>
<path d="M162.73 230.297L149.298 254.672C149.006 255.202 148.199 254.959 148.247 254.357L149.72 236.199L137.762 236.199C137.336 236.199 137.064 235.742 137.27 235.367L150.703 210.992C150.995 210.462 151.802 210.705 151.753 211.307L150.281 229.465L162.238 229.465C162.665 229.465 162.935 229.922 162.73 230.297Z" fill="white"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -1,6 +1,6 @@
<svg width="300" height="300" viewBox="0 0 300 300" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="300" height="300" fill="black"/>
<circle cx="150" cy="150" r="150" fill="#167c80"/>
<circle cx="150" cy="150" r="150" fill="#0060ff"/>
<circle cx="150" cy="150" r="128" fill="black"/>
<path d="M162.73 230.297L149.298 254.672C149.006 255.202 148.199 254.959 148.247 254.357L149.72 236.199L137.762 236.199C137.336 236.199 137.064 235.742 137.27 235.367L150.703 210.992C150.995 210.462 151.802 210.705 151.753 211.307L150.281 229.465L162.238 229.465C162.665 229.465 162.935 229.922 162.73 230.297Z" fill="white"/>
</svg>

Before

Width:  |  Height:  |  Size: 580 B

After

Width:  |  Height:  |  Size: 580 B

View File

@@ -1,5 +1,5 @@
<svg width="300" height="300" viewBox="0 0 300 300" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="300" height="300" fill="black"/>
<circle cx="150" cy="150" r="150" fill="#167c80"/>
<circle cx="150" cy="150" r="150" fill="#0060ff"/>
<circle cx="150" cy="150" r="128" fill="black"/>
</svg>

Before

Width:  |  Height:  |  Size: 253 B

After

Width:  |  Height:  |  Size: 253 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 61 KiB

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 111 KiB

After

Width:  |  Height:  |  Size: 110 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 160 KiB

After

Width:  |  Height:  |  Size: 160 KiB

View File

@@ -1,10 +1,12 @@
# Allow vendor/extra to override any property by setting it first
$(call inherit-product-if-exists, vendor/extra/product.mk)
$(call inherit-product, vendor/lineage/config/evolution.mk)
$(call inherit-product, vendor/extras/evolution.mk)
# Allow vendor prebuilt repos to exclude themselves from bp scanning
-include $(sort $(wildcard vendor/*/*/exclude-bp.mk))
PRODUCT_BRAND ?= LineageOS
PRODUCT_BRAND ?= EvolutionX
ifeq ($(PRODUCT_GMS_CLIENTID_BASE),)
PRODUCT_SYSTEM_DEFAULT_PROPERTIES += \
@@ -97,9 +99,9 @@ PRODUCT_PACKAGES += \
PRODUCT_COPY_FILES += \
vendor/lineage/config/permissions/org.lineageos.android.xml:$(TARGET_COPY_OUT_PRODUCT)/etc/permissions/org.lineageos.android.xml
# Enforce privapp-permissions whitelist
PRODUCT_SYSTEM_DEFAULT_PROPERTIES += \
ro.control_privapp_permissions=enforce
# Enable transitional log for Privileged permissions
PRODUCT_PRODUCT_PROPERTIES += \
ro.control_privapp_permissions=log
ifneq ($(TARGET_DISABLE_LINEAGE_SDK), true)
# Lineage SDK
@@ -147,8 +149,7 @@ PRODUCT_PACKAGES += \
endif
PRODUCT_PACKAGES += \
LineageSettingsProvider \
Updater
LineageSettingsProvider
PRODUCT_COPY_FILES += \
vendor/lineage/prebuilt/common/etc/init/init.lineage-updater.rc:$(TARGET_COPY_OUT_SYSTEM_EXT)/etc/init/init.lineage-updater.rc
@@ -284,7 +285,4 @@ PRODUCT_EXTRA_RECOVERY_KEYS += \
include vendor/lineage/config/version.mk
-include vendor/lineage-priv/keys/keys.mk
-include $(WORKSPACE)/build_env/image-auto-bits.mk
-include vendor/lineage/config/partner_gms.mk

View File

@@ -20,23 +20,6 @@ PRODUCT_PACKAGES += \
Glimpse \
LatinIME
ifeq ($(PRODUCT_TYPE), go)
PRODUCT_PACKAGES += \
Launcher3QuickStepGo
PRODUCT_DEXPREOPT_SPEED_APPS += \
Launcher3QuickStepGo
else
PRODUCT_PACKAGES += \
Launcher3QuickStep
PRODUCT_DEXPREOPT_SPEED_APPS += \
Launcher3QuickStep
endif
PRODUCT_PACKAGES += \
Launcher3Overlay
# Charger
PRODUCT_PACKAGES += \
charger_res_images
@@ -47,43 +30,9 @@ PRODUCT_PACKAGES += \
lineage_charger_animation_vendor
endif
# Customizations
PRODUCT_PACKAGES += \
IconPackCircularAndroidOverlay \
IconPackCircularLauncherOverlay \
IconPackCircularSettingsOverlay \
IconPackCircularSystemUIOverlay \
IconPackFilledAndroidOverlay \
IconPackFilledLauncherOverlay \
IconPackFilledSettingsOverlay \
IconPackFilledSystemUIOverlay \
IconPackKaiAndroidOverlay \
IconPackKaiLauncherOverlay \
IconPackKaiSettingsOverlay \
IconPackKaiSystemUIOverlay \
IconPackRoundedAndroidOverlay \
IconPackRoundedLauncherOverlay \
IconPackRoundedSettingsOverlay \
IconPackRoundedSystemUIOverlay \
IconPackSamAndroidOverlay \
IconPackSamLauncherOverlay \
IconPackSamSettingsOverlay \
IconPackSamSystemUIOverlay \
IconPackVictorAndroidOverlay \
IconPackVictorLauncherOverlay \
IconPackVictorSettingsOverlay \
IconPackVictorSystemUIOverlay \
IconShapePebbleOverlay \
IconShapeRoundedRectOverlay \
IconShapeSquareOverlay \
IconShapeSquircleOverlay \
IconShapeTaperedRectOverlay \
IconShapeTeardropOverlay \
IconShapeVesselOverlay
# Legal
PRODUCT_SYSTEM_PROPERTIES += \
ro.lineagelegal.url=https://lineageos.org/legal
ro.evolutionlegal.url=https://evolution-x.org/legal.php
# Media
PRODUCT_SYSTEM_DEFAULT_PROPERTIES += \
@@ -108,6 +57,5 @@ PRODUCT_ARTIFACT_PATH_REQUIREMENT_ALLOWED_LIST += \
# Themes
PRODUCT_PACKAGES += \
LineageBlackTheme \
ThemePicker \
ThemesStub

View File

@@ -3,10 +3,6 @@ $(call inherit-product, vendor/lineage/config/common_mobile.mk)
PRODUCT_SIZE := full
# Include {Lato,Rubik} fonts
$(call inherit-product-if-exists, external/google-fonts/lato/fonts.mk)
$(call inherit-product-if-exists, external/google-fonts/rubik/fonts.mk)
# Apps
PRODUCT_PACKAGES += \
Camelot \
@@ -31,12 +27,6 @@ PRODUCT_PACKAGES += \
unrar \
zstd
# Fonts
PRODUCT_PACKAGES += \
fonts_customization.xml \
FontLatoOverlay \
FontRubikOverlay
# Include Lineage LatinIME dictionaries
PRODUCT_PACKAGE_OVERLAYS += vendor/lineage/overlay/dictionaries
PRODUCT_ENFORCE_RRO_EXCLUDED_OVERLAYS += vendor/lineage/overlay/dictionaries

15
config/evolution.mk Normal file
View File

@@ -0,0 +1,15 @@
# Evolution X packages
PRODUCT_PACKAGES += \
EvoEgg
ifeq ($(EVO_BUILD_TYPE),Official)
PRODUCT_PACKAGES += \
Updater
endif
# Private keys
ifeq ($(EVO_BUILD_TYPE),Official)
include vendor/evolution-priv/keys/keys.mk
else
-include vendor/evolution-priv/keys/keys.mk
endif

View File

@@ -1,51 +0,0 @@
ifeq ($(WITH_GMS),true)
# Special handling for Android TV
ifeq ($(PRODUCT_IS_ATV),true)
ifneq (,$(wildcard vendor/partner_gms-tv))
ifneq ($(GMS_MAKEFILE),)
# Specify the GMS makefile you want to use, for example:
# - gms.mk - default Android TV GMS
# - gms_gtv.mk - default Google TV GMS
# - gms_minimal.mk - minimal Android TV GMS
$(call inherit-product, vendor/partner_gms-tv/products/$(GMS_MAKEFILE))
else
$(call inherit-product-if-exists, vendor/partner_gms-tv/products/gms.mk)
endif
$(call inherit-product-if-exists, vendor/partner_gms-tv/products/mainline_modules.mk)
endif
# Special handling for Android Automotive
else ifeq ($(PRODUCT_IS_AUTOMOTIVE),true)
ifneq (,$(wildcard vendor/partner_gms-car))
ifneq ($(GMS_MAKEFILE),)
$(call inherit-product, vendor/partner_gms-car/products/$(GMS_MAKEFILE))
else
$(call inherit-product-if-exists, vendor/partner_gms-car/products/gms.mk)
endif
endif
else
ifneq (,$(wildcard vendor/partner_gms))
# Specify the GMS makefile you want to use, for example:
# - fi.mk - Project Fi
# - gms.mk - default GMS
# - gms_go.mk - low ram devices
# - gms_go_2gb.mk - low ram devices (2GB)
# - gms_64bit_only.mk - devices supporting 64-bit only
# - gms_minimal.mk - minimal GMS
ifneq ($(GMS_MAKEFILE),)
$(call inherit-product, vendor/partner_gms/products/$(GMS_MAKEFILE))
else
$(call inherit-product-if-exists, vendor/partner_gms/products/gms.mk)
endif
endif
ifneq (,$(wildcard vendor/partner_modules))
# Specify the mainline module makefile you want to use, for example:
# - mainline_modules.mk - updatable apex
# - mainline_modules_flatten_apex.mk - flatten apex
# - mainline_modules_low_ram.mk - low ram devices
ifneq ($(MAINLINE_MODULES_MAKEFILE),)
$(call inherit-product, vendor/partner_modules/build/$(MAINLINE_MODULES_MAKEFILE))
endif
endif
endif
endif

View File

@@ -28,3 +28,6 @@ PRODUCT_SYSTEM_DEFAULT_PROPERTIES += \
# Disable mobile data by default
PRODUCT_PRODUCT_PROPERTIES += \
ro.com.android.mobiledata=false
# Inherit BCR
$(call inherit-product, vendor/extras/bcr/bcr.mk)

View File

@@ -1,45 +1,19 @@
PRODUCT_VERSION_MAJOR = 23
PRODUCT_VERSION_MAJOR = 16
PRODUCT_VERSION_MINOR = 0
ifeq ($(LINEAGE_VERSION_APPEND_TIME_OF_DAY),true)
LINEAGE_BUILD_DATE := $(shell date -u +%Y%m%d_%H%M%S)
else
LINEAGE_BUILD_DATE := $(shell date -u +%Y%m%d)
endif
# Set LINEAGE_BUILDTYPE from the env RELEASE_TYPE, for jenkins compat
ifndef LINEAGE_BUILDTYPE
ifdef RELEASE_TYPE
# Starting with "LINEAGE_" is optional
RELEASE_TYPE := $(shell echo $(RELEASE_TYPE) | sed -e 's|^LINEAGE_||g')
LINEAGE_BUILDTYPE := $(RELEASE_TYPE)
endif
endif
# Filter out random types, so it'll reset to UNOFFICIAL
ifeq ($(filter RELEASE NIGHTLY SNAPSHOT EXPERIMENTAL,$(LINEAGE_BUILDTYPE)),)
LINEAGE_BUILDTYPE := UNOFFICIAL
LINEAGE_EXTRAVERSION :=
endif
ifeq ($(LINEAGE_BUILDTYPE), UNOFFICIAL)
ifneq ($(TARGET_UNOFFICIAL_BUILD_ID),)
LINEAGE_EXTRAVERSION := -$(TARGET_UNOFFICIAL_BUILD_ID)
endif
endif
LINEAGE_VERSION_SUFFIX := $(LINEAGE_BUILD_DATE)-$(LINEAGE_BUILDTYPE)$(LINEAGE_EXTRAVERSION)-$(LINEAGE_BUILD)
# Increase EVO Version with each major release.
EVO_VERSION := 11.0
EVO_BUILD_TYPE ?= Unofficial
# Internal version
LINEAGE_VERSION := $(PRODUCT_VERSION_MAJOR).$(PRODUCT_VERSION_MINOR)-$(LINEAGE_VERSION_SUFFIX)
LINEAGE_VERSION := EvolutionX-$(PRODUCT_VERSION_MAJOR).$(PRODUCT_VERSION_MINOR)-$(shell date +%Y%m%d)-$(LINEAGE_BUILD)-$(EVO_VERSION)-$(EVO_BUILD_TYPE)
# Display version
LINEAGE_DISPLAY_VERSION := $(PRODUCT_VERSION_MAJOR)-$(LINEAGE_VERSION_SUFFIX)
LINEAGE_DISPLAY_VERSION := v$(EVO_VERSION)-$(shell date +%Y%m%d)
# LineageOS version properties
# Evolution X version properties
PRODUCT_SYSTEM_PROPERTIES += \
ro.lineage.version=$(LINEAGE_VERSION) \
ro.lineage.display.version=$(LINEAGE_DISPLAY_VERSION) \
ro.lineage.build.version=$(PRODUCT_VERSION_MAJOR).$(PRODUCT_VERSION_MINOR) \
ro.lineage.releasetype=$(LINEAGE_BUILDTYPE)
ro.evolution.build.version=$(LINEAGE_VERSION) \
ro.evolution.display.version=$(LINEAGE_DISPLAY_VERSION) \
ro.evolution.version=$(PRODUCT_VERSION_MAJOR).$(PRODUCT_VERSION_MINOR) \
ro.modversion=$(EVO_VERSION)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 509 KiB

After

Width:  |  Height:  |  Size: 572 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 400 KiB

After

Width:  |  Height:  |  Size: 465 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 801 KiB

After

Width:  |  Height:  |  Size: 1.5 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 801 KiB

After

Width:  |  Height:  |  Size: 1.5 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 626 KiB

After

Width:  |  Height:  |  Size: 943 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 801 KiB

After

Width:  |  Height:  |  Size: 1.5 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 MiB

After

Width:  |  Height:  |  Size: 2.4 MiB

View File

@@ -36,4 +36,7 @@
<string name="config_styles_and_wallpaper_picker_class" translatable="false">com.android.customization.picker.CustomizationPickerActivity</string>
<!-- Action name for the styles & wallpaper picker activity. -->
<string name="config_styles_and_wallpaper_picker_action" translatable="false">android.intent.action.SET_WALLPAPER</string>
<!-- Whether or not device header widget tile should display in device info page -->
<bool name="config_show_device_header_in_device_info">false</bool>
</resources>

View File

@@ -1,9 +0,0 @@
//
// Copyright (C) 2022 The LineageOS Project
// SPDX-License-Identifier: Apache-2.0
//
runtime_resource_overlay {
name: "Launcher3Overlay",
product_specific: true,
}

View File

@@ -1,13 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2022 The LineageOS Project
SPDX-License-Identifier: Apache-2.0
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.launcher3.overlay">
<overlay
android:isStatic="true"
android:priority="100"
android:targetPackage="com.android.launcher3" />
</manifest>

View File

@@ -1,22 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2021,2023 The LineageOS 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.
-->
<resources>
<!-- Default packages -->
<string name="wallpaper_picker_package" translatable="false">com.android.wallpaper</string>
</resources>

View File

@@ -7,7 +7,7 @@ export C=/tmp/backupdir
export SYSDEV="$(readlink -nf "$2")"
export SYSFS="$3"
export TMPDIR=/tmp
export V=23
export V=16.0
export ADDOND_VERSION=3
@@ -48,7 +48,7 @@ if [ ! -r $S/build.prop ]; then
echo "Backup/restore is not possible. Partition is probably empty"
return 1
fi
if ! grep -q "^ro.lineage.version=$V.*" $S/build.prop; then
if ! grep -q "^ro.evolution.version=$V.*" $S/build.prop; then
echo "Backup/restore is not possible. Incompatible ROM version: $V"
return 2
fi

View File

@@ -5,7 +5,7 @@
export S=/system
export C=/postinstall/tmp/backupdir
export V=23
export V=16.0
export ADDOND_VERSION=3
@@ -56,7 +56,7 @@ if [ ! -r /system/build.prop ]; then
echo "Backup/restore is not possible. Partition is probably empty"
return 1
fi
if ! grep -q "^ro.lineage.version=$V.*" /system/build.prop; then
if ! grep -q "^ro.evolution.version=$V.*" /system/build.prop; then
echo "Backup/restore is not possible. Incompatible ROM version: $V"
return 2
fi

View File

@@ -1,4 +1,4 @@
on post-fs-data
# Create an additional OTA package directory that unlike /data/ota_package
# will not be touched by GmsCore.
mkdir /data/lineageos_updates 0770 system cache encryption=Require
mkdir /data/evolution_updates 0770 system cache encryption=Require