feat: Align with RVX [[v5.14.1-dev.2](https://github.com/inotia00/revanced-patches/releases/tag/v5.14.1-dev.2)]
This commit is contained in:
parent
2fb13f06e8
commit
2790767543
195 changed files with 5578 additions and 8286 deletions
|
|
@ -38,21 +38,15 @@ dependencies {
|
|||
compileOnly(libs.preference)
|
||||
|
||||
implementation(libs.collections4)
|
||||
implementation(libs.disklrucache)
|
||||
implementation(libs.gson)
|
||||
implementation(libs.kotlinx.coroutines.core)
|
||||
implementation(libs.lang3)
|
||||
implementation(libs.nanojson)
|
||||
implementation(libs.okhttp3)
|
||||
implementation(libs.protobuf.javalite)
|
||||
|
||||
implementation(libs.regex)
|
||||
implementation(libs.retrofit)
|
||||
implementation(libs.rxjava2)
|
||||
implementation(libs.rxjava2.android)
|
||||
implementation(project(":extensions:shared:j2v8"))
|
||||
|
||||
implementation(libs.okhttp)
|
||||
implementation(project(":extensions:shared:gplayapi"))
|
||||
|
||||
implementation(libs.nanohttpd)
|
||||
implementation(libs.protobuf.javalite)
|
||||
|
|
|
|||
23
extensions/shared/gplayapi/.gitignore
vendored
Normal file
23
extensions/shared/gplayapi/.gitignore
vendored
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
### https://raw.github.com/github/gitignore/14b7566ce157ce95b07006466bacee160f242284/maven.gitignore
|
||||
|
||||
target/
|
||||
pom.xml.tag
|
||||
pom.xml.releaseBackup
|
||||
pom.xml.versionsBackup
|
||||
pom.xml.next
|
||||
release.properties
|
||||
|
||||
|
||||
site-content
|
||||
/.classpath
|
||||
/.project
|
||||
/.settings/
|
||||
|
||||
### Ignore IntelliJ files
|
||||
/.idea/
|
||||
*.iml
|
||||
/bin/
|
||||
/build
|
||||
|
||||
### Ignore Visual Studio code files
|
||||
/.vscode/
|
||||
210
extensions/shared/gplayapi/LICENSE.txt
Normal file
210
extensions/shared/gplayapi/LICENSE.txt
Normal file
|
|
@ -0,0 +1,210 @@
|
|||
Eclipse Public License - v 1.0
|
||||
|
||||
THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC
|
||||
LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM
|
||||
CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
|
||||
|
||||
1. DEFINITIONS
|
||||
|
||||
"Contribution" means:
|
||||
|
||||
a) in the case of the initial Contributor, the initial code and documentation
|
||||
distributed under this Agreement, and
|
||||
|
||||
b) in the case of each subsequent Contributor:
|
||||
|
||||
i) changes to the Program, and
|
||||
|
||||
ii) additions to the Program;
|
||||
|
||||
where such changes and/or additions to the Program originate from and are
|
||||
distributed by that particular Contributor. A Contribution 'originates' from
|
||||
a Contributor if it was added to the Program by such Contributor itself or
|
||||
anyone acting on such Contributor's behalf. Contributions do not include additions
|
||||
to the Program which: (i) are separate modules of software distributed in
|
||||
conjunction with the Program under their own license agreement, and (ii) are
|
||||
not derivative works of the Program.
|
||||
|
||||
"Contributor" means any person or entity that distributes the Program.
|
||||
|
||||
"Licensed Patents" mean patent claims licensable by a Contributor which are
|
||||
necessarily infringed by the use or sale of its Contribution alone or when
|
||||
combined with the Program.
|
||||
|
||||
"Program" means the Contributions distributed in accordance with this Agreement.
|
||||
|
||||
"Recipient" means anyone who receives the Program under this Agreement, including
|
||||
all Contributors.
|
||||
|
||||
2. GRANT OF RIGHTS
|
||||
|
||||
a) Subject to the terms of this Agreement, each Contributor hereby grants
|
||||
Recipient a non-exclusive, worldwide, royalty-free copyright license to reproduce,
|
||||
prepare derivative works of, publicly display, publicly perform, distribute
|
||||
and sublicense the Contribution of such Contributor, if any, and such derivative
|
||||
works, in source code and object code form.
|
||||
|
||||
b) Subject to the terms of this Agreement, each Contributor hereby grants
|
||||
Recipient a non-exclusive, worldwide, royalty-free patent license under Licensed
|
||||
Patents to make, use, sell, offer to sell, import and otherwise transfer the
|
||||
Contribution of such Contributor, if any, in source code and object code form.
|
||||
This patent license shall apply to the combination of the Contribution and
|
||||
the Program if, at the time the Contribution is added by the Contributor,
|
||||
such addition of the Contribution causes such combination to be covered by
|
||||
the Licensed Patents. The patent license shall not apply to any other combinations
|
||||
which include the Contribution. No hardware per se is licensed hereunder.
|
||||
|
||||
c) Recipient understands that although each Contributor grants the licenses
|
||||
to its Contributions set forth herein, no assurances are provided by any Contributor
|
||||
that the Program does not infringe the patent or other intellectual property
|
||||
rights of any other entity. Each Contributor disclaims any liability to Recipient
|
||||
for claims brought by any other entity based on infringement of intellectual
|
||||
property rights or otherwise. As a condition to exercising the rights and
|
||||
licenses granted hereunder, each Recipient hereby assumes sole responsibility
|
||||
to secure any other intellectual property rights needed, if any. For example,
|
||||
if a third party patent license is required to allow Recipient to distribute
|
||||
the Program, it is Recipient's responsibility to acquire that license before
|
||||
distributing the Program.
|
||||
|
||||
d) Each Contributor represents that to its knowledge it has sufficient copyright
|
||||
rights in its Contribution, if any, to grant the copyright license set forth
|
||||
in this Agreement.
|
||||
|
||||
3. REQUIREMENTS
|
||||
|
||||
A Contributor may choose to distribute the Program in object code form under
|
||||
its own license agreement, provided that:
|
||||
|
||||
a) it complies with the terms and conditions of this Agreement; and
|
||||
|
||||
b) its license agreement:
|
||||
|
||||
i) effectively disclaims on behalf of all Contributors all warranties and
|
||||
conditions, express and implied, including warranties or conditions of title
|
||||
and non-infringement, and implied warranties or conditions of merchantability
|
||||
and fitness for a particular purpose;
|
||||
|
||||
ii) effectively excludes on behalf of all Contributors all liability for damages,
|
||||
including direct, indirect, special, incidental and consequential damages,
|
||||
such as lost profits;
|
||||
|
||||
iii) states that any provisions which differ from this Agreement are offered
|
||||
by that Contributor alone and not by any other party; and
|
||||
|
||||
iv) states that source code for the Program is available from such Contributor,
|
||||
and informs licensees how to obtain it in a reasonable manner on or through
|
||||
a medium customarily used for software exchange.
|
||||
|
||||
When the Program is made available in source code form:
|
||||
|
||||
a) it must be made available under this Agreement; and
|
||||
|
||||
b) a copy of this Agreement must be included with each copy of the Program.
|
||||
|
||||
Contributors may not remove or alter any copyright notices contained within
|
||||
the Program.
|
||||
|
||||
Each Contributor must identify itself as the originator of its Contribution,
|
||||
if any, in a manner that reasonably allows subsequent Recipients to identify
|
||||
the originator of the Contribution.
|
||||
|
||||
4. COMMERCIAL DISTRIBUTION
|
||||
|
||||
Commercial distributors of software may accept certain responsibilities with
|
||||
respect to end users, business partners and the like. While this license is
|
||||
intended to facilitate the commercial use of the Program, the Contributor
|
||||
who includes the Program in a commercial product offering should do so in
|
||||
a manner which does not create potential liability for other Contributors.
|
||||
Therefore, if a Contributor includes the Program in a commercial product offering,
|
||||
such Contributor ("Commercial Contributor") hereby agrees to defend and indemnify
|
||||
every other Contributor ("Indemnified Contributor") against any losses, damages
|
||||
and costs (collectively "Losses") arising from claims, lawsuits and other
|
||||
legal actions brought by a third party against the Indemnified Contributor
|
||||
to the extent caused by the acts or omissions of such Commercial Contributor
|
||||
in connection with its distribution of the Program in a commercial product
|
||||
offering. The obligations in this section do not apply to any claims or Losses
|
||||
relating to any actual or alleged intellectual property infringement. In order
|
||||
to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
|
||||
Contributor in writing of such claim, and b) allow the Commercial Contributor
|
||||
to control, and cooperate with the Commercial Contributor in, the defense
|
||||
and any related settlement negotiations. The Indemnified Contributor may participate
|
||||
in any such claim at its own expense.
|
||||
|
||||
For example, a Contributor might include the Program in a commercial product
|
||||
offering, Product X. That Contributor is then a Commercial Contributor. If
|
||||
that Commercial Contributor then makes performance claims, or offers warranties
|
||||
related to Product X, those performance claims and warranties are such Commercial
|
||||
Contributor's responsibility alone. Under this section, the Commercial Contributor
|
||||
would have to defend claims against the other Contributors related to those
|
||||
performance claims and warranties, and if a court requires any other Contributor
|
||||
to pay any damages as a result, the Commercial Contributor must pay those
|
||||
damages.
|
||||
|
||||
5. NO WARRANTY
|
||||
|
||||
EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON
|
||||
AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS
|
||||
OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF
|
||||
TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
|
||||
Each Recipient is solely responsible for determining the appropriateness of
|
||||
using and distributing the Program and assumes all risks associated with its
|
||||
exercise of rights under this Agreement, including but not limited to the
|
||||
risks and costs of program errors, compliance with applicable laws, damage
|
||||
to or loss of data, programs or equipment, and unavailability or interruption
|
||||
of operations.
|
||||
|
||||
6. DISCLAIMER OF LIABILITY
|
||||
|
||||
EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY
|
||||
CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION
|
||||
LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY
|
||||
WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS
|
||||
GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
7. GENERAL
|
||||
|
||||
If any provision of this Agreement is invalid or unenforceable under applicable
|
||||
law, it shall not affect the validity or enforceability of the remainder of
|
||||
the terms of this Agreement, and without further action by the parties hereto,
|
||||
such provision shall be reformed to the minimum extent necessary to make such
|
||||
provision valid and enforceable.
|
||||
|
||||
If Recipient institutes patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Program itself
|
||||
(excluding combinations of the Program with other software or hardware) infringes
|
||||
such Recipient's patent(s), then such Recipient's rights granted under Section
|
||||
2(b) shall terminate as of the date such litigation is filed.
|
||||
|
||||
All Recipient's rights under this Agreement shall terminate if it fails to
|
||||
comply with any of the material terms or conditions of this Agreement and
|
||||
does not cure such failure in a reasonable period of time after becoming aware
|
||||
of such noncompliance. If all Recipient's rights under this Agreement terminate,
|
||||
Recipient agrees to cease use and distribution of the Program as soon as reasonably
|
||||
practicable. However, Recipient's obligations under this Agreement and any
|
||||
licenses granted by Recipient relating to the Program shall continue and survive.
|
||||
|
||||
Everyone is permitted to copy and distribute copies of this Agreement, but
|
||||
in order to avoid inconsistency the Agreement is copyrighted and may only
|
||||
be modified in the following manner. The Agreement Steward reserves the right
|
||||
to publish new versions (including revisions) of this Agreement from time
|
||||
to time. No one other than the Agreement Steward has the right to modify this
|
||||
Agreement. The Eclipse Foundation is the initial Agreement Steward. The Eclipse
|
||||
Foundation may assign the responsibility to serve as the Agreement Steward
|
||||
to a suitable separate entity. Each new version of the Agreement will be given
|
||||
a distinguishing version number. The Program (including Contributions) may
|
||||
always be distributed subject to the version of the Agreement under which
|
||||
it was received. In addition, after a new version of the Agreement is published,
|
||||
Contributor may elect to distribute the Program (including its Contributions)
|
||||
under the new version. Except as expressly stated in Sections 2(a) and 2(b)
|
||||
above, Recipient receives no rights or licenses to the intellectual property
|
||||
of any Contributor under this Agreement, whether expressly, by implication,
|
||||
estoppel or otherwise. All rights in the Program not expressly granted under
|
||||
this Agreement are reserved.
|
||||
|
||||
This Agreement is governed by the laws of the State of New York and the intellectual
|
||||
property laws of the United States of America. No party to this Agreement
|
||||
will bring a legal action under this Agreement more than one year after the
|
||||
cause of action arose. Each party waives its rights to a jury trial in any
|
||||
resulting litigation.
|
||||
88
extensions/shared/gplayapi/README.md
Normal file
88
extensions/shared/gplayapi/README.md
Normal file
|
|
@ -0,0 +1,88 @@
|
|||
# playstore-api-v2 (DEPRECATED)
|
||||
|
||||
Checkout Kotlin implementaion of the same [here](https://gitlab.com/AuroraOSS/gplayapi)
|
||||
|
||||
Google Play Store protobuf API wrapper in java
|
||||
|
||||
## Build separately
|
||||
|
||||
git clone https://github.com/yeriomin/play-store-api
|
||||
gradlew :assemble
|
||||
gradlew :build
|
||||
|
||||
Protobuf classes generation happens on `assemble` step, tests a run on `build` step.
|
||||
|
||||
## Usage
|
||||
|
||||
### First login
|
||||
|
||||
```java
|
||||
// A device definition is required to log in
|
||||
// See resources for a list of available devices
|
||||
Properties properties = new Properties();
|
||||
try {
|
||||
properties.load(getClass().getClassLoader().getSystemResourceAsStream("device-honami.properties"));
|
||||
} catch (IOException e) {
|
||||
System.out.println("device-honami.properties not found");
|
||||
return null;
|
||||
}
|
||||
PropertiesDeviceInfoProvider deviceInfoProvider = new PropertiesDeviceInfoProvider();
|
||||
deviceInfoProvider.setProperties(properties);
|
||||
deviceInfoProvider.setLocaleString(Locale.ENGLISH.toString());
|
||||
|
||||
// Provide valid google account info
|
||||
PlayStoreApiBuilder builder = new PlayStoreApiBuilder()
|
||||
// Extend HttpClientAdapter using a http library of your choice
|
||||
.setHttpClient(new HttpClientAdapterImplementation())
|
||||
.setDeviceInfoProvider(deviceInfoProvider)
|
||||
.setEmail(email)
|
||||
.setPassword(password)
|
||||
;
|
||||
GooglePlayAPI api = builder.build();
|
||||
|
||||
// We are logged in now
|
||||
// Save and reuse the generated auth token and gsf id,
|
||||
// unless you want to get banned for frequent relogins
|
||||
api.getToken();
|
||||
api.getGsfId();
|
||||
|
||||
// API wrapper instance is ready
|
||||
DetailsResponse response = api.details("com.cpuid.cpu_z");
|
||||
```
|
||||
|
||||
### Further logins
|
||||
|
||||
```java
|
||||
// A device definition is required for routine requests too
|
||||
// See resources for a list of available devices
|
||||
Properties properties = new Properties();
|
||||
try {
|
||||
properties.load(getClass().getClassLoader().getSystemResourceAsStream("device-honami.properties"));
|
||||
} catch (IOException e) {
|
||||
System.out.println("device-honami.properties not found");
|
||||
return null;
|
||||
}
|
||||
PropertiesDeviceInfoProvider deviceInfoProvider = new PropertiesDeviceInfoProvider();
|
||||
deviceInfoProvider.setProperties(properties);
|
||||
deviceInfoProvider.setLocaleString(Locale.ENGLISH.toString());
|
||||
|
||||
// Provide auth token and gsf id you previously saved
|
||||
PlayStoreApiBuilder builder = new PlayStoreApiBuilder()
|
||||
// Extend HttpClientAdapter using a http library of your choice
|
||||
.setHttpClient(new HttpClientAdapterImplementation())
|
||||
.setDeviceInfoProvider(deviceInfoProvider)
|
||||
.setToken(token)
|
||||
.setGsfId(gsfId)
|
||||
;
|
||||
GooglePlayAPI api = builder.build();
|
||||
|
||||
// API wrapper instance is ready
|
||||
DetailsResponse response = api.details("com.cpuid.cpu_z");
|
||||
```
|
||||
|
||||
## License
|
||||
|
||||
playstore-api-v2 is Free Software: You can use, study share and improve it at your will. Specifically you can redistribute and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
|
||||
|
||||
## Credits
|
||||
playstore-api-v2 is a fork of https://github.com/yeriomin/play-store-api
|
||||
45
extensions/shared/gplayapi/build.gradle.kts
Normal file
45
extensions/shared/gplayapi/build.gradle.kts
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
import java.lang.Boolean.FALSE
|
||||
|
||||
plugins {
|
||||
id(libs.plugins.android.library.get().pluginId)
|
||||
alias(libs.plugins.protobuf)
|
||||
}
|
||||
|
||||
android {
|
||||
namespace = "com.dragons.aurora"
|
||||
compileSdk = 34
|
||||
|
||||
defaultConfig {
|
||||
minSdk = 24
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
release {
|
||||
isMinifyEnabled = FALSE
|
||||
}
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility = JavaVersion.VERSION_17
|
||||
targetCompatibility = JavaVersion.VERSION_17
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation(libs.protobuf.javalite)
|
||||
}
|
||||
|
||||
protobuf {
|
||||
protoc {
|
||||
artifact = libs.protobuf.protoc.get().toString()
|
||||
}
|
||||
generateProtoTasks {
|
||||
all().forEach { task ->
|
||||
task.builtins {
|
||||
create("java") {
|
||||
option("lite")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
21
extensions/shared/gplayapi/proguard-rules.pro
vendored
Normal file
21
extensions/shared/gplayapi/proguard-rules.pro
vendored
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
# Add project specific ProGuard rules here.
|
||||
# You can control the set of applied configuration files using the
|
||||
# proguardFiles setting in build.gradle.
|
||||
#
|
||||
# For more details, see
|
||||
# http://developer.android.com/guide/developing/tools/proguard.html
|
||||
|
||||
# If your project uses WebView with JS, uncomment the following
|
||||
# and specify the fully qualified class name to the JavaScript interface
|
||||
# class:
|
||||
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
|
||||
# public *;
|
||||
#}
|
||||
|
||||
# Uncomment this to preserve the line number information for
|
||||
# debugging stack traces.
|
||||
#-keepattributes SourceFile,LineNumberTable
|
||||
|
||||
# If you keep the line number information, uncomment this to
|
||||
# hide the original source file name.
|
||||
#-renamesourcefileattribute SourceFile
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
package com.dragons.aurora.playstoreapiv2;
|
||||
|
||||
public class AuthException extends GooglePlayException {
|
||||
|
||||
private String twoFactorUrl;
|
||||
|
||||
public AuthException(String message) {
|
||||
super(message);
|
||||
}
|
||||
|
||||
public AuthException(String message, int code) {
|
||||
super(message);
|
||||
setCode(code);
|
||||
}
|
||||
|
||||
public String getTwoFactorUrl() {
|
||||
return twoFactorUrl;
|
||||
}
|
||||
|
||||
public void setTwoFactorUrl(String twoFactorUrl) {
|
||||
this.twoFactorUrl = twoFactorUrl;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
package com.dragons.aurora.playstoreapiv2;
|
||||
|
||||
public interface DeviceInfoProvider {
|
||||
|
||||
String getAuthUserAgentString();
|
||||
int getSdkVersion();
|
||||
int getPlayServicesVersion();
|
||||
}
|
||||
|
|
@ -0,0 +1,163 @@
|
|||
package com.dragons.aurora.playstoreapiv2;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* @author akdeniz, yeriomin, whyorean
|
||||
*/
|
||||
public class GooglePlayAPI {
|
||||
|
||||
private static final String URL = "https://android.clients.google.com/auth";
|
||||
|
||||
private HttpClientAdapter client;
|
||||
private Locale locale;
|
||||
private DeviceInfoProvider deviceInfoProvider;
|
||||
|
||||
/**
|
||||
* Some methods instead of a protobuf return key-value pairs on each string
|
||||
*/
|
||||
public static Map<String, String> parseResponse(String response) {
|
||||
Map<String, String> keyValueMap = new HashMap<>();
|
||||
StringTokenizer st = new StringTokenizer(response, "\n\r");
|
||||
while (st.hasMoreTokens()) {
|
||||
String[] keyValue = st.nextToken().split("=", 2);
|
||||
if (keyValue.length >= 2) {
|
||||
keyValueMap.put(keyValue[0], keyValue[1]);
|
||||
}
|
||||
}
|
||||
return keyValueMap;
|
||||
}
|
||||
|
||||
public HttpClientAdapter getClient() {
|
||||
return client;
|
||||
}
|
||||
|
||||
public void setClient(HttpClientAdapter httpClient) {
|
||||
this.client = httpClient;
|
||||
}
|
||||
|
||||
public void setLocale(Locale locale) {
|
||||
this.locale = locale;
|
||||
}
|
||||
|
||||
public void setDeviceInfoProvider(DeviceInfoProvider deviceInfoProvider) {
|
||||
this.deviceInfoProvider = deviceInfoProvider;
|
||||
}
|
||||
|
||||
public String generatePlayStoreToken(String email, String aasToken) throws IOException {
|
||||
return generateToken(
|
||||
email,
|
||||
aasToken,
|
||||
"com.android.vending",
|
||||
"38918a453d07199354f8b19af05ec6562ced5788",
|
||||
"oauth2:https://www.googleapis.com/auth/googleplay"
|
||||
);
|
||||
}
|
||||
|
||||
public String generateYouTubeToken(String email, String aasToken) throws IOException {
|
||||
return generateToken(
|
||||
email,
|
||||
aasToken,
|
||||
"com.google.android.youtube",
|
||||
"24bb24c05e47e0aefa68a58a766179d9b613a600",
|
||||
"oauth2:https://www.googleapis.com/auth/youtube"
|
||||
);
|
||||
}
|
||||
|
||||
public String generateYouTubeMusicToken(String email, String aasToken) throws IOException {
|
||||
return generateToken(
|
||||
email,
|
||||
aasToken,
|
||||
"com.google.android.apps.youtube.music",
|
||||
"afb0fed5eeaebdd86f56a97742f4b6b33ef59875",
|
||||
"oauth2:https://www.googleapis.com/auth/youtube"
|
||||
);
|
||||
}
|
||||
|
||||
public String generateYouTubeUnpluggedToken(String email, String aasToken) throws IOException {
|
||||
return generateToken(
|
||||
email,
|
||||
aasToken,
|
||||
"com.google.android.apps.youtube.unplugged",
|
||||
"3a82b5ee26bc46bf68113d920e610cd090198d4a",
|
||||
"oauth2:https://www.googleapis.com/auth/youtube"
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Authenticates on server with given email and password and sets
|
||||
* authentication token. This token can be used to login instead of using
|
||||
* email and password every time.
|
||||
*/
|
||||
public String generateToken(String email, String aasToken,
|
||||
String packageName, String signature,
|
||||
String scopes) throws IOException {
|
||||
Map<String, String> params = getDefaultLoginParams(email);
|
||||
params.put("service", scopes);
|
||||
params.put("app", packageName);
|
||||
params.put("oauth2_foreground", "1");
|
||||
params.put("token_request_options", "CAA4AVAB");
|
||||
params.put("check_email", "1");
|
||||
params.put("Token", aasToken);
|
||||
params.put("client_sig", signature);
|
||||
params.put("callerPkg", "com.google.android.gms");
|
||||
params.put("system_partition", "1");
|
||||
params.put("_opt_is_called_from_account_manager", "1");
|
||||
params.put("is_called_from_account_manager", "1");
|
||||
Map<String, String> headers = getAuthHeaders();
|
||||
headers.put("app", packageName);
|
||||
byte[] responseBytes = client.post(URL, params, headers);
|
||||
Map<String, String> response = parseResponse(new String(responseBytes));
|
||||
if (response.containsKey("Auth")) {
|
||||
return response.get("Auth");
|
||||
} else {
|
||||
throw new AuthException("Authentication failed! (login)");
|
||||
}
|
||||
}
|
||||
|
||||
public String generateAASToken(String email, String oauthToken) throws IOException {
|
||||
Map<String, String> params = getDefaultLoginParams(email);
|
||||
params.put("service", "ac2dm");
|
||||
params.put("add_account", "1");
|
||||
params.put("get_accountid", "1");
|
||||
params.put("ACCESS_TOKEN", "1");
|
||||
params.put("callerPkg", "com.google.android.gms");
|
||||
params.put("Token", oauthToken);
|
||||
//params.put("droidguard_results", "...");
|
||||
Map<String, String> headers = getAuthHeaders();
|
||||
headers.put("app", "com.google.android.gms");
|
||||
byte[] responseBytes = client.post(URL, params, headers);
|
||||
Map<String, String> response = parseResponse(new String(responseBytes));
|
||||
if (response.containsKey("Token")) {
|
||||
return response.get("Token");
|
||||
} else {
|
||||
throw new AuthException("Authentication failed! (login aas)");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* login methods use this
|
||||
* Most likely not all of these are required, but the Market app sends them, so we will too
|
||||
* <p>
|
||||
* client_sig is SHA1 digest of encoded certificate on
|
||||
* GoogleLoginService(package name : com.google.android.gsf) system APK.
|
||||
* But google doesn't seem to care of value of this parameter.
|
||||
*/
|
||||
protected Map<String, String> getDefaultLoginParams(String email) {
|
||||
Map<String, String> params = new HashMap<>();
|
||||
params.put("sdk_version", String.valueOf(this.deviceInfoProvider.getSdkVersion()));
|
||||
params.put("Email", email);
|
||||
params.put("google_play_services_version", String.valueOf(this.deviceInfoProvider.getPlayServicesVersion()));
|
||||
params.put("device_country", this.locale.getCountry().toLowerCase());
|
||||
params.put("lang", this.locale.getLanguage().toLowerCase());
|
||||
params.put("callerSig", "38918a453d07199354f8b19af05ec6562ced5788");
|
||||
return params;
|
||||
}
|
||||
|
||||
private Map<String, String> getAuthHeaders() {
|
||||
Map<String, String> headers = new HashMap<>();
|
||||
headers.put("User-Agent", this.deviceInfoProvider.getAuthUserAgentString());
|
||||
return headers;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
package com.dragons.aurora.playstoreapiv2;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
public class GooglePlayException extends IOException {
|
||||
|
||||
protected int code;
|
||||
|
||||
public GooglePlayException(String message) {
|
||||
super(message);
|
||||
}
|
||||
|
||||
public void setCode(int code) {
|
||||
this.code = code;
|
||||
}
|
||||
|
||||
public int getCode() {
|
||||
return this.code;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
package com.dragons.aurora.playstoreapiv2;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public abstract class HttpClientAdapter {
|
||||
|
||||
abstract public byte[] get(String url, Map<String, String> params, Map<String, String> headers) throws IOException;
|
||||
abstract public byte[] post(String url, Map<String, String> params, Map<String, String> headers) throws IOException;
|
||||
abstract public byte[] post(String url, byte[] body, Map<String, String> headers) throws IOException;
|
||||
abstract public String buildUrl(String url, Map<String, String> params);
|
||||
|
||||
public byte[] get(String url, Map<String, String> params) throws IOException {
|
||||
return get(url, params, new HashMap<>());
|
||||
}
|
||||
|
||||
public byte[] get(String url) throws IOException {
|
||||
return get(url, new HashMap<>());
|
||||
}
|
||||
|
||||
static public Map<String, List<String>> expand(Map<String, String> params) {
|
||||
Map<String, List<String>> result = new HashMap<String, List<String>>();
|
||||
for (String name: params.keySet()) {
|
||||
result.put(name, Collections.singletonList(params.get(name)));
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
1810
extensions/shared/gplayapi/src/main/proto/GooglePlay.proto
Normal file
1810
extensions/shared/gplayapi/src/main/proto/GooglePlay.proto
Normal file
File diff suppressed because it is too large
Load diff
|
|
@ -0,0 +1,36 @@
|
|||
UserReadableName = Sony Bravia 4K GB (api24)
|
||||
Build.HARDWARE = mt5891
|
||||
Build.RADIO = unknown
|
||||
Build.BOOTLOADER = unknown
|
||||
Build.FINGERPRINT = Sony/BRAVIA_ATV2_EU/BRAVIA_ATV2:7.0/NRD91N.S90/1.6.0.26.71.1.00:user/release-keys
|
||||
Build.BRAND = Sony
|
||||
Build.DEVICE = BRAVIA_ATV2
|
||||
Build.VERSION.SDK_INT = 24
|
||||
Build.MODEL = BRAVIA 4K GB
|
||||
Build.MANUFACTURER = Sony
|
||||
Build.PRODUCT = BRAVIA_ATV2_EU
|
||||
Build.ID = NRD91N.S90
|
||||
Build.VERSION.RELEASE = 7.0
|
||||
TouchScreen = 1
|
||||
Keyboard = 1
|
||||
Navigation = 2
|
||||
ScreenLayout = 3
|
||||
HasHardKeyboard = false
|
||||
HasFiveWayNavigation = true
|
||||
GL.Version = 196610
|
||||
Screen.Density = 320
|
||||
Screen.Width = 1920
|
||||
Screen.Height = 1080
|
||||
Platforms = armeabi-v7a,armeabi
|
||||
SharedLibraries = android.ext.services,android.ext.shared,android.test.runner,com.android.location.provider,com.android.media.remotedisplay,com.android.media.tv.remoteprovider,com.android.mediadrm.signer,com.extra.eventflow,com.google.android.gms,com.google.widevine.software.drm,com.mediatek.MtkBitmapFactory,com.mediatek.common.PhotoPlayer,com.mediatek.common.audiocapture,com.mediatek.common.capture,com.mediatek.common.powercontrol,com.mediatek.dlna,com.mediatek.dm,com.mediatek.eventflow,com.mediatek.mmp,com.mediatek.record,com.mediatek.twoworlds.tv,com.mediatek.wfdsink,com.neulion.nlplayer,com.sony.csx.enclave.enclave_java_common,com.sony.csx.enclave.enclave_service_interfaces,com.sony.csx.enclave.enclave_wrapper_client,com.sony.device,com.sony.dtv.interactivetvplatform.discovery.interfaces.client,com.sony.dtv.interactivetvplatform.discovery.interfaces.event,com.sony.dtv.interactivetvplatform.discovery.interfaces.platform,com.sony.dtv.interactivetvutil.client,com.sony.dtv.ledcontrol,com.sony.dtv.photorenderlib,com.sony.dtv.quicksetup.logcollector,com.sony.dtv.recutil,com.sony.dtv.remotetouchpad.gesture,com.sony.dtv.scrums.action.libtvdotactionextension,com.sony.dtv.tvinput.provider.util,com.sony.dtv.tvinputrestrictionmanager,com.sony.dtv.tvworldutils,com.sony.eventflow,com.sony.snei.amsharedlib3,com.sonyericsson.colorextraction,com.sonyericsson.dlna.api,com.sonyericsson.dlna.api_2,com.sonyericsson.dlna.api_3,com.sonyericsson.dlna.api_4,com.sonyericsson.dlna.api_5,com.sonyericsson.dlna.api_6,com.sonymobile.drmstream.api,com.sonymobile.media.dashboard.extension.api,com.sonymobile.mediacontent_1,com.sonymobile.mediacontent_2,com.sonymobile.mediacontent_3,huey,javax.obex,jcifs,org.apache.http.legacy
|
||||
Features = android.hardware.audio.output,android.hardware.bluetooth,android.hardware.bluetooth_le,android.hardware.ethernet,android.hardware.hdmi.cec,android.hardware.location,android.hardware.location.network,android.hardware.opengles.aep,android.hardware.screen.landscape,android.hardware.type.television,android.hardware.usb.host,android.hardware.vulkan.level,android.hardware.vulkan.version,android.hardware.wifi,android.hardware.wifi.direct,android.software.backup,android.software.input_methods,android.software.leanback,android.software.leanback_only,android.software.live_tv,android.software.picture_in_picture,android.software.verified_boot,android.software.voice_recognizers,android.software.webview,com.google.android.tv.installed,com.sony.devices,com.sony.dtv,com.sony.dtv.hardware.hdr,com.sony.dtv.hardware.hdr.a,com.sony.dtv.hardware.panel.qfhd,nrdp.modelgroup
|
||||
Locales = ar,ast,bg,bg_BG,bs_BA,ca,ca_ES,cs,cs_CZ,da,da_DK,de,de_DE,el,el_GR,en,en_GB,es,es_ES,et_EE,eu,fi,fi_FI,fr,fr_BE,fr_FR,hr,hr_HR,hu,hu_HU,it,it_IT,iw,iw_IL,ja,kk_KZ,lt,lt_LT,lv,lv_LV,mk_MK,nb,nb_NO,nl,nl_NL,pl,pl_PL,pt,pt_BR,pt_PT,ro,ro_RO,ru,ru_RU,sk,sk_SK,sl,sl_SI,sr,sr_Latn,sr_RS,sv,sv_SE,tr,tr_TR,uk,uk_UA,zh
|
||||
GSF.version = 11951836
|
||||
Vending.version = 80793468
|
||||
Vending.versionString = 7.9.34.Q-xhdpi [8] [PR] 159126641
|
||||
CellOperator =
|
||||
SimOperator =
|
||||
Roaming = mobile-notroaming
|
||||
Client = android-google
|
||||
TimeZone = Europe/Rome
|
||||
GL.Extensions = GL_ANDROID_extension_pack_es31a,GL_ARM_mali_program_binary,GL_ARM_mali_shader_binary,GL_ARM_rgba8,GL_ARM_shader_framebuffer_fetch,GL_ARM_shader_framebuffer_fetch_depth_stencil,GL_EXT_YUV_target,GL_EXT_blend_minmax,GL_EXT_color_buffer_float,GL_EXT_color_buffer_half_float,GL_EXT_copy_image,GL_EXT_debug_marker,GL_EXT_discard_framebuffer,GL_EXT_disjoint_timer_query,GL_EXT_draw_buffers_indexed,GL_EXT_draw_elements_base_vertex,GL_EXT_geometry_shader,GL_EXT_gpu_shader5,GL_EXT_multisampled_render_to_texture,GL_EXT_occlusion_query_boolean,GL_EXT_primitive_bounding_box,GL_EXT_read_format_bgra,GL_EXT_robustness,GL_EXT_sRGB,GL_EXT_sRGB_write_control,GL_EXT_shader_io_blocks,GL_EXT_shader_pixel_local_storage,GL_EXT_shadow_samplers,GL_EXT_tessellation_shader,GL_EXT_texture_border_clamp,GL_EXT_texture_buffer,GL_EXT_texture_cube_map_array,GL_EXT_texture_format_BGRA8888,GL_EXT_texture_rg,GL_EXT_texture_sRGB_decode,GL_EXT_texture_storage,GL_EXT_texture_type_2_10_10_10_REV,GL_KHR_blend_equation_advanced,GL_KHR_blend_equation_advanced_coherent,GL_KHR_debug,GL_KHR_robust_buffer_access_behavior,GL_KHR_robustness,GL_KHR_texture_compression_astc_hdr,GL_KHR_texture_compression_astc_ldr,GL_KHR_texture_compression_astc_sliced_3d,GL_OES_EGL_image,GL_OES_EGL_image_external,GL_OES_EGL_image_external_essl3,GL_OES_EGL_sync,GL_OES_blend_equation_separate,GL_OES_blend_func_separate,GL_OES_blend_subtract,GL_OES_byte_coordinates,GL_OES_compressed_ETC1_RGB8_texture,GL_OES_compressed_paletted_texture,GL_OES_copy_image,GL_OES_depth24,GL_OES_depth_texture,GL_OES_depth_texture_cube_map,GL_OES_draw_buffers_indexed,GL_OES_draw_elements_base_vertex,GL_OES_draw_texture,GL_OES_element_index_uint,GL_OES_extended_matrix_palette,GL_OES_fbo_render_mipmap,GL_OES_fixed_point,GL_OES_framebuffer_object,GL_OES_geometry_shader,GL_OES_get_program_binary,GL_OES_gpu_shader5,GL_OES_mapbuffer,GL_OES_matrix_get,GL_OES_matrix_palette,GL_OES_packed_depth_stencil,GL_OES_point_size_array,GL_OES_point_sprite,GL_OES_primitive_bounding_box,GL_OES_query_matrix,GL_OES_read_format,GL_OES_required_internalformat,GL_OES_rgb8_rgba8,GL_OES_sample_shading,GL_OES_sample_variables,GL_OES_shader_image_atomic,GL_OES_shader_io_blocks,GL_OES_shader_multisample_interpolation,GL_OES_single_precision,GL_OES_standard_derivatives,GL_OES_stencil8,GL_OES_stencil_wrap,GL_OES_surfaceless_context,GL_OES_tessellation_shader,GL_OES_texture_3D,GL_OES_texture_border_clamp,GL_OES_texture_buffer,GL_OES_texture_compression_astc,GL_OES_texture_cube_map,GL_OES_texture_cube_map_array,GL_OES_texture_mirrored_repeat,GL_OES_texture_npot,GL_OES_texture_stencil8,GL_OES_texture_storage_multisample_2d_array,GL_OES_vertex_array_object,GL_OES_vertex_half_float,GL_OVR_multiview,GL_OVR_multiview2,GL_OVR_multiview_multisampled_render_to_texture
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
UserReadableName = Jolla C (api19)
|
||||
Build.HARDWARE = unknown
|
||||
Build.RADIO = unknown
|
||||
Build.BOOTLOADER = unknown
|
||||
Build.FINGERPRINT = Jolla/alien_jolla_l500d/alien_jolla_l500d:4.4.4/KTU84Q/eng.admin.20170314.161935:user/dev-keys
|
||||
Build.BRAND = Jolla
|
||||
Build.DEVICE = JP-1601
|
||||
Build.VERSION.SDK_INT = 19
|
||||
Build.MODEL = Jolla C
|
||||
Build.MANUFACTURER = Jolla
|
||||
Build.PRODUCT = Jolla C
|
||||
TouchScreen = 3
|
||||
Keyboard = 2
|
||||
Navigation = 2
|
||||
ScreenLayout = 2
|
||||
HasHardKeyboard = true
|
||||
HasFiveWayNavigation = true
|
||||
Screen.Density = 320
|
||||
Screen.Width = 720
|
||||
Screen.Height = 1184
|
||||
Platforms = armeabi-v7a,armeabi
|
||||
SharedLibraries = android.test.runner,com.android.location.provider,com.android.media.remotedisplay,javax.obex
|
||||
Features = android.hardware.sensor.proximity,android.hardware.sensor.accelerometer,android.hardware.faketouch,org.cyanogenmod.appsuggest,android.hardware.usb.accessory,android.hardware.telephony.cdma,android.software.backup,android.hardware.touchscreen,android.hardware.touchscreen.multitouch,android.software.print,android.hardware.consumerir,org.cyanogenmod.partner,org.cyanogenmod.telephony,android.software.voice_recognizers,android.hardware.fingerprint,android.hardware.sensor.gyroscope,android.hardware.audio.low_latency,android.hardware.opengles.aep,android.hardware.bluetooth,android.hardware.camera.autofocus,com.google.android.feature.GOOGLE_BUILD,android.hardware.telephony.gsm,android.software.sip.voip,org.cyanogenmod.profiles,android.hardware.usb.host,com.cyanogenmod.android,android.hardware.audio.output,android.hardware.camera.flash,android.hardware.camera.front,android.hardware.sensor.hifi_sensors,android.hardware.screen.portrait,android.hardware.nfc,com.nxp.mifare,android.hardware.sensor.stepdetector,org.cyanogenmod.audio,org.cyanogenmod.theme,android.software.home_screen,android.hardware.microphone,org.cyanogenmod.statusbar,android.hardware.bluetooth_le,android.hardware.sensor.compass,android.hardware.touchscreen.multitouch.jazzhand,android.hardware.sensor.barometer,android.software.app_widgets,android.software.input_methods,android.hardware.sensor.light,android.software.device_admin,android.hardware.camera,org.cyanogenmod.hardware,android.hardware.screen.landscape,org.cyanogenmod.weather,org.cyanogenmod.performance,android.software.managed_users,android.software.webview,android.hardware.sensor.stepcounter,android.hardware.camera.capability.manual_post_processing,org.cyanogenmod.livedisplay,android.hardware.camera.any,android.hardware.camera.capability.raw,android.software.connectionservice,android.hardware.touchscreen.multitouch.distinct,android.hardware.location.network,android.software.sip,android.hardware.camera.capability.manual_sensor,android.hardware.camera.level.full,android.hardware.wifi.direct,android.software.live_wallpaper,com.google.android.feature.GOOGLE_EXPERIENCE,com.google.android.feature.EXCHANGE_6_2,org.cyanogenmod.theme.v1,org.cyanogenmod.livelockscreen,android.hardware.location.gps,android.software.midi,android.hardware.nfc.hce,android.hardware.wifi,android.hardware.location,android.hardware.telephony
|
||||
Locales = af,af_NA,af_ZA,agq,ak,ak_GH,am,am_ET,ar,ar_AE,ar_BH,ar_DJ,ar_DZ,ar_EG,ar_EH,ar_ER,ar_IL,ar_IQ,ar_JO,ar_KM,ar_KW,ar_LB,ar_LY,ar_MA,ar_MR,ar_OM,ar_PS,ar_QA,ar_SA,ar_SD,ar_SO,ar_SY,ar_TD,ar_TN,ar_YE,as,as_IN,asa,az,bas,be,be_BY,bem,bez,bg,bg_BG,bm,bm_ML,bn,bn_BD,bn_IN,bo,bo_CN,bo_IN,br,br_FR,brx,bs,ca,ca_AD,ca_ES,cgg,chr,cs,cs_CZ,cy,cy_GB,da,da_DK,dav,de,de_AT,de_BE,de_CH,de_DE,de_LI,de_LU,dje,dua,dyo,dz,dz_BT,ebu,ee,ee_GH,ee_TG,el,el_CY,el_GR,en,en_AG,en_AS,en_AU,en_BB,en_BE,en_BM,en_BS,en_BW,en_BZ,en_CA,en_CM,en_DM,en_FJ,en_FM,en_GB,en_GD,en_GG,en_GH,en_GI,en_GM,en_GU,en_GY,en_HK,en_IE,en_IM,en_IN,en_JE,en_JM,en_KE,en_KI,en_KN,en_KY,en_LC,en_LR,en_LS,en_MG,en_MH,en_MP,en_MT,en_MU,en_MW,en_NA,en_NG,en_NZ,en_PG,en_PH,en_PK,en_PR,en_PW,en_SB,en_SC,en_SG,en_SL,en_SS,en_SZ,en_TC,en_TO,en_TT,en_TZ,en_UG,en_UM,en_US,en_VC,en_VG,en_VI,en_VU,en_WS,en_ZA,en_ZM,en_ZW,eo,es,es_AR,es_BO,es_CL,es_CO,es_CR,es_CU,es_DO,es_EA,es_EC,es_ES,es_GQ,es_GT,es_HN,es_IC,es_MX,es_NI,es_PA,es_PE,es_PH,es_PR,es_PY,es_SV,es_US,es_UY,es_VE,et,et_EE,eu,eu_ES,ewo,fa,fa_AF,fa_IR,ff,ff_SN,fi,fi_FI,fil,fo,fo_FO,fr,fr_BE,fr_BF,fr_BI,fr_BJ,fr_BL,fr_CA,fr_CD,fr_CF,fr_CG,fr_CH,fr_CI,fr_CM,fr_DJ,fr_DZ,fr_FR,fr_GA,fr_GF,fr_GN,fr_GP,fr_GQ,fr_HT,fr_KM,fr_LU,fr_MA,fr_MC,fr_MF,fr_MG,fr_ML,fr_MQ,fr_MR,fr_MU,fr_NC,fr_NE,fr_PF,fr_RE,fr_RW,fr_SC,fr_SN,fr_SY,fr_TD,fr_TG,fr_TN,fr_VU,fr_YT,ga,ga_IE,gl,gl_ES,gsw,gu,gu_IN,guz,gv,gv_GB,ha,haw,iw,iw_IL,hi,hi_IN,hr,hr_BA,hr_HR,hu,hu_HU,hy,hy_AM,in,in_ID,ig,ig_NG,ii,ii_CN,is,is_IS,it,it_CH,it_IT,it_SM,ja,ja_JP,jgo,jmc,ka,ka_GE,kab,kam,kde,kea,khq,ki,ki_KE,kk,kl,kl_GL,kln,km,km_KH,kn,kn_IN,ko,ko_KP,ko_KR,kok,ks,ksb,ksf,kw,kw_GB,lag,lg,lg_UG,ln,ln_AO,ln_CD,ln_CF,ln_CG,lo,lo_LA,lt,lt_LT,lu,lu_CD,luo,luy,lv,lv_LV,mas,mer,mfe,mg,mg_MG,mgh,mgo,mk,mk_MK,ml,ml_IN,mn,mr,mr_IN,ms,mt,mt_MT,mua,my,my_MM,naq,nb,nb_NO,nd,nd_ZW,ne,ne_IN,ne_NP,nl,nl_AW,nl_BE,nl_CW,nl_NL,nl_SR,nl_SX,nmg,nn,nn_NO,nus,nyn,om,om_ET,om_KE,or,or_IN,pa,pl,pl_PL,ps,ps_AF,pt,pt_AO,pt_BR,pt_CV,pt_GW,pt_MO,pt_MZ,pt_PT,pt_ST,pt_TL,rm,rm_CH,rn,rn_BI,ro,ro_MD,ro_RO,rof,ru,ru_BY,ru_KG,ru_KZ,ru_MD,ru_RU,ru_UA,rw,rw_RW,rwk,saq,sbp,seh,ses,sg,sg_CF,shi,si,si_LK,sk,sk_SK,sl,sl_SI,sn,sn_ZW,so,so_DJ,so_ET,so_KE,so_SO,sq,sq_AL,sq_MK,sr,sv,sv_AX,sv_FI,sv_SE,sw,sw_KE,sw_TZ,sw_UG,swc,ta,ta_IN,ta_LK,ta_MY,ta_SG,te,te_IN,teo,th,th_TH,ti,ti_ER,ti_ET,to,to_TO,tr,tr_CY,tr_TR,twq,tzm,uk,uk_UA,ur,ur_IN,ur_PK,uz,vai,vi,vi_VN,vun,xog,yav,yo,yo_NG,zh,zu,zu_ZA
|
||||
GL.Version = 131072
|
||||
GL.Extensions = GL_AMD_compressed_ATC_texture,GL_AMD_performance_monitor,GL_ANDROID_extension_pack_es31a,GL_APPLE_texture_2D_limited_npot,GL_ARB_vertex_buffer_object,GL_ARM_shader_framebuffer_fetch_depth_stencil,GL_EXT_YUV_target,GL_EXT_blit_framebuffer_params,GL_EXT_buffer_storage,GL_EXT_color_buffer_float,GL_EXT_color_buffer_half_float,GL_EXT_copy_image,GL_EXT_debug_label,GL_EXT_debug_marker,GL_EXT_discard_framebuffer,GL_EXT_disjoint_timer_query,GL_EXT_draw_buffers_indexed,GL_EXT_geometry_shader,GL_EXT_gpu_shader5,GL_EXT_multisampled_render_to_texture,GL_EXT_primitive_bounding_box,GL_EXT_robustness,GL_EXT_sRGB,GL_EXT_sRGB_write_control,GL_EXT_shader_framebuffer_fetch,GL_EXT_shader_io_blocks,GL_EXT_tessellation_shader,GL_EXT_texture_border_clamp,GL_EXT_texture_buffer,GL_EXT_texture_cube_map_array,GL_EXT_texture_filter_anisotropic,GL_EXT_texture_format_BGRA8888,GL_EXT_texture_norm16,GL_EXT_texture_sRGB_R8,GL_EXT_texture_sRGB_decode,GL_EXT_texture_type_2_10_10_10_REV,GL_KHR_blend_equation_advanced,GL_KHR_blend_equation_advanced_coherent,GL_KHR_debug,GL_KHR_no_error,GL_KHR_texture_compression_astc_hdr,GL_KHR_texture_compression_astc_ldr,GL_OES_EGL_image,GL_OES_EGL_image_external,GL_OES_EGL_sync,GL_OES_blend_equation_separate,GL_OES_blend_func_separate,GL_OES_blend_subtract,GL_OES_compressed_ETC1_RGB8_texture,GL_OES_compressed_paletted_texture,GL_OES_depth24,GL_OES_depth_texture,GL_OES_depth_texture_cube_map,GL_OES_draw_texture,GL_OES_element_index_uint,GL_OES_framebuffer_object,GL_OES_get_program_binary,GL_OES_matrix_palette,GL_OES_packed_depth_stencil,GL_OES_point_size_array,GL_OES_point_sprite,GL_OES_read_format,GL_OES_rgb8_rgba8,GL_OES_sample_shading,GL_OES_sample_variables,GL_OES_shader_image_atomic,GL_OES_shader_multisample_interpolation,GL_OES_standard_derivatives,GL_OES_stencil_wrap,GL_OES_surfaceless_context,GL_OES_texture_3D,GL_OES_texture_compression_astc,GL_OES_texture_cube_map,GL_OES_texture_env_crossbar,GL_OES_texture_float,GL_OES_texture_float_linear,GL_OES_texture_half_float,GL_OES_texture_half_float_linear,GL_OES_texture_mirrored_repeat,GL_OES_texture_npot,GL_OES_texture_stencil8,GL_OES_texture_storage_multisample_2d_array,GL_OES_vertex_array_object,GL_OES_vertex_half_float,GL_OVR_multiview,GL_OVR_multiview2,GL_OVR_multiview_multisampled_render_to_texture,GL_QCOM_alpha_test,GL_QCOM_extended_get,GL_QCOM_tiled_rendering,GL_EXT_multi_draw_arrays,GL_EXT_shader_texture_lod,GL_IMG_multisampled_render_to_texture,GL_IMG_program_binary,GL_IMG_read_format,GL_IMG_shader_binary,GL_IMG_texture_compression_pvrtc,GL_IMG_texture_format_BGRA8888,GL_IMG_texture_npot,GL_IMG_vertex_array_object,GL_OES_byte_coordinates,GL_OES_extended_matrix_palette,GL_OES_fixed_point,GL_OES_fragment_precision_high,GL_OES_mapbuffer,GL_OES_matrix_get,GL_OES_query_matrix,GL_OES_required_internalformat,GL_OES_single_precision,GL_OES_stencil8
|
||||
Roaming = mobile-notroaming
|
||||
TimeZone = Europe/Moscow
|
||||
CellOperator = 310260
|
||||
GSF.version = 10548448
|
||||
Vending.version = 80798000
|
||||
SimOperator = 310260
|
||||
Client = android-google
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
UserReadableName = ASUS MeMO Pad 7 x86 (api25)
|
||||
Build.HARDWARE = me176c
|
||||
Build.RADIO = unknown
|
||||
Build.BOOTLOADER = unknown
|
||||
Build.FINGERPRINT = asus/lineage_me176c/K013:7.1.2/NJH47F/4f334cf0f7:userdebug/release-keys
|
||||
Build.BRAND = asus
|
||||
Build.DEVICE = K013
|
||||
Build.VERSION.SDK_INT = 25
|
||||
Build.MODEL = ASUS MeMO Pad 7 (ME176C)
|
||||
Build.MANUFACTURER = ASUS
|
||||
Build.PRODUCT = lineage_me176c
|
||||
Build.ID = NJH47F
|
||||
Build.VERSION.RELEASE = 7.1.2
|
||||
TouchScreen = 3
|
||||
Keyboard = 1
|
||||
Navigation = 1
|
||||
ScreenLayout = 3
|
||||
HasHardKeyboard = false
|
||||
HasFiveWayNavigation = false
|
||||
GL.Version = 196609
|
||||
Screen.Density = 190
|
||||
Screen.Width = 800
|
||||
Screen.Height = 1223
|
||||
Platforms = x86,armeabi-v7a,armeabi
|
||||
SharedLibraries = android.ext.services,android.ext.shared,android.test.runner,com.android.future.usb.accessory,com.android.location.provider,com.android.media.remotedisplay,com.android.mediadrm.signer,javax.obex,org.apache.http.legacy,org.cyanogenmod.hardware,org.cyanogenmod.platform
|
||||
Features = android.hardware.audio.output,android.hardware.bluetooth,android.hardware.bluetooth_le,android.hardware.faketouch,android.hardware.location,android.hardware.location.network,android.hardware.microphone,android.hardware.screen.landscape,android.hardware.screen.portrait,android.hardware.sensor.accelerometer,android.hardware.sensor.compass,android.hardware.touchscreen,android.hardware.touchscreen.multitouch,android.hardware.touchscreen.multitouch.distinct,android.hardware.touchscreen.multitouch.jazzhand,android.hardware.usb.accessory,android.hardware.usb.host,android.hardware.vulkan.level,android.hardware.vulkan.version,android.hardware.wifi,android.software.app_widgets,android.software.backup,android.software.device_admin,android.software.home_screen,android.software.input_methods,android.software.live_wallpaper,android.software.managed_users,android.software.print,android.software.sip,android.software.sip.voip,android.software.voice_recognizers,android.software.webview,com.cyanogenmod.android,org.cyanogenmod.audio,org.cyanogenmod.hardware,org.cyanogenmod.livedisplay,org.cyanogenmod.performance,org.cyanogenmod.profiles,org.cyanogenmod.statusbar,org.cyanogenmod.telephony,org.cyanogenmod.weather,projekt.substratum.theme
|
||||
Locales = af,af_ZA,am,am_ET,ar,ar_EG,ar_XB,ast,ast_ES,az_AZ,be_BY,bg,bg_BG,bn_BD,bs_BA,ca,ca_ES,cs,cs_CZ,da,da_DK,de,de_AT,de_CH,de_DE,de_LI,el,el_GR,en,en_AU,en_CA,en_GB,en_IN,en_NZ,en_SG,en_US,en_XA,eo,es,es_ES,es_US,et_EE,eu,eu_ES,fa,fa_IR,fi,fi_FI,fil,fil_PH,fr,fr_BE,fr_CA,fr_CH,fr_FR,gl_ES,gu_IN,hi,hi_IN,hr,hr_HR,hu,hu_HU,hy_AM,in,in_ID,is_IS,it,it_CH,it_IT,iw,iw_IL,ja,ja_JP,ka_GE,kk_KZ,km_KH,kn_IN,ko,ko_KR,ku,ky_KG,lb,lo_LA,lt,lt_LT,lv,lv_LV,mk_MK,ml_IN,mn_MN,mr_IN,ms_MY,my_MM,nb,nb_NO,ne_NP,nl,nl_BE,nl_NL,pa_IN,pl,pl_PL,pt,pt_BR,pt_PT,ro,ro_RO,ru,ru_RU,si_LK,sk,sk_SK,sl,sl_SI,sq_AL,sr,sr_RS,sv,sv_SE,sw,sw_TZ,ta_IN,te_IN,th,th_TH,tr,tr_TR,uk,uk_UA,ur_PK,uz_UZ,vi,vi_VN,zh,zh_CN,zh_HK,zh_TW,zu,zu_ZA
|
||||
GSF.version = 10548448
|
||||
Vending.version = 80798000
|
||||
CellOperator =
|
||||
SimOperator =
|
||||
Roaming = mobile-notroaming
|
||||
Client = android-google
|
||||
TimeZone = Asia/Yekaterinburg
|
||||
GL.Extensions = GL_ANGLE_texture_compression_dxt3,GL_ANGLE_texture_compression_dxt5,GL_APPLE_texture_max_level,GL_EXT_blend_func_extended,GL_EXT_blend_minmax,GL_EXT_clip_cull_distance,GL_EXT_color_buffer_float,GL_EXT_compressed_ETC1_RGB8_sub_texture,GL_EXT_copy_image,GL_EXT_debug_marker,GL_EXT_discard_framebuffer,GL_EXT_draw_buffers,GL_EXT_draw_buffers_indexed,GL_EXT_draw_elements_base_vertex,GL_EXT_frag_depth,GL_EXT_map_buffer_range,GL_EXT_multi_draw_arrays,GL_EXT_polygon_offset_clamp,GL_EXT_read_format_bgra,GL_EXT_robustness,GL_EXT_separate_shader_objects,GL_EXT_shader_integer_mix,GL_EXT_texture_border_clamp,GL_EXT_texture_compression_dxt1,GL_EXT_texture_filter_anisotropic,GL_EXT_texture_format_BGRA8888,GL_EXT_texture_lod_bias,GL_EXT_texture_rg,GL_EXT_texture_sRGB_decode,GL_EXT_texture_type_2_10_10_10_REV,GL_EXT_unpack_subimage,GL_INTEL_performance_query,GL_KHR_blend_equation_advanced,GL_KHR_context_flush_control,GL_KHR_debug,GL_KHR_no_error,GL_KHR_robust_buffer_access_behavior,GL_KHR_robustness,GL_MESA_shader_integer_functions,GL_NV_draw_buffers,GL_NV_fbo_color_attachments,GL_NV_read_buffer,GL_NV_read_depth,GL_NV_read_depth_stencil,GL_NV_read_stencil,GL_OES_EGL_image,GL_OES_EGL_image_external,GL_OES_EGL_sync,GL_OES_blend_equation_separate,GL_OES_blend_func_separate,GL_OES_blend_subtract,GL_OES_byte_coordinates,GL_OES_compressed_ETC1_RGB8_texture,GL_OES_compressed_paletted_texture,GL_OES_copy_image,GL_OES_depth24,GL_OES_depth_texture,GL_OES_depth_texture_cube_map,GL_OES_draw_buffers_indexed,GL_OES_draw_elements_base_vertex,GL_OES_draw_texture,GL_OES_element_index_uint,GL_OES_fbo_render_mipmap,GL_OES_fixed_point,GL_OES_framebuffer_object,GL_OES_get_program_binary,GL_OES_mapbuffer,GL_OES_packed_depth_stencil,GL_OES_point_size_array,GL_OES_point_sprite,GL_OES_query_matrix,GL_OES_read_format,GL_OES_rgb8_rgba8,GL_OES_sample_shading,GL_OES_sample_variables,GL_OES_shader_multisample_interpolation,GL_OES_single_precision,GL_OES_standard_derivatives,GL_OES_stencil8,GL_OES_stencil_wrap,GL_OES_surfaceless_context,GL_OES_texture_3D,GL_OES_texture_border_clamp,GL_OES_texture_cube_map,GL_OES_texture_env_crossbar,GL_OES_texture_float,GL_OES_texture_float_linear,GL_OES_texture_half_float,GL_OES_texture_half_float_linear,GL_OES_texture_mirrored_repeat,GL_OES_texture_npot,GL_OES_vertex_array_object,GL_OES_vertex_half_float
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
UserReadableName = Samsung SPH-M930 hwkb (api10)
|
||||
Build.FINGERPRINT = samsung/SPH-M930/SPH-M930:2.3.6/GINGERBREAD/FG11:user/release-keys
|
||||
Build.HARDWARE = SPH-M930
|
||||
Build.BRAND = samsung
|
||||
Build.RADIO = unknown
|
||||
Build.BOOTLOADER = unknown
|
||||
Build.DEVICE = SPH-M930
|
||||
Build.VERSION.SDK_INT = 10
|
||||
Build.MODEL = SPH-M930
|
||||
Build.MANUFACTURER = samsung
|
||||
Build.PRODUCT = SPH-M930
|
||||
TouchScreen = 3
|
||||
Keyboard = 2
|
||||
Navigation = 2
|
||||
ScreenLayout = 2
|
||||
HasHardKeyboard = true
|
||||
HasFiveWayNavigation = true
|
||||
Screen.Density = 160
|
||||
Screen.Width = 320
|
||||
Screen.Height = 480
|
||||
Platforms = armeabi-v7a,armeabi
|
||||
SharedLibraries = javax.obex,com.qualcomm.location.vzw_library,android.test.runner,touchwiz,com.google.android.maps,com.android.location.provider,com.samsung.device,sec_feature
|
||||
Features = android.hardware.sensor.proximity,android.hardware.sensor.accelerometer,android.hardware.faketouch,org.cyanogenmod.appsuggest,android.hardware.usb.accessory,android.hardware.telephony.cdma,android.software.backup,android.hardware.touchscreen,android.hardware.touchscreen.multitouch,android.software.print,android.hardware.consumerir,org.cyanogenmod.partner,org.cyanogenmod.telephony,android.software.voice_recognizers,android.hardware.fingerprint,android.hardware.sensor.gyroscope,android.hardware.audio.low_latency,android.hardware.opengles.aep,android.hardware.bluetooth,android.hardware.camera.autofocus,com.google.android.feature.GOOGLE_BUILD,android.hardware.telephony.gsm,android.software.sip.voip,org.cyanogenmod.profiles,android.hardware.usb.host,com.cyanogenmod.android,android.hardware.audio.output,android.hardware.camera.flash,android.hardware.camera.front,android.hardware.sensor.hifi_sensors,android.hardware.screen.portrait,android.hardware.nfc,com.nxp.mifare,android.hardware.sensor.stepdetector,org.cyanogenmod.audio,org.cyanogenmod.theme,android.software.home_screen,android.hardware.microphone,org.cyanogenmod.statusbar,android.hardware.bluetooth_le,android.hardware.sensor.compass,android.hardware.touchscreen.multitouch.jazzhand,android.hardware.sensor.barometer,android.software.app_widgets,android.software.input_methods,android.hardware.sensor.light,android.software.device_admin,android.hardware.camera,org.cyanogenmod.hardware,android.hardware.screen.landscape,org.cyanogenmod.weather,org.cyanogenmod.performance,android.software.managed_users,android.software.webview,android.hardware.sensor.stepcounter,android.hardware.camera.capability.manual_post_processing,org.cyanogenmod.livedisplay,android.hardware.camera.any,android.hardware.camera.capability.raw,android.software.connectionservice,android.hardware.touchscreen.multitouch.distinct,android.hardware.location.network,android.software.sip,android.hardware.camera.capability.manual_sensor,android.hardware.camera.level.full,android.hardware.wifi.direct,android.software.live_wallpaper,com.google.android.feature.GOOGLE_EXPERIENCE,com.google.android.feature.EXCHANGE_6_2,org.cyanogenmod.theme.v1,org.cyanogenmod.livelockscreen,android.hardware.location.gps,android.software.midi,android.hardware.nfc.hce,android.hardware.wifi,android.hardware.location,android.hardware.telephony
|
||||
Locales = en,en_AU,en_BE,en_BW,en_BZ,en_CA,en_GB,en_HK,en_IE,en_IN,en_JM,en_MH,en_MT,en_NA,en_NZ,en_PH,en_PK,en_SG,en_TT,en_US,en_VI,en_ZA,en_ZW,es,es_US
|
||||
Client = android-google
|
||||
GSF.version = 10548448
|
||||
Vending.version = 80798000
|
||||
CellOperator = 310260
|
||||
SimOperator = 310260
|
||||
Roaming = mobile-notroaming
|
||||
TimeZone = Europe/Moscow
|
||||
GL.Version = 131072
|
||||
GL.Extensions = GL_AMD_compressed_ATC_texture,GL_AMD_performance_monitor,GL_ANDROID_extension_pack_es31a,GL_APPLE_texture_2D_limited_npot,GL_ARB_vertex_buffer_object,GL_ARM_shader_framebuffer_fetch_depth_stencil,GL_EXT_YUV_target,GL_EXT_blit_framebuffer_params,GL_EXT_buffer_storage,GL_EXT_color_buffer_float,GL_EXT_color_buffer_half_float,GL_EXT_copy_image,GL_EXT_debug_label,GL_EXT_debug_marker,GL_EXT_discard_framebuffer,GL_EXT_disjoint_timer_query,GL_EXT_draw_buffers_indexed,GL_EXT_geometry_shader,GL_EXT_gpu_shader5,GL_EXT_multisampled_render_to_texture,GL_EXT_primitive_bounding_box,GL_EXT_robustness,GL_EXT_sRGB,GL_EXT_sRGB_write_control,GL_EXT_shader_framebuffer_fetch,GL_EXT_shader_io_blocks,GL_EXT_tessellation_shader,GL_EXT_texture_border_clamp,GL_EXT_texture_buffer,GL_EXT_texture_cube_map_array,GL_EXT_texture_filter_anisotropic,GL_EXT_texture_format_BGRA8888,GL_EXT_texture_norm16,GL_EXT_texture_sRGB_R8,GL_EXT_texture_sRGB_decode,GL_EXT_texture_type_2_10_10_10_REV,GL_KHR_blend_equation_advanced,GL_KHR_blend_equation_advanced_coherent,GL_KHR_debug,GL_KHR_no_error,GL_KHR_texture_compression_astc_hdr,GL_KHR_texture_compression_astc_ldr,GL_OES_EGL_image,GL_OES_EGL_image_external,GL_OES_EGL_sync,GL_OES_blend_equation_separate,GL_OES_blend_func_separate,GL_OES_blend_subtract,GL_OES_compressed_ETC1_RGB8_texture,GL_OES_compressed_paletted_texture,GL_OES_depth24,GL_OES_depth_texture,GL_OES_depth_texture_cube_map,GL_OES_draw_texture,GL_OES_element_index_uint,GL_OES_framebuffer_object,GL_OES_get_program_binary,GL_OES_matrix_palette,GL_OES_packed_depth_stencil,GL_OES_point_size_array,GL_OES_point_sprite,GL_OES_read_format,GL_OES_rgb8_rgba8,GL_OES_sample_shading,GL_OES_sample_variables,GL_OES_shader_image_atomic,GL_OES_shader_multisample_interpolation,GL_OES_standard_derivatives,GL_OES_stencil_wrap,GL_OES_surfaceless_context,GL_OES_texture_3D,GL_OES_texture_compression_astc,GL_OES_texture_cube_map,GL_OES_texture_env_crossbar,GL_OES_texture_float,GL_OES_texture_float_linear,GL_OES_texture_half_float,GL_OES_texture_half_float_linear,GL_OES_texture_mirrored_repeat,GL_OES_texture_npot,GL_OES_texture_stencil8,GL_OES_texture_storage_multisample_2d_array,GL_OES_vertex_array_object,GL_OES_vertex_half_float,GL_OVR_multiview,GL_OVR_multiview2,GL_OVR_multiview_multisampled_render_to_texture,GL_QCOM_alpha_test,GL_QCOM_extended_get,GL_QCOM_tiled_rendering,GL_EXT_multi_draw_arrays,GL_EXT_shader_texture_lod,GL_IMG_multisampled_render_to_texture,GL_IMG_program_binary,GL_IMG_read_format,GL_IMG_shader_binary,GL_IMG_texture_compression_pvrtc,GL_IMG_texture_format_BGRA8888,GL_IMG_texture_npot,GL_IMG_vertex_array_object,GL_OES_byte_coordinates,GL_OES_extended_matrix_palette,GL_OES_fixed_point,GL_OES_fragment_precision_high,GL_OES_mapbuffer,GL_OES_matrix_get,GL_OES_query_matrix,GL_OES_required_internalformat,GL_OES_single_precision,GL_OES_stencil8
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
UserReadableName = Intel 3G i80 x86 tablet (api19)
|
||||
Build.FINGERPRINT = intel/anzhen4_mrd7_64/anzhen4_mrd7:4.4.4/KTU84P/eng.root.20150617.094743:user/dev-keys
|
||||
Build.HARDWARE = anzhen4_mrd7
|
||||
Build.BRAND = Tab_8_4C
|
||||
Build.RADIO = unknown
|
||||
Build.BOOTLOADER = unknown
|
||||
Build.DEVICE = Tab_8_4C
|
||||
Build.VERSION.SDK_INT = 19
|
||||
Build.MODEL = 3G i80
|
||||
Build.MANUFACTURER = intel
|
||||
Build.PRODUCT = Tab_8_4C
|
||||
TouchScreen = 3
|
||||
Keyboard = 1
|
||||
Navigation = 1
|
||||
ScreenLayout = 4
|
||||
HasHardKeyboard = false
|
||||
HasFiveWayNavigation = false
|
||||
Screen.Density = 160
|
||||
Screen.Width = 800
|
||||
Screen.Height = 1232
|
||||
Platforms = x86,armeabi-v7a
|
||||
SharedLibraries = javax.obex,com.android.future.usb.accessory,android.test.runner,com.intel.asf,com.android.media.remotedisplay,com.intel.config,com.intel.camera.extensions,com.google.android.media.effects,com.intel.widi.sink,com.intel.security.service.sepmanager,com.google.android.maps,com.android.location.provider,com.google.android.gms,com.intel.security.lib.sepdrmjni,com.intel.multidisplay
|
||||
Features = android.hardware.sensor.proximity,android.hardware.sensor.accelerometer,android.hardware.faketouch,org.cyanogenmod.appsuggest,android.hardware.usb.accessory,android.hardware.telephony.cdma,android.software.backup,android.hardware.touchscreen,android.hardware.touchscreen.multitouch,android.software.print,android.hardware.consumerir,org.cyanogenmod.partner,org.cyanogenmod.telephony,android.software.voice_recognizers,android.hardware.fingerprint,android.hardware.sensor.gyroscope,android.hardware.audio.low_latency,android.hardware.opengles.aep,android.hardware.bluetooth,android.hardware.camera.autofocus,com.google.android.feature.GOOGLE_BUILD,android.hardware.telephony.gsm,android.software.sip.voip,org.cyanogenmod.profiles,android.hardware.usb.host,com.cyanogenmod.android,android.hardware.audio.output,android.hardware.camera.flash,android.hardware.camera.front,android.hardware.sensor.hifi_sensors,android.hardware.screen.portrait,android.hardware.nfc,com.nxp.mifare,android.hardware.sensor.stepdetector,org.cyanogenmod.audio,org.cyanogenmod.theme,android.software.home_screen,android.hardware.microphone,org.cyanogenmod.statusbar,android.hardware.bluetooth_le,android.hardware.sensor.compass,android.hardware.touchscreen.multitouch.jazzhand,android.hardware.sensor.barometer,android.software.app_widgets,android.software.input_methods,android.hardware.sensor.light,android.software.device_admin,android.hardware.camera,org.cyanogenmod.hardware,android.hardware.screen.landscape,org.cyanogenmod.weather,org.cyanogenmod.performance,android.software.managed_users,android.software.webview,android.hardware.sensor.stepcounter,android.hardware.camera.capability.manual_post_processing,org.cyanogenmod.livedisplay,android.hardware.camera.any,android.hardware.camera.capability.raw,android.software.connectionservice,android.hardware.touchscreen.multitouch.distinct,android.hardware.location.network,android.software.sip,android.hardware.camera.capability.manual_sensor,android.hardware.camera.level.full,android.hardware.wifi.direct,android.software.live_wallpaper,com.google.android.feature.GOOGLE_EXPERIENCE,com.google.android.feature.EXCHANGE_6_2,org.cyanogenmod.theme.v1,org.cyanogenmod.livelockscreen,android.hardware.location.gps,android.software.midi,android.hardware.nfc.hce,android.hardware.wifi,android.hardware.location,android.hardware.telephony
|
||||
Locales = af,af_NA,af_ZA,agq,ak,ak_GH,am,am_ET,ar,ar_AE,ar_BH,ar_DJ,ar_DZ,ar_EG,ar_EH,ar_ER,ar_IL,ar_IQ,ar_JO,ar_KM,ar_KW,ar_LB,ar_LY,ar_MA,ar_MR,ar_OM,ar_PS,ar_QA,ar_SA,ar_SD,ar_SO,ar_SY,ar_TD,ar_TN,ar_YE,as,as_IN,asa,az,bas,be,be_BY,bem,bez,bg,bg_BG,bm,bm_ML,bn,bn_BD,bn_IN,bo,bo_CN,bo_IN,br,br_FR,brx,bs,ca,ca_AD,ca_ES,cgg,chr,cs,cs_CZ,cy,cy_GB,da,da_DK,dav,de,de_AT,de_BE,de_CH,de_DE,de_LI,de_LU,dje,dua,dyo,dz,dz_BT,ebu,ee,ee_GH,ee_TG,el,el_CY,el_GR,en,en_AG,en_AS,en_AU,en_BB,en_BE,en_BM,en_BS,en_BW,en_BZ,en_CA,en_CM,en_DM,en_FJ,en_FM,en_GB,en_GD,en_GG,en_GH,en_GI,en_GM,en_GU,en_GY,en_HK,en_IE,en_IM,en_IN,en_JE,en_JM,en_KE,en_KI,en_KN,en_KY,en_LC,en_LR,en_LS,en_MG,en_MH,en_MP,en_MT,en_MU,en_MW,en_NA,en_NG,en_NZ,en_PG,en_PH,en_PK,en_PR,en_PW,en_SB,en_SC,en_SG,en_SL,en_SS,en_SZ,en_TC,en_TO,en_TT,en_TZ,en_UG,en_UM,en_US,en_VC,en_VG,en_VI,en_VU,en_WS,en_ZA,en_ZM,en_ZW,eo,es,es_AR,es_BO,es_CL,es_CO,es_CR,es_CU,es_DO,es_EA,es_EC,es_ES,es_GQ,es_GT,es_HN,es_IC,es_MX,es_NI,es_PA,es_PE,es_PH,es_PR,es_PY,es_SV,es_US,es_UY,es_VE,et,et_EE,eu,eu_ES,ewo,fa,fa_AF,fa_IR,ff,ff_SN,fi,fi_FI,fil,fo,fo_FO,fr,fr_BE,fr_BF,fr_BI,fr_BJ,fr_BL,fr_CA,fr_CD,fr_CF,fr_CG,fr_CH,fr_CI,fr_CM,fr_DJ,fr_DZ,fr_FR,fr_GA,fr_GF,fr_GN,fr_GP,fr_GQ,fr_HT,fr_KM,fr_LU,fr_MA,fr_MC,fr_MF,fr_MG,fr_ML,fr_MQ,fr_MR,fr_MU,fr_NC,fr_NE,fr_PF,fr_RE,fr_RW,fr_SC,fr_SN,fr_SY,fr_TD,fr_TG,fr_TN,fr_VU,fr_YT,ga,ga_IE,gl,gl_ES,gsw,gu,gu_IN,guz,gv,gv_GB,ha,haw,iw,iw_IL,hi,hi_IN,hr,hr_BA,hr_HR,hu,hu_HU,hy,hy_AM,in,in_ID,ig,ig_NG,ii,ii_CN,is,is_IS,it,it_CH,it_IT,it_SM,ja,ja_JP,jgo,jmc,ka,ka_GE,kab,kam,kde,kea,khq,ki,ki_KE,kk,kl,kl_GL,kln,km,km_KH,kn,kn_IN,ko,ko_KP,ko_KR,kok,ks,ksb,ksf,kw,kw_GB,lag,lg,lg_UG,ln,ln_AO,ln_CD,ln_CF,ln_CG,lo,lo_LA,lt,lt_LT,lu,lu_CD,luo,luy,lv,lv_LV,mas,mer,mfe,mg,mg_MG,mgh,mgo,mk,mk_MK,ml,ml_IN,mn,mr,mr_IN,ms,mt,mt_MT,mua,my,my_MM,naq,nb,nb_NO,nd,nd_ZW,ne,ne_IN,ne_NP,nl,nl_AW,nl_BE,nl_CW,nl_NL,nl_SR,nl_SX,nmg,nn,nn_NO,nus,nyn,om,om_ET,om_KE,or,or_IN,pa,pl,pl_PL,ps,ps_AF,pt,pt_AO,pt_BR,pt_CV,pt_GW,pt_MO,pt_MZ,pt_PT,pt_ST,pt_TL,rm,rm_CH,rn,rn_BI,ro,ro_MD,ro_RO,rof,ru,ru_BY,ru_KG,ru_KZ,ru_MD,ru_RU,ru_UA,rw,rw_RW,rwk,saq,sbp,seh,ses,sg,sg_CF,shi,si,si_LK,sk,sk_SK,sl,sl_SI,sn,sn_ZW,so,so_DJ,so_ET,so_KE,so_SO,sq,sq_AL,sq_MK,sr,sv,sv_AX,sv_FI,sv_SE,sw,sw_KE,sw_TZ,sw_UG,swc,ta,ta_IN,ta_LK,ta_MY,ta_SG,te,te_IN,teo,th,th_TH,ti,ti_ER,ti_ET,to,to_TO,tr,tr_CY,tr_TR,twq,tzm,uk,uk_UA,ur,ur_IN,ur_PK,uz,vai,vi,vi_VN,vun,xog,yav,yo,yo_NG,zh,zu,zu_ZA
|
||||
Client = android-google
|
||||
GSF.version = 10548448
|
||||
Vending.version = 80798000
|
||||
CellOperator = 310260
|
||||
SimOperator = 310260
|
||||
Roaming = mobile-notroaming
|
||||
TimeZone = Europe/Moscow
|
||||
GL.Version = 131072
|
||||
GL.Extensions = GL_AMD_compressed_ATC_texture,GL_AMD_performance_monitor,GL_ANDROID_extension_pack_es31a,GL_APPLE_texture_2D_limited_npot,GL_ARB_vertex_buffer_object,GL_ARM_shader_framebuffer_fetch_depth_stencil,GL_EXT_YUV_target,GL_EXT_blit_framebuffer_params,GL_EXT_buffer_storage,GL_EXT_color_buffer_float,GL_EXT_color_buffer_half_float,GL_EXT_copy_image,GL_EXT_debug_label,GL_EXT_debug_marker,GL_EXT_discard_framebuffer,GL_EXT_disjoint_timer_query,GL_EXT_draw_buffers_indexed,GL_EXT_geometry_shader,GL_EXT_gpu_shader5,GL_EXT_multisampled_render_to_texture,GL_EXT_primitive_bounding_box,GL_EXT_robustness,GL_EXT_sRGB,GL_EXT_sRGB_write_control,GL_EXT_shader_framebuffer_fetch,GL_EXT_shader_io_blocks,GL_EXT_tessellation_shader,GL_EXT_texture_border_clamp,GL_EXT_texture_buffer,GL_EXT_texture_cube_map_array,GL_EXT_texture_filter_anisotropic,GL_EXT_texture_format_BGRA8888,GL_EXT_texture_norm16,GL_EXT_texture_sRGB_R8,GL_EXT_texture_sRGB_decode,GL_EXT_texture_type_2_10_10_10_REV,GL_KHR_blend_equation_advanced,GL_KHR_blend_equation_advanced_coherent,GL_KHR_debug,GL_KHR_no_error,GL_KHR_texture_compression_astc_hdr,GL_KHR_texture_compression_astc_ldr,GL_OES_EGL_image,GL_OES_EGL_image_external,GL_OES_EGL_sync,GL_OES_blend_equation_separate,GL_OES_blend_func_separate,GL_OES_blend_subtract,GL_OES_compressed_ETC1_RGB8_texture,GL_OES_compressed_paletted_texture,GL_OES_depth24,GL_OES_depth_texture,GL_OES_depth_texture_cube_map,GL_OES_draw_texture,GL_OES_element_index_uint,GL_OES_framebuffer_object,GL_OES_get_program_binary,GL_OES_matrix_palette,GL_OES_packed_depth_stencil,GL_OES_point_size_array,GL_OES_point_sprite,GL_OES_read_format,GL_OES_rgb8_rgba8,GL_OES_sample_shading,GL_OES_sample_variables,GL_OES_shader_image_atomic,GL_OES_shader_multisample_interpolation,GL_OES_standard_derivatives,GL_OES_stencil_wrap,GL_OES_surfaceless_context,GL_OES_texture_3D,GL_OES_texture_compression_astc,GL_OES_texture_cube_map,GL_OES_texture_env_crossbar,GL_OES_texture_float,GL_OES_texture_float_linear,GL_OES_texture_half_float,GL_OES_texture_half_float_linear,GL_OES_texture_mirrored_repeat,GL_OES_texture_npot,GL_OES_texture_stencil8,GL_OES_texture_storage_multisample_2d_array,GL_OES_vertex_array_object,GL_OES_vertex_half_float,GL_OVR_multiview,GL_OVR_multiview2,GL_OVR_multiview_multisampled_render_to_texture,GL_QCOM_alpha_test,GL_QCOM_extended_get,GL_QCOM_tiled_rendering,GL_EXT_multi_draw_arrays,GL_EXT_shader_texture_lod,GL_IMG_multisampled_render_to_texture,GL_IMG_program_binary,GL_IMG_read_format,GL_IMG_shader_binary,GL_IMG_texture_compression_pvrtc,GL_IMG_texture_format_BGRA8888,GL_IMG_texture_npot,GL_IMG_vertex_array_object,GL_OES_byte_coordinates,GL_OES_extended_matrix_palette,GL_OES_fixed_point,GL_OES_fragment_precision_high,GL_OES_mapbuffer,GL_OES_matrix_get,GL_OES_query_matrix,GL_OES_required_internalformat,GL_OES_single_precision,GL_OES_stencil8
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
UserReadableName = Jolla Alien Dalvik (api16)
|
||||
Build.HARDWARE = unknown
|
||||
Build.RADIO = unknown
|
||||
Build.BOOTLOADER = unknown
|
||||
Build.FINGERPRINT = Jolla/alien_jolla_bionic/alien_jolla_bionic:4.1.2/JZO54K/eng.erin.20151105.144423:user/dev-keys
|
||||
Build.BRAND = Jolla
|
||||
Build.DEVICE = alien_jolla_bionic
|
||||
Build.VERSION.SDK_INT = 16
|
||||
Build.MODEL = Jolla
|
||||
Build.MANUFACTURER = unknown
|
||||
Build.PRODUCT = alien_jolla_bionic
|
||||
Build.ID = JZO54K
|
||||
Build.VERSION.RELEASE = 4.1.2
|
||||
TouchScreen = 3
|
||||
Keyboard = 2
|
||||
Navigation = 2
|
||||
ScreenLayout = 2
|
||||
HasHardKeyboard = true
|
||||
HasFiveWayNavigation = true
|
||||
GL.Version = 131072
|
||||
Screen.Density = 240
|
||||
Screen.Width = 540
|
||||
Screen.Height = 888
|
||||
Platforms = armeabi-v7a,armeabi
|
||||
SharedLibraries = android.test.runner,com.android.location.provider,com.google.android.maps,javax.btobex,javax.obex
|
||||
Features = android.hardware.camera,android.hardware.camera.autofocus,android.hardware.location,android.hardware.location.gps,android.hardware.location.network,android.hardware.microphone,android.hardware.screen.landscape,android.hardware.screen.portrait,android.hardware.sensor.accelerometer,android.hardware.sensor.compass,android.hardware.sensor.light,android.hardware.sensor.proximity,android.hardware.telephony,android.hardware.telephony.gsm,android.hardware.touchscreen,android.hardware.touchscreen.multitouch,android.hardware.touchscreen.multitouch.jazzhand,android.hardware.wifi,com.myriadgroup.alien
|
||||
Locales = af,af_NA,af_ZA,agq,agq_CM,ak,ak_GH,am,am_ET,ar,ar_AE,ar_BH,ar_DZ,ar_EG,ar_IQ,ar_JO,ar_KW,ar_LB,ar_LY,ar_MA,ar_OM,ar_QA,ar_SA,ar_SD,ar_SY,ar_TN,ar_YE,as,as_IN,asa,asa_TZ,az,az_CYRL,az_CYRL_AZ,az_LATN,az_LATN_AZ,bas,bas_CM,be,be_BY,bem,bem_ZM,bez,bez_TZ,bg,bg_BG,bm,bm_ML,bn,bn_BD,bn_IN,bo,bo_CN,bo_IN,br,br_FR,brx,brx_IN,bs,bs_BA,ca,ca_ES,cgg,cgg_UG,chr,chr_US,cs,cs_CZ,cy,cy_GB,da,da_DK,dav,dav_KE,de,de_AT,de_BE,de_CH,de_DE,de_LI,de_LU,dje,dje_NE,dua,dua_CM,dyo,dyo_SN,ebu,ebu_KE,ee,ee_GH,ee_TG,el,el_CY,el_GR,en,en_AS,en_AU,en_BB,en_BE,en_BM,en_BW,en_BZ,en_CA,en_GB,en_GU,en_GY,en_HK,en_IE,en_IN,en_JM,en_MH,en_MP,en_MT,en_MU,en_NA,en_NZ,en_PH,en_PK,en_SG,en_TT,en_UM,en_US,en_US_POSIX,en_VI,en_ZA,en_ZW,eo,es,es_419,es_AR,es_BO,es_CL,es_CO,es_CR,es_DO,es_EC,es_ES,es_GQ,es_GT,es_HN,es_MX,es_NI,es_PA,es_PE,es_PR,es_PY,es_SV,es_US,es_UY,es_VE,et,et_EE,eu,eu_ES,ewo,ewo_CM,fa,fa_AF,fa_IR,ff,ff_SN,fi,fi_FI,fil,fil_PH,fo,fo_FO,fr,fr_BE,fr_BF,fr_BI,fr_BJ,fr_BL,fr_CA,fr_CD,fr_CF,fr_CG,fr_CH,fr_CI,fr_CM,fr_DJ,fr_FR,fr_GA,fr_GF,fr_GN,fr_GP,fr_GQ,fr_KM,fr_LU,fr_MC,fr_MF,fr_MG,fr_ML,fr_MQ,fr_NE,fr_RE,fr_RW,fr_SN,fr_TD,fr_TG,fr_YT,ga,ga_IE,gl,gl_ES,gsw,gsw_CH,gu,gu_IN,guz,guz_KE,gv,gv_GB,ha,ha_LATN,ha_LATN_GH,ha_LATN_NE,ha_LATN_NG,haw,haw_US,hi,hi_IN,hr,hr_HR,hu,hu_HU,hy,hy_AM,ig,ig_NG,ii,ii_CN,in,in_ID,is,is_IS,it,it_CH,it_IT,iw,iw_IL,ja,ja_JP,jmc,jmc_TZ,ka,ka_GE,kab,kab_DZ,kam,kam_KE,kde,kde_TZ,kea,kea_CV,khq,khq_ML,ki,ki_KE,kk,kk_CYRL,kk_CYRL_KZ,kl,kl_GL,kln,kln_KE,km,km_KH,kn,kn_IN,ko,ko_KR,kok,kok_IN,ksb,ksb_TZ,ksf,ksf_CM,kw,kw_GB,lag,lag_TZ,lg,lg_UG,ln,ln_CD,ln_CG,lt,lt_LT,lu,lu_CD,luo,luo_KE,luy,luy_KE,lv,lv_LV,mas,mas_KE,mas_TZ,mer,mer_KE,mfe,mfe_MU,mg,mg_MG,mgh,mgh_MZ,mk,mk_MK,ml,ml_IN,mr,mr_IN,ms,ms_BN,ms_MY,mt,mt_MT,mua,mua_CM,my,my_MM,naq,naq_NA,nb,nb_NO,nd,nd_ZW,ne,ne_IN,ne_NP,nl,nl_AW,nl_BE,nl_NL,nmg,nmg_CM,nn,nn_NO,nus,nus_SD,nyn,nyn_UG,om,om_ET,om_KE,or,or_IN,pa,pa_ARAB,pa_ARAB_PK,pa_GURU,pa_GURU_IN,pl,pl_PL,ps,ps_AF,pt,pt_AO,pt_BR,pt_GW,pt_MZ,pt_PT,pt_ST,rm,rm_CH,rn,rn_BI,ro,ro_MD,ro_RO,rof,rof_TZ,ru,ru_MD,ru_RU,ru_UA,rw,rw_RW,rwk,rwk_TZ,saq,saq_KE,sbp,sbp_TZ,seh,seh_MZ,ses,ses_ML,sg,sg_CF,shi,shi_LATN,shi_LATN_MA,shi_TFNG,shi_TFNG_MA,si,si_LK,sk,sk_SK,sl,sl_SI,sn,sn_ZW,so,so_DJ,so_ET,so_KE,so_SO,sq,sq_AL,sr,sr_CYRL,sr_CYRL_BA,sr_CYRL_ME,sr_CYRL_RS,sr_LATN,sr_LATN_BA,sr_LATN_ME,sr_LATN_RS,sv,sv_FI,sv_SE,sw,sw_KE,sw_TZ,swc,swc_CD,ta,ta_IN,ta_LK,te,te_IN,teo,teo_KE,teo_UG,th,th_TH,ti,ti_ER,ti_ET,to,to_TO,tr,tr_TR,twq,twq_NE,tzm,tzm_LATN,tzm_LATN_MA,uk,uk_UA,ur,ur_IN,ur_PK,uz,uz_ARAB,uz_ARAB_AF,uz_CYRL,uz_CYRL_UZ,uz_LATN,uz_LATN_UZ,vai,vai_LATN,vai_LATN_LR,vai_VAII,vai_VAII_LR,vi,vi_VN,vun,vun_TZ,xog,xog_UG,yav,yav_CM,yo,yo_NG,zh,zh_HANS,zh_HANS_CN,zh_HANS_HK,zh_HANS_MO,zh_HANS_SG,zh_HANT,zh_HANT_HK,zh_HANT_MO,zh_HANT_TW,zu,zu_ZA
|
||||
GSF.version = 0
|
||||
Vending.version = 0
|
||||
Vending.versionString =
|
||||
CellOperator = 26201
|
||||
SimOperator = 26201
|
||||
Client = android-google
|
||||
GL.Extensions = GL_AMD_compressed_ATC_texture,GL_AMD_performance_monitor,GL_AMD_program_binary_Z400,GL_APPLE_texture_2D_limited_npot,GL_ARB_vertex_buffer_object,GL_EXT_debug_marker,GL_EXT_robustness,GL_EXT_sRGB,GL_EXT_texture_filter_anisotropic,GL_EXT_texture_format_BGRA8888,GL_EXT_texture_type_2_10_10_10_REV,GL_NV_fence,GL_OES_EGL_image,GL_OES_EGL_image_external,GL_OES_blend_equation_separate,GL_OES_blend_func_separate,GL_OES_blend_subtract,GL_OES_compressed_ETC1_RGB8_texture,GL_OES_compressed_paletted_texture,GL_OES_depth24,GL_OES_depth_texture,GL_OES_draw_texture,GL_OES_element_index_uint,GL_OES_fbo_render_mipmap,GL_OES_fragment_precision_high,GL_OES_framebuffer_object,GL_OES_get_program_binary,GL_OES_matrix_palette,GL_OES_packed_depth_stencil,GL_OES_point_size_array,GL_OES_point_sprite,GL_OES_read_format,GL_OES_rgb8_rgba8,GL_OES_standard_derivatives,GL_OES_stencil_wrap,GL_OES_texture_3D,GL_OES_texture_cube_map,GL_OES_texture_env_crossbar,GL_OES_texture_float,GL_OES_texture_half_float,GL_OES_texture_half_float_linear,GL_OES_texture_mirrored_repeat,GL_OES_texture_npot,GL_OES_vertex_array_object,GL_OES_vertex_half_float,GL_OES_vertex_type_10_10_10_2,GL_QCOM_alpha_test,GL_QCOM_binning_control,GL_QCOM_driver_control,GL_QCOM_extended_get,GL_QCOM_extended_get2,GL_QCOM_perfmon_global_mode,GL_QCOM_tiled_rendering,GL_QCOM_writeonly_rendering
|
||||
TimeZone = Europe/Berlin
|
||||
Roaming = mobile-notroaming
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
UserReadableName = Nexus 6P (api27)
|
||||
Build.HARDWARE = angler
|
||||
Build.RADIO = unknown
|
||||
Build.BOOTLOADER = angler-03.78
|
||||
Build.FINGERPRINT = google/angler/angler:8.1.0/OPP6.171019.012/4453975:user/release-keys
|
||||
Build.BRAND = google
|
||||
Build.DEVICE = angler
|
||||
Build.VERSION.SDK_INT = 27
|
||||
Build.MODEL = Nexus 6P
|
||||
Build.MANUFACTURER = Huawei
|
||||
Build.PRODUCT = angler
|
||||
Build.ID = OPP6.171019.012
|
||||
Build.VERSION.RELEASE = 8.1.0
|
||||
TouchScreen = 3
|
||||
Keyboard = 1
|
||||
Navigation = 1
|
||||
ScreenLayout = 2
|
||||
HasHardKeyboard = false
|
||||
HasFiveWayNavigation = false
|
||||
GL.Version = 196610
|
||||
Screen.Density = 560
|
||||
Screen.Width = 1440
|
||||
Screen.Height = 2392
|
||||
Platforms = arm64-v8a,armeabi-v7a,armeabi
|
||||
SharedLibraries = android.ext.services,android.ext.shared,android.test.mock,android.test.runner,com.android.future.usb.accessory,com.android.location.provider,com.android.media.remotedisplay,com.android.mediadrm.signer,com.google.android.camera.experimental2016,com.google.android.dialer.support,com.google.android.gms,com.google.android.maps,com.google.android.media.effects,com.qualcomm.qcrilhook,com.quicinc.cneapiclient,javax.obex,org.apache.http.legacy
|
||||
Features = android.hardware.audio.low_latency,android.hardware.audio.output,android.hardware.audio.pro,android.hardware.bluetooth,android.hardware.bluetooth_le,android.hardware.camera,android.hardware.camera.any,android.hardware.camera.autofocus,android.hardware.camera.capability.manual_post_processing,android.hardware.camera.capability.manual_sensor,android.hardware.camera.capability.raw,android.hardware.camera.flash,android.hardware.camera.front,android.hardware.camera.level.full,android.hardware.ethernet,android.hardware.faketouch,android.hardware.fingerprint,android.hardware.location,android.hardware.location.gps,android.hardware.location.network,android.hardware.microphone,android.hardware.nfc,android.hardware.nfc.any,android.hardware.nfc.hce,android.hardware.nfc.hcef,android.hardware.opengles.aep,android.hardware.ram.normal,android.hardware.screen.landscape,android.hardware.screen.portrait,android.hardware.sensor.accelerometer,android.hardware.sensor.barometer,android.hardware.sensor.compass,android.hardware.sensor.gyroscope,android.hardware.sensor.hifi_sensors,android.hardware.sensor.light,android.hardware.sensor.proximity,android.hardware.sensor.stepcounter,android.hardware.sensor.stepdetector,android.hardware.telephony,android.hardware.telephony.cdma,android.hardware.telephony.gsm,android.hardware.touchscreen,android.hardware.touchscreen.multitouch,android.hardware.touchscreen.multitouch.distinct,android.hardware.touchscreen.multitouch.jazzhand,android.hardware.usb.accessory,android.hardware.usb.host,android.hardware.vulkan.level,android.hardware.vulkan.version,android.hardware.wifi,android.hardware.wifi.direct,android.hardware.wifi.passpoint,android.software.activities_on_secondary_displays,android.software.app_widgets,android.software.autofill,android.software.backup,android.software.companion_device_setup,android.software.connectionservice,android.software.cts,android.software.device_admin,android.software.home_screen,android.software.input_methods,android.software.live_wallpaper,android.software.managed_users,android.software.midi,android.software.picture_in_picture,android.software.print,android.software.sip,android.software.sip.voip,android.software.verified_boot,android.software.voice_recognizers,android.software.webview,com.google.android.apps.dialer.SUPPORTED,com.google.android.feature.EXCHANGE_6_2,com.google.android.feature.GOOGLE_BUILD,com.google.android.feature.GOOGLE_EXPERIENCE,com.nxp.mifare
|
||||
Locales = af,af_ZA,am,am_ET,ar,ar_EG,ar_XB,ast,az,bg,bg_BG,bn,ca,ca_ES,cs,cs_CZ,da,da_DK,de,de_DE,el,el_GR,en,en_AU,en_CA,en_GB,en_IN,en_US,en_XA,es,es_ES,es_US,et,eu,fa,fa_IR,fi,fi_FI,fil,fil_PH,fr,fr_BE,fr_CA,fr_FR,gl,gu,hi,hi_IN,hr,hr_HR,hu,hu_HU,hy,in,in_ID,is,it,it_IT,iw,iw_IL,ja,ja_JP,ka,kk,km,kn,ko,ko_KR,ky,lo,lt,lt_LT,lv,lv_LV,mk,ml,mn,mr,ms,ms_MY,my,nb,nb_NO,ne,nl,nl_NL,pl,pl_PL,pt,pt_BR,pt_PT,ro,ro_RO,ru,ru_RU,si,sk,sk_SK,sl,sl_SI,sq,sr,sr_RS,sv,sv_SE,sw,sw_TZ,ta,te,th,th_TH,tr,tr_TR,uk,uk_UA,ur,uz,vi,vi_VN,zh,zh_CN,zh_HK,zh_TW,zu,zu_ZA
|
||||
GSF.version = 11951448
|
||||
Vending.version = 80841900
|
||||
Vending.versionString = 8.4.19.V-all [0] [FP] 175058788
|
||||
CellOperator = 22210
|
||||
SimOperator = 22210
|
||||
TimeZone = Europe/Rome
|
||||
GL.Extensions = GL_AMD_compressed_ATC_texture,GL_AMD_performance_monitor,GL_ANDROID_extension_pack_es31a,GL_APPLE_texture_2D_limited_npot,GL_ARB_vertex_buffer_object,GL_EXT_EGL_image_array,GL_EXT_YUV_target,GL_EXT_blit_framebuffer_params,GL_EXT_buffer_storage,GL_EXT_color_buffer_float,GL_EXT_color_buffer_half_float,GL_EXT_copy_image,GL_EXT_debug_label,GL_EXT_debug_marker,GL_EXT_discard_framebuffer,GL_EXT_disjoint_timer_query,GL_EXT_draw_buffers_indexed,GL_EXT_external_buffer,GL_EXT_geometry_shader,GL_EXT_gpu_shader5,GL_EXT_multisampled_render_to_texture,GL_EXT_multisampled_render_to_texture2,GL_EXT_primitive_bounding_box,GL_EXT_protected_textures,GL_EXT_robustness,GL_EXT_sRGB,GL_EXT_sRGB_write_control,GL_EXT_shader_io_blocks,GL_EXT_shader_non_constant_global_initializers,GL_EXT_tessellation_shader,GL_EXT_texture_border_clamp,GL_EXT_texture_buffer,GL_EXT_texture_cube_map_array,GL_EXT_texture_filter_anisotropic,GL_EXT_texture_format_BGRA8888,GL_EXT_texture_norm16,GL_EXT_texture_sRGB_R8,GL_EXT_texture_sRGB_decode,GL_EXT_texture_type_2_10_10_10_REV,GL_KHR_blend_equation_advanced,GL_KHR_blend_equation_advanced_coherent,GL_KHR_debug,GL_KHR_no_error,GL_KHR_texture_compression_astc_ldr,GL_NV_shader_noperspective_interpolation,GL_OES_EGL_image,GL_OES_EGL_image_external,GL_OES_EGL_image_external_essl3,GL_OES_EGL_sync,GL_OES_blend_equation_separate,GL_OES_blend_func_separate,GL_OES_blend_subtract,GL_OES_compressed_ETC1_RGB8_texture,GL_OES_compressed_paletted_texture,GL_OES_depth24,GL_OES_depth_texture,GL_OES_depth_texture_cube_map,GL_OES_draw_texture,GL_OES_element_index_uint,GL_OES_framebuffer_object,GL_OES_get_program_binary,GL_OES_matrix_palette,GL_OES_packed_depth_stencil,GL_OES_point_size_array,GL_OES_point_sprite,GL_OES_read_format,GL_OES_rgb8_rgba8,GL_OES_sample_shading,GL_OES_sample_variables,GL_OES_shader_image_atomic,GL_OES_shader_multisample_interpolation,GL_OES_standard_derivatives,GL_OES_stencil_wrap,GL_OES_surfaceless_context,GL_OES_texture_3D,GL_OES_texture_cube_map,GL_OES_texture_env_crossbar,GL_OES_texture_float,GL_OES_texture_float_linear,GL_OES_texture_half_float,GL_OES_texture_half_float_linear,GL_OES_texture_mirrored_repeat,GL_OES_texture_npot,GL_OES_texture_stencil8,GL_OES_texture_storage_multisample_2d_array,GL_OES_vertex_array_object,GL_OES_vertex_half_float,GL_OVR_multiview,GL_OVR_multiview2,GL_OVR_multiview_multisampled_render_to_texture,GL_QCOM_alpha_test,GL_QCOM_extended_get,GL_QCOM_shader_framebuffer_fetch_noncoherent,GL_QCOM_tiled_rendering
|
||||
Roaming = mobile-notroaming
|
||||
Client = android-google
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
UserReadableName = Sony Xperia Z3 Compact (api25)
|
||||
Build.FINGERPRINT = Sony/carbon_aries/aries:7.1.1/NMF26V/3a70f5295e:userdebug/test-keys
|
||||
Build.HARDWARE = aries
|
||||
Build.BRAND = Sony
|
||||
Build.RADIO = unknown
|
||||
Build.BOOTLOADER = s1
|
||||
Build.DEVICE = aries
|
||||
Build.VERSION.SDK_INT = 25
|
||||
Build.MODEL = Xperia Z3 Compact
|
||||
Build.MANUFACTURER = Sony
|
||||
Build.PRODUCT = carbon_aries
|
||||
Client = android-google
|
||||
TouchScreen = 3
|
||||
Keyboard = 1
|
||||
Navigation = 2
|
||||
ScreenLayout = 2
|
||||
HasHardKeyboard = false
|
||||
HasFiveWayNavigation = true
|
||||
Screen.Density = 272
|
||||
Screen.Width = 720
|
||||
Screen.Height = 1198
|
||||
Platforms = armeabi-v7a,armeabi
|
||||
SharedLibraries = com.android.location.provider,com.android.future.usb.accessory,android.ext.shared,javax.obex,android.ext.services,android.test.runner,com.google.android.maps,org.apache.http.legacy,com.android.nfc_extras,com.android.media.remotedisplay,com.android.mediadrm.signer
|
||||
Features = android.hardware.sensor.proximity,android.hardware.sensor.accelerometer,android.hardware.faketouch,org.cyanogenmod.appsuggest,android.hardware.usb.accessory,android.hardware.telephony.cdma,android.software.backup,android.hardware.touchscreen,android.hardware.touchscreen.multitouch,android.software.print,android.hardware.consumerir,org.cyanogenmod.partner,org.cyanogenmod.telephony,android.software.voice_recognizers,android.hardware.fingerprint,android.hardware.sensor.gyroscope,android.hardware.audio.low_latency,android.hardware.opengles.aep,android.hardware.bluetooth,android.hardware.camera.autofocus,com.google.android.feature.GOOGLE_BUILD,android.hardware.telephony.gsm,android.software.sip.voip,org.cyanogenmod.profiles,android.hardware.usb.host,com.cyanogenmod.android,android.hardware.audio.output,android.hardware.camera.flash,android.hardware.camera.front,android.hardware.sensor.hifi_sensors,android.hardware.screen.portrait,android.hardware.nfc,com.nxp.mifare,android.hardware.sensor.stepdetector,org.cyanogenmod.audio,org.cyanogenmod.theme,android.software.home_screen,android.hardware.microphone,org.cyanogenmod.statusbar,android.hardware.bluetooth_le,android.hardware.sensor.compass,android.hardware.touchscreen.multitouch.jazzhand,android.hardware.sensor.barometer,android.software.app_widgets,android.software.input_methods,android.hardware.sensor.light,android.software.device_admin,android.hardware.camera,org.cyanogenmod.hardware,android.hardware.screen.landscape,org.cyanogenmod.weather,org.cyanogenmod.performance,android.software.managed_users,android.software.webview,android.hardware.sensor.stepcounter,android.hardware.camera.capability.manual_post_processing,org.cyanogenmod.livedisplay,android.hardware.camera.any,android.hardware.camera.capability.raw,android.software.connectionservice,android.hardware.touchscreen.multitouch.distinct,android.hardware.location.network,android.software.sip,android.hardware.camera.capability.manual_sensor,android.hardware.camera.level.full,android.hardware.wifi.direct,android.software.live_wallpaper,com.google.android.feature.GOOGLE_EXPERIENCE,com.google.android.feature.EXCHANGE_6_2,org.cyanogenmod.theme.v1,org.cyanogenmod.livelockscreen,android.hardware.location.gps,android.software.midi,android.hardware.nfc.hce,android.hardware.wifi,android.hardware.location,android.hardware.telephony
|
||||
Locales = hi,so_ET,ro_MD,in,sn_ZW,sw_UG,es_BO,dyo,ru_KZ,en_JE,zu,en_JM,pt_BR,en_MS,ar_SD,en_ZM,es_PA,en_GG,es_SV,en_SE,es,rof,fr_SC,fr_GA,en_CM,ta,en_SX,fr_MC,fy,to,fr_RW,en_SD,qu,en_KE,rw_RW,gv_IM,sv_FI,cgg,pt_GW,fr_CF,sv_SE,dje,en_SS,ar_DZ,si,es_UY,ar_SA,tr_TR,dua,fr_BL,nb_SJ,fr_CA,ff,es_PE,om,en_FK,cs_CZ,zu_ZA,sl_SI,es_NI,en_GY,fr_ML,fr_MF,nmg,fo_DK,en_LR,el_CY,nus,mt,en_NU,en_UG,ta_MY,pt_ST,ha_NE,ca_FR,ru,es_IC,ar_KW,it_IT,en_GI,ji,hr,ka_GE,pt_PT,nl,en_TV,ru_RU,pa,mgh,es_ES,km,ee_TG,ca_AD,twq,ar_YE,eo,ne,as_IN,es_GT,vi_VN,de_CH,ig_NG,or_IN,mua,pl_PL,lv,fr_DZ,lb,hr_HR,haw,sw_KE,shi,mn,om_ET,fr_LU,es_PR,lo_LA,es_HN,kl_GL,bo_IN,et_EE,en_ZA,fr_TG,br_FR,yo_NG,tr_CY,sr,bem,fr_PF,ti_ET,hu,mk,de_LI,so_SO,nb_NO,luo,en_ZW,sk_SK,ksh,sk,nyn,fa,zgh,fr_HT,en_CY,uz,rm,en_MH,sn,to_TO,te,sq_MK,ha_GH,ta_IN,en_MW,da,en_BS,ms_SG,ps_AF,lt_LT,br,it_CH,fr_NE,en_LC,bm_ML,kk_KZ,qu_BO,tr,nl_SR,ln,sw,luy,en,fo,en_GD,asa,lag,fr_GQ,fr,fr_GN,dz,ar_SO,dz_BT,ca,es_CL,rn_BI,sq_XK,en_CC,en_SI,el_GR,yo_BJ,vi,my,de_LU,mk_MK,ak_GH,fr_GF,en_PK,my_MM,fr_CG,cy,es_PH,en_IN,ksf,en_LS,fy_NL,ce,ff_MR,af_ZA,fa_IR,bn_BD,vun,ks,bg,sq_AL,fr_BF,rw,af_NA,dsb,qu_PE,en_DM,ar_TN,nd,en_UM,en_FM,en_NR,ro,uk,se_SE,ln_CF,pt_MZ,am_ET,kl,pt,ta_SG,th,se_NO,ff_GN,ky,en_NG,ur_PK,af,en_DE,so,sah,fr_SN,ar_EH,vai,gu_IN,en_WS,es_EA,ms,fr_MG,th_TH,fr_RE,ru_BY,nl_SX,lv_LV,ki_KE,fr_CI,en_BB,ja,kde,am,nl_BQ,bo_CN,ga_IE,sl,bn_IN,mer,en_SZ,fr_CM,dav,ti_ER,da_GL,kw_GB,ga,mfe,it,it_SM,fo_FO,en_BW,en_SG,en_KN,cs,chr,km_KH,en_SC,mr_IN,el,en_PN,mg_MG,ru_KG,en_PW,en_SB,fur,en_BZ,ka,bm,de_DE,te_IN,ml_IN,hy,sw_TZ,kw,kn,ru_UA,ln_CD,et,fr_CH,en_DG,bn,ps,qu_EC,lt,ii_CN,en_FJ,eu,en_TC,ksb,pt_CV,gl_ES,en_VU,en_MP,ee,ar_PS,wae,nl_BE,xog,is,fr_PM,saq,iw_IL,om_KE,en_FI,nn_NO,pt_MO,mgo,en_US,fr_BE,ar,gd,kok,de,kln,kam,mt_MT,be,ce_RU,en_BE,fr_SY,es_MX,sv_AX,agq,sq,hr_BA,tzm,de_AT,os_RU,es_DO,en_BI,mg,ar_SY,yav,ks_IN,ro_RO,lu_CD,en_PG,jgo,is_IS,es_CU,ff_CM,en_VG,az,en_GU,fr_MR,ug_CN,in_ID,en_AU,nl_CW,ru_MD,naq,gd_GB,en_CK,ml,ja_JP,sw_CD,uk_UA,ta_LK,pl,es_VE,da_DK,be_BY,fa_AF,pt_AO,fr_MQ,bs,mas,ar_QA,en_IO,en_SH,en_NL,es_GQ,lg,hu_HU,fr_BJ,en_MO,brx,fr_WF,ar_OM,ca_ES,en_GB,ug,ha,en_NA,en_NF,sv,as,ig,en_KI,en_CX,en_TO,sbp,bo,ne_NP,bg_BG,jmc,en_GM,ar_JO,en_HK,ar_IQ,fr_DJ,fr_GP,lkt,kn_IN,ha_NG,en_IL,en_KY,en_TT,fil,fr_BI,sg,hsb,ca_IT,teo,fr_TN,en_AS,kk,guz,fr_VU,mr,es_EC,en_TZ,ko_KR,ar_MA,ar_LB,fr_CD,en_DK,es_CO,ur_IN,rwk,es_PY,ms_MY,cy_GB,en_PH,seh,ar_BH,en_TK,en_RW,eu_ES,ki,fr_TD,smn,ses,so_KE,es_CR,en_MY,en_AI,lo,en_MG,en_PR,gsw,en_VI,en_BM,se,en_IE,en_SL,khq,en_CH,ee_GH,ko,lb_LU,en_AT,nn,ar_ER,lrc,ar_TD,ar_MR,fr_YT,en_GH,en_MU,si_LK,gv,ky_KG,nl_NL,rm_CH,ar_IL,ti,iw,hy_AM,se_FI,pt_TL,en_AG,or,bez,ff_SN,en_IM,fr_MA,en_MT,nd_ZW,fi_FI,en_NZ,de_BE,fr_KM,bas,ak,nl_AW,ar_AE,kab,ar_EG,ur,es_AR,ar_DJ,ar_KM,kkj,fi,lu,fr_FR,ebu,os,ne_IN,ln_AO,gu,zh,os_GE,sg_CF,mn_MN,gl,lg_UG,ko_KP,rn,mzn,es_US,hi_IN,ar_LY,ms_BN,fr_NC,so_DJ,ii,en_ER,ar_SS,kea,ln_CG,fr_MU,nb,yo,nnh,en_VC,ewo,en_CAClient = android-google
|
||||
GSF.version = 10548448
|
||||
Vending.version = 80798000
|
||||
CellOperator = 310260
|
||||
SimOperator = 310260
|
||||
Roaming = mobile-notroaming
|
||||
TimeZone = Europe/Moscow
|
||||
GL.Version = 131072
|
||||
GL.Extensions = GL_AMD_compressed_ATC_texture,GL_AMD_performance_monitor,GL_ANDROID_extension_pack_es31a,GL_APPLE_texture_2D_limited_npot,GL_ARB_vertex_buffer_object,GL_ARM_shader_framebuffer_fetch_depth_stencil,GL_EXT_YUV_target,GL_EXT_blit_framebuffer_params,GL_EXT_buffer_storage,GL_EXT_color_buffer_float,GL_EXT_color_buffer_half_float,GL_EXT_copy_image,GL_EXT_debug_label,GL_EXT_debug_marker,GL_EXT_discard_framebuffer,GL_EXT_disjoint_timer_query,GL_EXT_draw_buffers_indexed,GL_EXT_geometry_shader,GL_EXT_gpu_shader5,GL_EXT_multisampled_render_to_texture,GL_EXT_primitive_bounding_box,GL_EXT_robustness,GL_EXT_sRGB,GL_EXT_sRGB_write_control,GL_EXT_shader_framebuffer_fetch,GL_EXT_shader_io_blocks,GL_EXT_tessellation_shader,GL_EXT_texture_border_clamp,GL_EXT_texture_buffer,GL_EXT_texture_cube_map_array,GL_EXT_texture_filter_anisotropic,GL_EXT_texture_format_BGRA8888,GL_EXT_texture_norm16,GL_EXT_texture_sRGB_R8,GL_EXT_texture_sRGB_decode,GL_EXT_texture_type_2_10_10_10_REV,GL_KHR_blend_equation_advanced,GL_KHR_blend_equation_advanced_coherent,GL_KHR_debug,GL_KHR_no_error,GL_KHR_texture_compression_astc_hdr,GL_KHR_texture_compression_astc_ldr,GL_OES_EGL_image,GL_OES_EGL_image_external,GL_OES_EGL_sync,GL_OES_blend_equation_separate,GL_OES_blend_func_separate,GL_OES_blend_subtract,GL_OES_compressed_ETC1_RGB8_texture,GL_OES_compressed_paletted_texture,GL_OES_depth24,GL_OES_depth_texture,GL_OES_depth_texture_cube_map,GL_OES_draw_texture,GL_OES_element_index_uint,GL_OES_framebuffer_object,GL_OES_get_program_binary,GL_OES_matrix_palette,GL_OES_packed_depth_stencil,GL_OES_point_size_array,GL_OES_point_sprite,GL_OES_read_format,GL_OES_rgb8_rgba8,GL_OES_sample_shading,GL_OES_sample_variables,GL_OES_shader_image_atomic,GL_OES_shader_multisample_interpolation,GL_OES_standard_derivatives,GL_OES_stencil_wrap,GL_OES_surfaceless_context,GL_OES_texture_3D,GL_OES_texture_compression_astc,GL_OES_texture_cube_map,GL_OES_texture_env_crossbar,GL_OES_texture_float,GL_OES_texture_float_linear,GL_OES_texture_half_float,GL_OES_texture_half_float_linear,GL_OES_texture_mirrored_repeat,GL_OES_texture_npot,GL_OES_texture_stencil8,GL_OES_texture_storage_multisample_2d_array,GL_OES_vertex_array_object,GL_OES_vertex_half_float,GL_OVR_multiview,GL_OVR_multiview2,GL_OVR_multiview_multisampled_render_to_texture,GL_QCOM_alpha_test,GL_QCOM_extended_get,GL_QCOM_tiled_rendering,GL_EXT_multi_draw_arrays,GL_EXT_shader_texture_lod,GL_IMG_multisampled_render_to_texture,GL_IMG_program_binary,GL_IMG_read_format,GL_IMG_shader_binary,GL_IMG_texture_compression_pvrtc,GL_IMG_texture_format_BGRA8888,GL_IMG_texture_npot,GL_IMG_vertex_array_object,GL_OES_byte_coordinates,GL_OES_extended_matrix_palette,GL_OES_fixed_point,GL_OES_fragment_precision_high,GL_OES_mapbuffer,GL_OES_matrix_get,GL_OES_query_matrix,GL_OES_required_internalformat,GL_OES_single_precision,GL_OES_stencil8
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
UserReadableName = OnePlus One (api25)
|
||||
Build.HARDWARE = bacon
|
||||
Build.RADIO = unknown
|
||||
Build.BOOTLOADER = unknown
|
||||
Build.FINGERPRINT = oneplus/bacon/A0001:6.0.1/MHC19Q/ZNH2KAS1KN:user/release-keys
|
||||
Build.BRAND = oneplus
|
||||
Build.DEVICE = A0001
|
||||
Build.VERSION.SDK_INT = 25
|
||||
Build.MODEL = A0001
|
||||
Build.MANUFACTURER = OnePlus
|
||||
Build.PRODUCT = bacon
|
||||
Build.ID = NJH47F
|
||||
Build.VERSION.RELEASE = 7.1.2
|
||||
TouchScreen = 3
|
||||
Keyboard = 1
|
||||
Navigation = 1
|
||||
ScreenLayout = 2
|
||||
HasHardKeyboard = false
|
||||
HasFiveWayNavigation = false
|
||||
GL.Version = 196608
|
||||
Screen.Density = 480
|
||||
Screen.Width = 1080
|
||||
Screen.Height = 1776
|
||||
Platforms = armeabi-v7a,armeabi
|
||||
SharedLibraries = android.ext.services,android.ext.shared,android.test.runner,com.android.future.usb.accessory,com.android.location.provider,com.android.media.remotedisplay,com.android.mediadrm.signer,com.android.nfc_extras,com.dsi.ant.antradio_library,com.google.android.dialer.support,com.google.android.gms,com.google.android.maps,com.google.android.media.effects,com.google.widevine.software.drm,com.qualcomm.qcnvitems,com.qualcomm.qcrilhook,javax.obex,org.apache.http.legacy,org.cyanogenmod.hardware,org.cyanogenmod.platform
|
||||
Features = android.hardware.audio.low_latency,android.hardware.audio.output,android.hardware.bluetooth,android.hardware.bluetooth_le,android.hardware.camera,android.hardware.camera.any,android.hardware.camera.autofocus,android.hardware.camera.flash,android.hardware.camera.front,android.hardware.ethernet,android.hardware.faketouch,android.hardware.location,android.hardware.location.gps,android.hardware.location.network,android.hardware.microphone,android.hardware.nfc,android.hardware.nfc.hce,android.hardware.screen.landscape,android.hardware.screen.portrait,android.hardware.sensor.accelerometer,android.hardware.sensor.compass,android.hardware.sensor.gyroscope,android.hardware.sensor.light,android.hardware.sensor.proximity,android.hardware.sensor.stepcounter,android.hardware.sensor.stepdetector,android.hardware.telephony,android.hardware.telephony.gsm,android.hardware.touchscreen,android.hardware.touchscreen.multitouch,android.hardware.touchscreen.multitouch.distinct,android.hardware.touchscreen.multitouch.jazzhand,android.hardware.usb.accessory,android.hardware.usb.host,android.hardware.wifi,android.hardware.wifi.direct,android.software.app_widgets,android.software.backup,android.software.connectionservice,android.software.device_admin,android.software.home_screen,android.software.input_methods,android.software.live_wallpaper,android.software.managed_users,android.software.midi,android.software.print,android.software.sip,android.software.sip.voip,android.software.voice_recognizers,android.software.webview,com.cyanogenmod.android,com.google.android.apps.dialer.SUPPORTED,com.google.android.feature.EXCHANGE_6_2,com.google.android.feature.GOOGLE_BUILD,com.google.android.feature.GOOGLE_EXPERIENCE,org.cyanogenmod.audio,org.cyanogenmod.hardware,org.cyanogenmod.livedisplay,org.cyanogenmod.performance,org.cyanogenmod.profiles,org.cyanogenmod.statusbar,org.cyanogenmod.telephony,org.cyanogenmod.weather
|
||||
Locales = af,af_ZA,am,am_ET,ar,ar_EG,ar_XB,ast,ast_ES,az_AZ,be_BY,bg,bg_BG,bn,bn_BD,bs_BA,ca,ca_ES,cs,cs_CZ,da,da_DK,de,de_AT,de_CH,de_DE,de_LI,el,el_GR,en,en_AU,en_CA,en_GB,en_IN,en_NZ,en_SG,en_US,en_XA,eo,es,es_ES,es_US,et,et_EE,eu,eu_ES,fa,fa_IR,fi,fi_FI,fil,fil_PH,fr,fr_BE,fr_CA,fr_CH,fr_FR,gl_ES,gu,gu_IN,hi,hi_IN,hr,hr_HR,hu,hu_HU,hy_AM,in,in_ID,is_IS,it,it_CH,it_IT,iw,iw_IL,ja,ja_JP,ka_GE,kk_KZ,km_KH,kn,kn_IN,ko,ko_KR,ku,ky_KG,lb,lo_LA,lt,lt_LT,lv,lv_LV,mk_MK,ml,ml_IN,mn_MN,mr,mr_IN,ms,ms_MY,my_MM,nb,nb_NO,ne_NP,nl,nl_BE,nl_NL,pa_IN,pl,pl_PL,pt,pt_BR,pt_PT,ro,ro_RO,ru,ru_RU,si_LK,sk,sk_SK,sl,sl_SI,sq_AL,sr,sr_RS,sv,sv_SE,sw,sw_TZ,ta,ta_IN,te,te_IN,th,th_TH,tr,tr_TR,uk,uk_UA,ur_PK,uz_UZ,vi,vi_VN,zh,zh_CN,zh_HK,zh_TW,zu,zu_ZA
|
||||
GSF.version = 11951438
|
||||
Vending.version = 80841900
|
||||
Vending.versionString = 8.4.19.V-all [0] [FP] 175058788
|
||||
CellOperator = 22201
|
||||
SimOperator = 22201
|
||||
Roaming = mobile-notroaming
|
||||
Client = android-google
|
||||
TimeZone = Europe/Rome
|
||||
GL.Extensions = GL_AMD_compressed_ATC_texture,GL_AMD_performance_monitor,GL_AMD_program_binary_Z400,GL_APPLE_texture_2D_limited_npot,GL_ARB_vertex_buffer_object,GL_EXT_color_buffer_float,GL_EXT_color_buffer_half_float,GL_EXT_debug_label,GL_EXT_debug_marker,GL_EXT_discard_framebuffer,GL_EXT_disjoint_timer_query,GL_EXT_multisampled_render_to_texture,GL_EXT_robustness,GL_EXT_sRGB,GL_EXT_sRGB_write_control,GL_EXT_texture_filter_anisotropic,GL_EXT_texture_format_BGRA8888,GL_EXT_texture_sRGB_decode,GL_EXT_texture_type_2_10_10_10_REV,GL_NV_fence,GL_OES_EGL_image,GL_OES_EGL_image_external,GL_OES_EGL_sync,GL_OES_blend_equation_separate,GL_OES_blend_func_separate,GL_OES_blend_subtract,GL_OES_compressed_ETC1_RGB8_texture,GL_OES_compressed_paletted_texture,GL_OES_depth24,GL_OES_depth_texture,GL_OES_depth_texture_cube_map,GL_OES_draw_texture,GL_OES_element_index_uint,GL_OES_fbo_render_mipmap,GL_OES_fragment_precision_high,GL_OES_framebuffer_object,GL_OES_get_program_binary,GL_OES_matrix_palette,GL_OES_packed_depth_stencil,GL_OES_point_size_array,GL_OES_point_sprite,GL_OES_read_format,GL_OES_rgb8_rgba8,GL_OES_standard_derivatives,GL_OES_stencil_wrap,GL_OES_texture_3D,GL_OES_texture_cube_map,GL_OES_texture_env_crossbar,GL_OES_texture_float,GL_OES_texture_half_float,GL_OES_texture_half_float_linear,GL_OES_texture_mirrored_repeat,GL_OES_texture_npot,GL_OES_vertex_array_object,GL_OES_vertex_half_float,GL_OES_vertex_type_10_10_10_2,GL_QCOM_alpha_test,GL_QCOM_binning_control,GL_QCOM_driver_control,GL_QCOM_extended_get,GL_QCOM_extended_get2,GL_QCOM_perfmon_global_mode,GL_QCOM_tiled_rendering,GL_QCOM_writeonly_rendering
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
UserReadableName = BlackBerry KEYone (api25)
|
||||
Build.HARDWARE = qcom
|
||||
Build.RADIO = unknown
|
||||
Build.BOOTLOADER = unknown
|
||||
Build.FINGERPRINT = blackberry/bbb100usa/bbb100:7.1.1/NMF26F/AAR108:user/release-keys
|
||||
Build.BRAND = blackberry
|
||||
Build.DEVICE = bbb100
|
||||
Build.VERSION.SDK_INT = 25
|
||||
Build.MODEL = BBB100-3
|
||||
Build.MANUFACTURER = BlackBerry
|
||||
Build.PRODUCT = bbb100usa
|
||||
Build.ID = NMF26F
|
||||
Build.VERSION.RELEASE = 7.1.1
|
||||
TouchScreen = 3
|
||||
Keyboard = 2
|
||||
Navigation = 1
|
||||
ScreenLayout = 2
|
||||
HasHardKeyboard = true
|
||||
HasFiveWayNavigation = false
|
||||
GL.Version = 196610
|
||||
Screen.Density = 420
|
||||
Screen.Width = 1080
|
||||
Screen.Height = 1620
|
||||
Platforms = arm64-v8a,armeabi-v7a,armeabi
|
||||
SharedLibraries = ConnectivityExt,android.ext.services,android.ext.shared,android.test.runner,com.android.future.usb.accessory,com.android.location.provider,com.android.media.remotedisplay,com.android.mediadrm.signer,com.blackberry.cellular.bbryrilhook,com.blackberry.cellular.config,com.blackberry.cellular.ims.libbbryims_config,com.blackberry.cellular.ims.libbbryims_frameworks,com.blackberry.nfc,com.blackberry.only,com.blackberry.openmobileapi,com.blackberry.security,com.blackberry.security.smartcard,com.blackberry.telephony.dataconnection,com.fingerprints.extension,com.google.android.gms,com.google.android.maps,com.google.android.media.effects,com.google.widevine.software.drm,com.gsma.services.nfc,com.qti.dpmapi,com.qti.dpmframework,com.qti.ims.connectionmanager.imscmlibrary,com.qti.location.sdk,com.qti.snapdragon.sdk.display,com.qti.vzw.ims.internal,com.qualcomm.embmslibrary,com.qualcomm.location.vzw_library,com.qualcomm.qcrilhook,com.qualcomm.qti.QtiTelephonyServicelibrary,com.qualcomm.qti.lpa.uimlpalibrary,com.qualcomm.qti.rcsimssettings,com.qualcomm.qti.rcsservice,com.qualcomm.qti.smartsearch,com.quicinc.cne,com.quicinc.cneapiclient,com.quicinc.wbc,com.quicinc.wbcservice,com.suntek.mway.rcs.client.aidl,com.suntek.mway.rcs.client.api,izat.xt.srv,javax.obex,org.apache.http.legacy,org.codeaurora.btmultisimlibrary,org.codeaurora.rcscommon,org.simalliance.openmobileapi
|
||||
Features = android.hardware.audio.output,android.hardware.bluetooth,android.hardware.bluetooth_le,android.hardware.camera,android.hardware.camera.any,android.hardware.camera.autofocus,android.hardware.camera.flash,android.hardware.camera.front,android.hardware.faketouch,android.hardware.fingerprint,android.hardware.location,android.hardware.location.gps,android.hardware.location.network,android.hardware.microphone,android.hardware.nfc,android.hardware.nfc.hce,android.hardware.nfc.hcef,android.hardware.opengles.aep,android.hardware.screen.landscape,android.hardware.screen.portrait,android.hardware.sensor.accelerometer,android.hardware.sensor.compass,android.hardware.sensor.gyroscope,android.hardware.sensor.light,android.hardware.sensor.proximity,android.hardware.sensor.stepcounter,android.hardware.sensor.stepdetector,android.hardware.telephony,android.hardware.telephony.cdma,android.hardware.telephony.gsm,android.hardware.touchscreen,android.hardware.touchscreen.multitouch,android.hardware.touchscreen.multitouch.distinct,android.hardware.touchscreen.multitouch.jazzhand,android.hardware.usb.accessory,android.hardware.usb.host,android.hardware.vulkan.level,android.hardware.vulkan.version,android.hardware.wifi,android.hardware.wifi.direct,android.software.app_widgets,android.software.backup,android.software.connectionservice,android.software.device_admin,android.software.home_screen,android.software.input_methods,android.software.live_wallpaper,android.software.managed_users,android.software.midi,android.software.print,android.software.sip,android.software.sip.voip,android.software.voice_recognizers,android.software.webview,blackberry.software.nfc,com.nxp.mifare
|
||||
Locales = af,af_ZA,am,am_ET,ar,ar_AE,ar_BH,ar_DZ,ar_EG,ar_QA,ar_SA,ar_XB,ast,az_AZ,be_BY,bg,bg_BG,bn_BD,bs_BA,ca,ca_ES,cs,cs_CZ,da,da_DK,de,de_AT,de_CH,de_DE,de_LI,el,el_GR,en,en_AU,en_CA,en_GB,en_IE,en_IN,en_NZ,en_SG,en_US,en_XA,en_ZA,es,es_ES,es_MX,es_US,et_EE,eu,eu_ES,fa,fa_IR,fi,fi_FI,fil,fil_PH,fr,fr_BE,fr_CA,fr_CH,fr_FR,gl_ES,gu_IN,hi,hi_IN,hr,hr_HR,hu,hu_HU,hy_AM,in,in_ID,is_IS,it,it_CH,it_IT,iw,iw_IL,ja,ja_JP,ka_GE,kk_KZ,km_KH,kn_IN,ko,ko_KR,ky_KG,lo_LA,lt,lt_LT,lv,lv_LV,mk_MK,ml_IN,mn_MN,mr_IN,ms,ms_MY,my_MM,nb,nb_NO,ne_NP,nl,nl_BE,nl_NL,or_IN,pa_IN,pl,pl_PL,pt,pt_BR,pt_PT,ro,ro_RO,ru,ru_RU,si_LK,sk,sk_SK,sl,sl_SI,sq_AL,sr,sr_RS,sv,sv_SE,sw,sw_TZ,ta_IN,te_IN,th,th_TH,tr,tr_TR,uk,uk_UA,ur_PK,uz_UZ,vi,vi_VN,zh,zh_CN,zh_HK,zh_TW,zu,zu_ZA
|
||||
GSF.version = 11951440
|
||||
Vending.version = 80841900
|
||||
Vending.versionString = 8.4.19.V-all [0] [FP] 175058788
|
||||
CellOperator = 311480
|
||||
SimOperator = 311480
|
||||
Roaming = mobile-notroaming
|
||||
Client = android-google
|
||||
TimeZone = America/Los_Angeles
|
||||
GL.Extensions = GL_AMD_compressed_ATC_texture,GL_AMD_performance_monitor,GL_ANDROID_extension_pack_es31a,GL_APPLE_texture_2D_limited_npot,GL_ARB_vertex_buffer_object,GL_ARM_shader_framebuffer_fetch_depth_stencil,GL_EXT_YUV_target,GL_EXT_blit_framebuffer_params,GL_EXT_buffer_storage,GL_EXT_clip_cull_distance,GL_EXT_color_buffer_float,GL_EXT_color_buffer_half_float,GL_EXT_copy_image,GL_EXT_debug_label,GL_EXT_debug_marker,GL_EXT_discard_framebuffer,GL_EXT_disjoint_timer_query,GL_EXT_draw_buffers_indexed,GL_EXT_geometry_shader,GL_EXT_gpu_shader5,GL_EXT_multisampled_render_to_texture,GL_EXT_primitive_bounding_box,GL_EXT_protected_textures,GL_EXT_robustness,GL_EXT_sRGB,GL_EXT_sRGB_write_control,GL_EXT_shader_framebuffer_fetch,GL_EXT_shader_io_blocks,GL_EXT_shader_non_constant_global_initializers,GL_EXT_tessellation_shader,GL_EXT_texture_border_clamp,GL_EXT_texture_buffer,GL_EXT_texture_cube_map_array,GL_EXT_texture_filter_anisotropic,GL_EXT_texture_format_BGRA8888,GL_EXT_texture_norm16,GL_EXT_texture_sRGB_R8,GL_EXT_texture_sRGB_decode,GL_EXT_texture_type_2_10_10_10_REV,GL_KHR_blend_equation_advanced,GL_KHR_blend_equation_advanced_coherent,GL_KHR_debug,GL_KHR_no_error,GL_KHR_texture_compression_astc_hdr,GL_KHR_texture_compression_astc_ldr,GL_OES_EGL_image,GL_OES_EGL_image_external,GL_OES_EGL_image_external_essl3,GL_OES_EGL_sync,GL_OES_blend_equation_separate,GL_OES_blend_func_separate,GL_OES_blend_subtract,GL_OES_compressed_ETC1_RGB8_texture,GL_OES_compressed_paletted_texture,GL_OES_depth24,GL_OES_depth_texture,GL_OES_depth_texture_cube_map,GL_OES_draw_texture,GL_OES_element_index_uint,GL_OES_framebuffer_object,GL_OES_get_program_binary,GL_OES_matrix_palette,GL_OES_packed_depth_stencil,GL_OES_point_size_array,GL_OES_point_sprite,GL_OES_read_format,GL_OES_rgb8_rgba8,GL_OES_sample_shading,GL_OES_sample_variables,GL_OES_shader_image_atomic,GL_OES_shader_multisample_interpolation,GL_OES_standard_derivatives,GL_OES_stencil_wrap,GL_OES_surfaceless_context,GL_OES_texture_3D,GL_OES_texture_compression_astc,GL_OES_texture_cube_map,GL_OES_texture_env_crossbar,GL_OES_texture_float,GL_OES_texture_float_linear,GL_OES_texture_half_float,GL_OES_texture_half_float_linear,GL_OES_texture_mirrored_repeat,GL_OES_texture_npot,GL_OES_texture_stencil8,GL_OES_texture_storage_multisample_2d_array,GL_OES_vertex_array_object,GL_OES_vertex_half_float,GL_OVR_multiview,GL_OVR_multiview2,GL_OVR_multiview_multisampled_render_to_texture,GL_QCOM_alpha_test,GL_QCOM_extended_get,GL_QCOM_tiled_rendering
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
UserReadableName = HTC Desire (api10)
|
||||
Build.HARDWARE = bravo
|
||||
Build.RADIO = unknown
|
||||
Build.BOOTLOADER = 0.93.0001
|
||||
Build.FINGERPRINT = htc_wwe/htc_bravo/bravo:2.3.3/GRI40/96875.1:user/release-keys
|
||||
Build.BRAND = htc_wwe
|
||||
Build.DEVICE = bravo
|
||||
Build.VERSION.SDK_INT = 10
|
||||
Build.MODEL = HTC Desire
|
||||
Build.MANUFACTURER = HTC
|
||||
Build.PRODUCT = htc_bravo
|
||||
TouchScreen = 3
|
||||
Keyboard = 1
|
||||
Navigation = 3
|
||||
ScreenLayout = 2
|
||||
HasHardKeyboard = false
|
||||
HasFiveWayNavigation = false
|
||||
GL.Version = 131072
|
||||
GSF.version = 10548448
|
||||
Vending.version = 80798000
|
||||
Screen.Density = 240
|
||||
Screen.Width = 480
|
||||
Screen.Height = 800
|
||||
Platforms = armeabi-v7a,armeabi
|
||||
SharedLibraries = android.test.runner,com.android.future.usb.accessory,com.android.location.provider,javax.obex
|
||||
Features = android.hardware.bluetooth,android.hardware.camera,android.hardware.camera.autofocus,android.hardware.camera.flash,android.hardware.location,android.hardware.location.gps,android.hardware.location.network,android.hardware.microphone,android.hardware.sensor.accelerometer,android.hardware.sensor.compass,android.hardware.sensor.light,android.hardware.sensor.proximity,android.hardware.telephony,android.hardware.telephony.gsm,android.hardware.touchscreen,android.hardware.touchscreen.multitouch,android.hardware.usb.accessory,android.hardware.wifi,android.software.live_wallpaper,android.software.sip,android.software.sip.voip,com.tmobile.software.themes
|
||||
Locales = ar,ar_EG,ar_IL,bg,bg_BG,ca,ca_ES,cs,cs_CZ,da,da_DK,de,de_AT,de_CH,de_DE,de_LI,el,el_GR,en,en_AU,en_CA,en_GB,en_IE,en_IN,en_NZ,en_SG,en_US,en_ZA,es,es_ES,fa,fa_IR,fi,fi_FI,fr,fr_BE,fr_CA,fr_CH,fr_FR,he_IL,hi_IN,hr,hr_HR,hu,hu_HU,id_ID,it,it_CH,it_IT,iw,iw_IL,ja,ja_JP,ka,ka_GE,ko,ko_KR,lt,lt_LT,lv,lv_LV,nb,nb_NO,nl,nl_BE,nl_NL,pl,pl_PL,pt,pt_BR,pt_PT,ro,ro_RO,ru,ru_RU,sk,sk_SK,sl,sl_SI,sr,sr_RS,sv,sv_SE,th,th_TH,tl,tl_PH,tr,tr_TR,uk,uk_UA,ur_PK,vi,vi_VN,zh,zh_CN,zh_TW
|
||||
CellOperator = 25001
|
||||
SimOperator = 25001
|
||||
Client = android-google
|
||||
GL.Extensions = GL_AMD_compressed_3DC_texture,GL_AMD_compressed_ATC_texture,GL_AMD_performance_monitor,GL_AMD_program_binary_Z400,GL_EXT_texture_filter_anisotropic,GL_EXT_texture_format_BGRA8888,GL_EXT_texture_type_2_10_10_10_REV,GL_NV_fence,GL_OES_EGL_image,GL_OES_blend_equation_separate,GL_OES_blend_func_separate,GL_OES_blend_subtract,GL_OES_compressed_ETC1_RGB8_texture,GL_OES_compressed_paletted_texture,GL_OES_depth24,GL_OES_depth_texture,GL_OES_draw_texture,GL_OES_element_index_uint,GL_OES_fbo_render_mipmap,GL_OES_fragment_precision_high,GL_OES_framebuffer_object,GL_OES_get_program_binary,GL_OES_matrix_palette,GL_OES_packed_depth_stencil,GL_OES_point_size_array,GL_OES_point_sprite,GL_OES_read_format,GL_OES_rgb8_rgba8,GL_OES_standard_derivatives,GL_OES_stencil_wrap,GL_OES_texture_3D,GL_OES_texture_cube_map,GL_OES_texture_env_crossbar,GL_OES_texture_float,GL_OES_texture_half_float,GL_OES_texture_half_float_linear,GL_OES_texture_mirrored_repeat,GL_OES_texture_npot,GL_OES_vertex_half_float,GL_OES_vertex_type_10_10_10_2,GL_QCOM_driver_control,GL_QCOM_extended_get,GL_QCOM_extended_get2,GL_QCOM_memory_monitor,GL_QCOM_perfmon_global_mode,GL_QCOM_tiled_rendering,GL_QCOM_writeonly_rendering
|
||||
TimeZone = Europe/Kaliningrad
|
||||
Roaming = mobile-notroaming
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
UserReadableName = Nexus 5X (api26)
|
||||
Build.HARDWARE = bullhead
|
||||
Build.RADIO = unknown
|
||||
Build.BOOTLOADER = BHZ21d
|
||||
Build.FINGERPRINT = google/bullhead/bullhead:8.0.0/OPR6.170623.023/4409485:user/release-keys
|
||||
Build.BRAND = google
|
||||
Build.DEVICE = bullhead
|
||||
Build.VERSION.SDK_INT = 26
|
||||
Build.MODEL = Nexus 5X
|
||||
Build.MANUFACTURER = LGE
|
||||
Build.PRODUCT = bullhead
|
||||
Build.ID = OPR6.170623.023
|
||||
Build.VERSION.RELEASE = 8.0.0
|
||||
TouchScreen = 3
|
||||
Keyboard = 1
|
||||
Navigation = 1
|
||||
ScreenLayout = 2
|
||||
HasHardKeyboard = false
|
||||
HasFiveWayNavigation = false
|
||||
GL.Version = 196610
|
||||
Screen.Density = 420
|
||||
Screen.Width = 1080
|
||||
Screen.Height = 1794
|
||||
Platforms = arm64-v8a,armeabi-v7a,armeabi
|
||||
SharedLibraries = android.ext.services,android.ext.shared,android.test.runner,com.android.future.usb.accessory,com.android.location.provider,com.android.media.remotedisplay,com.android.mediadrm.signer,com.google.android.camera.experimental2016,com.google.android.dialer.support,com.google.android.gms,com.google.android.maps,com.google.android.media.effects,com.qualcomm.qcrilhook,com.qualcomm.qti.rcsservice,com.quicinc.cneapiclient,javax.obex,org.apache.http.legacy
|
||||
Features = android.hardware.audio.low_latency,android.hardware.audio.output,android.hardware.audio.pro,android.hardware.bluetooth,android.hardware.bluetooth_le,android.hardware.camera,android.hardware.camera.any,android.hardware.camera.autofocus,android.hardware.camera.capability.manual_post_processing,android.hardware.camera.capability.manual_sensor,android.hardware.camera.capability.raw,android.hardware.camera.flash,android.hardware.camera.front,android.hardware.camera.level.full,android.hardware.ethernet,android.hardware.faketouch,android.hardware.fingerprint,android.hardware.location,android.hardware.location.gps,android.hardware.location.network,android.hardware.microphone,android.hardware.nfc,android.hardware.nfc.any,android.hardware.nfc.hce,android.hardware.nfc.hcef,android.hardware.opengles.aep,android.hardware.screen.landscape,android.hardware.screen.portrait,android.hardware.sensor.accelerometer,android.hardware.sensor.barometer,android.hardware.sensor.compass,android.hardware.sensor.gyroscope,android.hardware.sensor.hifi_sensors,android.hardware.sensor.light,android.hardware.sensor.proximity,android.hardware.sensor.stepcounter,android.hardware.sensor.stepdetector,android.hardware.telephony,android.hardware.telephony.cdma,android.hardware.telephony.gsm,android.hardware.touchscreen,android.hardware.touchscreen.multitouch,android.hardware.touchscreen.multitouch.distinct,android.hardware.touchscreen.multitouch.jazzhand,android.hardware.usb.accessory,android.hardware.usb.host,android.hardware.vulkan.level,android.hardware.vulkan.version,android.hardware.wifi,android.hardware.wifi.direct,android.software.activities_on_secondary_displays,android.software.app_widgets,android.software.autofill,android.software.backup,android.software.companion_device_setup,android.software.connectionservice,android.software.cts,android.software.device_admin,android.software.home_screen,android.software.input_methods,android.software.live_wallpaper,android.software.managed_users,android.software.midi,android.software.picture_in_picture,android.software.print,android.software.sip,android.software.sip.voip,android.software.verified_boot,android.software.voice_recognizers,android.software.webview,com.google.android.apps.dialer.SUPPORTED,com.google.android.feature.EXCHANGE_6_2,com.google.android.feature.GOOGLE_BUILD,com.google.android.feature.GOOGLE_EXPERIENCE,com.nxp.mifare
|
||||
Locales = af,af_ZA,am,am_ET,ar,ar_EG,ar_XB,ast,az,bg,bg_BG,bn,ca,ca_ES,cs,cs_CZ,da,da_DK,de,de_DE,el,el_GR,en,en_AU,en_GB,en_IN,en_US,en_XA,es,es_ES,es_US,et,eu,fa,fa_IR,fi,fi_FI,fil,fil_PH,fr,fr_BE,fr_CA,fr_FR,gl,gu,hi,hi_IN,hr,hu,hu_HU,hy,in,in_ID,is,it,it_IT,iw,iw_IL,ja,ja_JP,ka,kk,km,kn,ko,ko_KR,ky,lo,lt,lt_LT,lv,lv_LV,mk,ml,mn,mr,ms,ms_MY,my,nb,nb_NO,ne,nl,nl_NL,pl,pl_PL,pt,pt_BR,pt_PT,ro,ro_RO,ru,ru_RU,si,sk,sk_SK,sl,sl_SI,sq,sr,sr_RS,sv,sv_SE,sw,sw_TZ,ta,te,th,th_TH,tr,tr_TR,uk,uk_UA,ur,uz,vi,vi_VN,zh,zh_CN,zh_HK,zh_TW,zu,zu_ZA
|
||||
GSF.version = 11951440
|
||||
Vending.version = 80844000
|
||||
Vending.versionString = 8.4.40.V-all [0] [PR] 176415973
|
||||
CellOperator = 310260
|
||||
SimOperator = 310260
|
||||
TimeZone = America/New_York
|
||||
GL.Extensions = GL_AMD_compressed_ATC_texture,GL_AMD_performance_monitor,GL_ANDROID_extension_pack_es31a,GL_APPLE_texture_2D_limited_npot,GL_ARB_texture_barrier,GL_ARB_vertex_buffer_object,GL_EXT_YUV_target,GL_EXT_blit_framebuffer_params,GL_EXT_buffer_storage,GL_EXT_color_buffer_float,GL_EXT_color_buffer_half_float,GL_EXT_copy_image,GL_EXT_debug_label,GL_EXT_debug_marker,GL_EXT_discard_framebuffer,GL_EXT_disjoint_timer_query,GL_EXT_draw_buffers_indexed,GL_EXT_geometry_shader,GL_EXT_gpu_shader5,GL_EXT_multisampled_render_to_texture,GL_EXT_multisampled_render_to_texture2,GL_EXT_primitive_bounding_box,GL_EXT_robustness,GL_EXT_sRGB,GL_EXT_sRGB_write_control,GL_EXT_shader_io_blocks,GL_EXT_shader_non_constant_global_initializers,GL_EXT_tessellation_shader,GL_EXT_texture_border_clamp,GL_EXT_texture_buffer,GL_EXT_texture_cube_map_array,GL_EXT_texture_filter_anisotropic,GL_EXT_texture_format_BGRA8888,GL_EXT_texture_norm16,GL_EXT_texture_sRGB_R8,GL_EXT_texture_sRGB_decode,GL_EXT_texture_type_2_10_10_10_REV,GL_KHR_blend_equation_advanced,GL_KHR_blend_equation_advanced_coherent,GL_KHR_debug,GL_KHR_no_error,GL_KHR_texture_compression_astc_ldr,GL_OES_EGL_image,GL_OES_EGL_image_external,GL_OES_EGL_image_external_essl3,GL_OES_EGL_sync,GL_OES_blend_equation_separate,GL_OES_blend_func_separate,GL_OES_blend_subtract,GL_OES_compressed_ETC1_RGB8_texture,GL_OES_compressed_paletted_texture,GL_OES_depth24,GL_OES_depth_texture,GL_OES_depth_texture_cube_map,GL_OES_draw_texture,GL_OES_element_index_uint,GL_OES_framebuffer_object,GL_OES_get_program_binary,GL_OES_matrix_palette,GL_OES_packed_depth_stencil,GL_OES_point_size_array,GL_OES_point_sprite,GL_OES_read_format,GL_OES_rgb8_rgba8,GL_OES_sample_shading,GL_OES_sample_variables,GL_OES_shader_image_atomic,GL_OES_shader_multisample_interpolation,GL_OES_standard_derivatives,GL_OES_stencil_wrap,GL_OES_surfaceless_context,GL_OES_texture_3D,GL_OES_texture_cube_map,GL_OES_texture_env_crossbar,GL_OES_texture_float,GL_OES_texture_float_linear,GL_OES_texture_half_float,GL_OES_texture_half_float_linear,GL_OES_texture_mirrored_repeat,GL_OES_texture_npot,GL_OES_texture_stencil8,GL_OES_texture_storage_multisample_2d_array,GL_OES_vertex_array_object,GL_OES_vertex_half_float,GL_OVR_multiview,GL_OVR_multiview2,GL_OVR_multiview_multisampled_render_to_texture,GL_QCOM_alpha_test,GL_QCOM_extended_get,GL_QCOM_shader_framebuffer_fetch_noncoherent,GL_QCOM_tiled_rendering
|
||||
Roaming = mobile-notroaming
|
||||
Client = android-google
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
UserReadableName = Acer Aspire One Cloudbook x86_64 (api23)
|
||||
Build.FINGERPRINT = Android-x86/android_x86_64/x86_64:6.0.1/MOB30M/cwhuang06080007:userdebug/test-keys
|
||||
Build.HARDWARE = android_x86_64
|
||||
Build.BRAND = Android-x86
|
||||
Build.RADIO = unknown
|
||||
Build.BOOTLOADER = unknown
|
||||
Build.DEVICE = x86_64
|
||||
Build.VERSION.SDK_INT = 23
|
||||
Build.MODEL = Aspire one 1-431
|
||||
Build.MANUFACTURER = Acer
|
||||
Build.PRODUCT = android_x86_64
|
||||
TouchScreen = 1
|
||||
Keyboard = 1
|
||||
Navigation = 1
|
||||
ScreenLayout = 4
|
||||
HasHardKeyboard = false
|
||||
HasFiveWayNavigation = false
|
||||
Screen.Density = 160
|
||||
Screen.Width = 1366
|
||||
Screen.Height = 720
|
||||
Platforms = x86_64,x86,arm64-v8a,armeabi-v7a,armeabi
|
||||
SharedLibraries = com.google.android.media.effects,com.android.location.provider,com.android.future.usb.accessory,javax.obex,com.google.android.gms,android.test.runner,org.apache.http.legacy,com.android.media.remotedisplay,com.android.mediadrm.signer
|
||||
Features = android.hardware.sensor.proximity,android.hardware.sensor.accelerometer,android.hardware.faketouch,org.cyanogenmod.appsuggest,android.hardware.usb.accessory,android.hardware.telephony.cdma,android.software.backup,android.hardware.touchscreen,android.hardware.touchscreen.multitouch,android.software.print,android.hardware.consumerir,org.cyanogenmod.partner,org.cyanogenmod.telephony,android.software.voice_recognizers,android.hardware.fingerprint,android.hardware.sensor.gyroscope,android.hardware.audio.low_latency,android.hardware.opengles.aep,android.hardware.bluetooth,android.hardware.camera.autofocus,com.google.android.feature.GOOGLE_BUILD,android.hardware.telephony.gsm,android.software.sip.voip,org.cyanogenmod.profiles,android.hardware.usb.host,com.cyanogenmod.android,android.hardware.audio.output,android.hardware.camera.flash,android.hardware.camera.front,android.hardware.sensor.hifi_sensors,android.hardware.screen.portrait,android.hardware.nfc,com.nxp.mifare,android.hardware.sensor.stepdetector,org.cyanogenmod.audio,org.cyanogenmod.theme,android.software.home_screen,android.hardware.microphone,org.cyanogenmod.statusbar,android.hardware.bluetooth_le,android.hardware.sensor.compass,android.hardware.touchscreen.multitouch.jazzhand,android.hardware.sensor.barometer,android.software.app_widgets,android.software.input_methods,android.hardware.sensor.light,android.software.device_admin,android.hardware.camera,org.cyanogenmod.hardware,android.hardware.screen.landscape,org.cyanogenmod.weather,org.cyanogenmod.performance,android.software.managed_users,android.software.webview,android.hardware.sensor.stepcounter,android.hardware.camera.capability.manual_post_processing,org.cyanogenmod.livedisplay,android.hardware.camera.any,android.hardware.camera.capability.raw,android.software.connectionservice,android.hardware.touchscreen.multitouch.distinct,android.hardware.location.network,android.software.sip,android.hardware.camera.capability.manual_sensor,android.hardware.camera.level.full,android.hardware.wifi.direct,android.software.live_wallpaper,com.google.android.feature.GOOGLE_EXPERIENCE,com.google.android.feature.EXCHANGE_6_2,org.cyanogenmod.theme.v1,org.cyanogenmod.livelockscreen,android.hardware.location.gps,android.software.midi,android.hardware.nfc.hce,android.hardware.wifi,android.hardware.location,android.hardware.telephony
|
||||
Locales = af,af_NA,af_ZA,agq,ak,ak_GH,am,am_ET,ar,ar_AE,ar_BH,ar_DJ,ar_DZ,ar_EG,ar_EH,ar_ER,ar_IL,ar_IQ,ar_JO,ar_KM,ar_KW,ar_LB,ar_LY,ar_MA,ar_MR,ar_OM,ar_PS,ar_QA,ar_SA,ar_SD,ar_SO,ar_SS,ar_SY,ar_TD,ar_TN,ar_YE,as,as_IN,asa,az,bas,be,be_BY,bem,bez,bg,bg_BG,bm,bn,bn_BD,bn_IN,bo,bo_CN,bo_IN,br,br_FR,brx,bs,ca,ca_AD,ca_ES,ca_FR,ca_IT,cgg,chr,cs,cs_CZ,cy,cy_GB,da,da_DK,da_GL,dav,de,de_AT,de_BE,de_CH,de_DE,de_LI,de_LU,dje,dsb,dua,dyo,dz,dz_BT,ebu,ee,ee_GH,ee_TG,el,el_CY,el_GR,en,en_AG,en_AI,en_AS,en_AU,en_BB,en_BE,en_BM,en_BS,en_BW,en_BZ,en_CA,en_CC,en_CK,en_CM,en_CX,en_DG,en_DM,en_ER,en_FJ,en_FK,en_FM,en_GB,en_GD,en_GG,en_GH,en_GI,en_GM,en_GU,en_GY,en_HK,en_IE,en_IM,en_IN,en_IO,en_JE,en_JM,en_KE,en_KI,en_KN,en_KY,en_LC,en_LR,en_LS,en_MG,en_MH,en_MO,en_MP,en_MS,en_MT,en_MU,en_MW,en_MY,en_NA,en_NF,en_NG,en_NR,en_NU,en_NZ,en_PG,en_PH,en_PK,en_PN,en_PR,en_PW,en_RW,en_SB,en_SC,en_SD,en_SG,en_SH,en_SL,en_SS,en_SX,en_SZ,en_TC,en_TK,en_TO,en_TT,en_TV,en_TZ,en_UG,en_UM,en_US,en_VC,en_VG,en_VI,en_VU,en_WS,en_ZA,en_ZM,en_ZW,eo,es,es_AR,es_BO,es_CL,es_CO,es_CR,es_CU,es_DO,es_EA,es_EC,es_ES,es_GQ,es_GT,es_HN,es_IC,es_MX,es_NI,es_PA,es_PE,es_PH,es_PR,es_PY,es_SV,es_US,es_UY,es_VE,et,et_EE,eu,eu_ES,ewo,fa,fa_AF,fa_IR,ff,ff_CM,ff_GN,ff_MR,ff_SN,fi,fi_FI,fil,fo,fo_FO,fr,fr_BE,fr_BF,fr_BI,fr_BJ,fr_BL,fr_CA,fr_CD,fr_CF,fr_CG,fr_CH,fr_CI,fr_CM,fr_DJ,fr_DZ,fr_FR,fr_GA,fr_GF,fr_GN,fr_GP,fr_GQ,fr_HT,fr_KM,fr_LU,fr_MA,fr_MC,fr_MF,fr_MG,fr_ML,fr_MQ,fr_MR,fr_MU,fr_NC,fr_NE,fr_PF,fr_PM,fr_RE,fr_RW,fr_SC,fr_SN,fr_SY,fr_TD,fr_TG,fr_TN,fr_VU,fr_WF,fr_YT,fur,fy,fy_NL,ga,ga_IE,gd,gd_GB,gl,gl_ES,gsw,gu,gu_IN,guz,gv,gv_IM,ha,haw,iw,iw_IL,hi,hi_IN,hr,hr_BA,hr_HR,hsb,hu,hu_HU,hy,hy_AM,in,in_ID,ig,ig_NG,ii,ii_CN,is,is_IS,it,it_CH,it_IT,it_SM,ja,ja_JP,jgo,jmc,ka,ka_GE,kab,kam,kde,kea,khq,ki,ki_KE,kk,kkj,kl,kl_GL,kln,km,km_KH,kn,kn_IN,ko,ko_KP,ko_KR,kok,ks,ksb,ksf,ksh,kw,kw_GB,ky,lag,lb,lb_LU,lg,lg_UG,lkt,ln,ln_AO,ln_CD,ln_CF,ln_CG,lo,lo_LA,lt,lt_LT,lu,lu_CD,luo,luy,lv,lv_LV,mas,mer,mfe,mg,mg_MG,mgh,mgo,mk,mk_MK,ml,ml_IN,mn,mr,mr_IN,ms,mt,mt_MT,mua,my,my_MM,naq,nb,nb_NO,nb_SJ,nd,nd_ZW,ne,ne_IN,ne_NP,nl,nl_AW,nl_BE,nl_BQ,nl_CW,nl_NL,nl_SR,nl_SX,nmg,nn,nn_NO,nnh,nus,nyn,om,om_ET,om_KE,or,or_IN,os,os_GE,os_RU,pa,pl,pl_PL,ps,ps_AF,pt,pt_AO,pt_BR,pt_CV,pt_GW,pt_MO,pt_MZ,pt_PT,pt_ST,pt_TL,qu,qu_BO,qu_EC,qu_PE,rm,rm_CH,rn,rn_BI,ro,ro_MD,ro_RO,rof,ru,ru_BY,ru_KG,ru_KZ,ru_MD,ru_RU,ru_UA,rw,rw_RW,rwk,sah,saq,sbp,se,se_FI,se_NO,se_SE,seh,ses,sg,sg_CF,shi,si,si_LK,sk,sk_SK,sl,sl_SI,smn,sn,sn_ZW,so,so_DJ,so_ET,so_KE,so_SO,sq,sq_AL,sq_MK,sq_XK,sr,sv,sv_AX,sv_FI,sv_SE,sw,sw_CD,sw_KE,sw_TZ,sw_UG,ta,ta_IN,ta_LK,ta_MY,ta_SG,te,te_IN,teo,th,th_TH,ti,ti_ER,ti_ET,to,to_TO,tr,tr_CY,tr_TR,twq,tzm,ug,uk,uk_UA,ur,ur_IN,ur_PK,uz,vai,vi,vi_VN,vun,wae,xog,yav,ji,yo,yo_BJ,yo_NG,zgh,zh,zu,zu_ZA
|
||||
Client = android-google
|
||||
GSF.version = 10548448
|
||||
Vending.version = 80798000
|
||||
CellOperator = 310260
|
||||
SimOperator = 310260
|
||||
Roaming = mobile-notroaming
|
||||
TimeZone = Europe/Moscow
|
||||
GL.Version = 131072
|
||||
GL.Extensions = GL_AMD_compressed_ATC_texture,GL_AMD_performance_monitor,GL_ANDROID_extension_pack_es31a,GL_APPLE_texture_2D_limited_npot,GL_ARB_vertex_buffer_object,GL_ARM_shader_framebuffer_fetch_depth_stencil,GL_EXT_YUV_target,GL_EXT_blit_framebuffer_params,GL_EXT_buffer_storage,GL_EXT_color_buffer_float,GL_EXT_color_buffer_half_float,GL_EXT_copy_image,GL_EXT_debug_label,GL_EXT_debug_marker,GL_EXT_discard_framebuffer,GL_EXT_disjoint_timer_query,GL_EXT_draw_buffers_indexed,GL_EXT_geometry_shader,GL_EXT_gpu_shader5,GL_EXT_multisampled_render_to_texture,GL_EXT_primitive_bounding_box,GL_EXT_robustness,GL_EXT_sRGB,GL_EXT_sRGB_write_control,GL_EXT_shader_framebuffer_fetch,GL_EXT_shader_io_blocks,GL_EXT_tessellation_shader,GL_EXT_texture_border_clamp,GL_EXT_texture_buffer,GL_EXT_texture_cube_map_array,GL_EXT_texture_filter_anisotropic,GL_EXT_texture_format_BGRA8888,GL_EXT_texture_norm16,GL_EXT_texture_sRGB_R8,GL_EXT_texture_sRGB_decode,GL_EXT_texture_type_2_10_10_10_REV,GL_KHR_blend_equation_advanced,GL_KHR_blend_equation_advanced_coherent,GL_KHR_debug,GL_KHR_no_error,GL_KHR_texture_compression_astc_hdr,GL_KHR_texture_compression_astc_ldr,GL_OES_EGL_image,GL_OES_EGL_image_external,GL_OES_EGL_sync,GL_OES_blend_equation_separate,GL_OES_blend_func_separate,GL_OES_blend_subtract,GL_OES_compressed_ETC1_RGB8_texture,GL_OES_compressed_paletted_texture,GL_OES_depth24,GL_OES_depth_texture,GL_OES_depth_texture_cube_map,GL_OES_draw_texture,GL_OES_element_index_uint,GL_OES_framebuffer_object,GL_OES_get_program_binary,GL_OES_matrix_palette,GL_OES_packed_depth_stencil,GL_OES_point_size_array,GL_OES_point_sprite,GL_OES_read_format,GL_OES_rgb8_rgba8,GL_OES_sample_shading,GL_OES_sample_variables,GL_OES_shader_image_atomic,GL_OES_shader_multisample_interpolation,GL_OES_standard_derivatives,GL_OES_stencil_wrap,GL_OES_surfaceless_context,GL_OES_texture_3D,GL_OES_texture_compression_astc,GL_OES_texture_cube_map,GL_OES_texture_env_crossbar,GL_OES_texture_float,GL_OES_texture_float_linear,GL_OES_texture_half_float,GL_OES_texture_half_float_linear,GL_OES_texture_mirrored_repeat,GL_OES_texture_npot,GL_OES_texture_stencil8,GL_OES_texture_storage_multisample_2d_array,GL_OES_vertex_array_object,GL_OES_vertex_half_float,GL_OVR_multiview,GL_OVR_multiview2,GL_OVR_multiview_multisampled_render_to_texture,GL_QCOM_alpha_test,GL_QCOM_extended_get,GL_QCOM_tiled_rendering,GL_EXT_multi_draw_arrays,GL_EXT_shader_texture_lod,GL_IMG_multisampled_render_to_texture,GL_IMG_program_binary,GL_IMG_read_format,GL_IMG_shader_binary,GL_IMG_texture_compression_pvrtc,GL_IMG_texture_format_BGRA8888,GL_IMG_texture_npot,GL_IMG_vertex_array_object,GL_OES_byte_coordinates,GL_OES_extended_matrix_palette,GL_OES_fixed_point,GL_OES_fragment_precision_high,GL_OES_mapbuffer,GL_OES_matrix_get,GL_OES_query_matrix,GL_OES_required_internalformat,GL_OES_single_precision,GL_OES_stencil8
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
UserReadableName = Wileyfox Swift (api25)
|
||||
Build.HARDWARE = qcom
|
||||
Build.RADIO = unknown
|
||||
Build.BOOTLOADER = crackling-13-ge86e772
|
||||
Build.FINGERPRINT = Wileyfox/Swift/crackling:7.1.1/N6F26Y/5506d7d322:user/release-keys
|
||||
Build.BRAND = Wileyfox
|
||||
Build.DEVICE = crackling
|
||||
Build.VERSION.SDK_INT = 25
|
||||
Build.MODEL = Wileyfox Swift
|
||||
Build.MANUFACTURER = Wileyfox
|
||||
Build.PRODUCT = Swift
|
||||
TouchScreen = 3
|
||||
Keyboard = 1
|
||||
Navigation = 1
|
||||
ScreenLayout = 2
|
||||
HasHardKeyboard = false
|
||||
HasFiveWayNavigation = false
|
||||
GL.Version = 196608
|
||||
GSF.version = 11055446
|
||||
Vending.version = 80798000
|
||||
Screen.Density = 256
|
||||
Screen.Width = 720
|
||||
Screen.Height = 1203
|
||||
Platforms = arm64-v8a,armeabi-v7a,armeabi
|
||||
SharedLibraries = android.ext.services,android.ext.shared,android.test.runner,com.android.future.usb.accessory,com.android.location.provider,com.android.media.remotedisplay,com.android.mediadrm.signer,com.dsi.ant.antradio_library,com.google.android.dialer.support,com.google.android.gms,com.google.android.maps,com.google.android.media.effects,com.google.widevine.software.drm,com.qualcomm.qcnvitems,com.qualcomm.qcrilhook,javax.obex,org.apache.http.legacy,org.cyanogenmod.hardware,org.cyanogenmod.platform
|
||||
Features = android.hardware.audio.low_latency,android.hardware.audio.output,android.hardware.bluetooth,android.hardware.bluetooth_le,android.hardware.camera,android.hardware.camera.any,android.hardware.camera.autofocus,android.hardware.camera.flash,android.hardware.camera.front,android.hardware.faketouch,android.hardware.location,android.hardware.location.gps,android.hardware.location.network,android.hardware.microphone,android.hardware.screen.landscape,android.hardware.screen.portrait,android.hardware.sensor.accelerometer,android.hardware.sensor.compass,android.hardware.sensor.gyroscope,android.hardware.sensor.light,android.hardware.sensor.proximity,android.hardware.telephony,android.hardware.telephony.cdma,android.hardware.telephony.gsm,android.hardware.touchscreen,android.hardware.touchscreen.multitouch,android.hardware.touchscreen.multitouch.distinct,android.hardware.touchscreen.multitouch.jazzhand,android.hardware.usb.accessory,android.hardware.wifi,android.hardware.wifi.direct,android.software.app_widgets,android.software.backup,android.software.connectionservice,android.software.device_admin,android.software.home_screen,android.software.input_methods,android.software.live_wallpaper,android.software.managed_users,android.software.midi,android.software.print,android.software.sip,android.software.sip.voip,android.software.voice_recognizers,android.software.webview,com.cyanogenmod.android,com.google.android.feature.EXCHANGE_6_2,com.google.android.feature.GOOGLE_BUILD,com.google.android.feature.GOOGLE_EXPERIENCE,org.cyanogenmod.appsuggest,org.cyanogenmod.audio,org.cyanogenmod.hardware,org.cyanogenmod.livedisplay,org.cyanogenmod.livelockscreen,org.cyanogenmod.partner,org.cyanogenmod.performance,org.cyanogenmod.profiles,org.cyanogenmod.statusbar,org.cyanogenmod.telephony,org.cyanogenmod.theme,org.cyanogenmod.theme.v1,org.cyanogenmod.weather
|
||||
Locales = af,af_ZA,am,am_ET,ar,ar_EG,ar_XB,ast_ES,az_AZ,be,be_BY,bg,bg_BG,bn_BD,bs_BA,ca,ca_ES,cs,cs_CZ,da,da_DK,de,de_AT,de_CH,de_DE,de_LI,el,el_GR,en,en_AU,en_CA,en_GB,en_IN,en_NZ,en_SG,en_US,en_XA,eo,es,es_ES,es_US,et_EE,eu_ES,fa,fa_IR,fi,fi_FI,fil,fil_PH,fr,fr_BE,fr_CA,fr_CH,fr_FR,gl_ES,gu_IN,hi,hi_IN,hr,hr_HR,hu,hu_HU,hy_AM,in,in_ID,is_IS,it,it_CH,it_IT,iw,iw_IL,ja,ja_JP,ka_GE,kk_KZ,km_KH,kn_IN,ko,ko_KR,ku,ky_KG,lb,lo_LA,lt,lt_LT,lv,lv_LV,mk_MK,ml_IN,mn_MN,mr_IN,ms_MY,my_MM,nb,nb_NO,ne_NP,nl,nl_BE,nl_NL,pa_IN,pl,pl_PL,pt,pt_BR,pt_PT,ro,ro_RO,ru,ru_RU,si_LK,sk,sk_SK,sl,sl_SI,sq_AL,sr,sr_RS,sv,sv_SE,sw,sw_TZ,ta_IN,te_IN,th,th_TH,tr,tr_TR,uk,uk_UA,ur_PK,uz_UZ,vi,vi_VN,zh,zh_CN,zh_HK,zh_TW,zu,zu_ZA
|
||||
CellOperator = 23420
|
||||
SimOperator = 23420
|
||||
Roaming = mobile-notroaming
|
||||
Client = android-google
|
||||
TimeZone = Europe/London
|
||||
GL.Extensions = GL_AMD_compressed_ATC_texture,GL_AMD_performance_monitor,GL_AMD_program_binary_Z400,GL_APPLE_texture_2D_limited_npot,GL_ARB_vertex_buffer_object,GL_EXT_color_buffer_float,GL_EXT_color_buffer_half_float,GL_EXT_debug_label,GL_EXT_debug_marker,GL_EXT_discard_framebuffer,GL_EXT_disjoint_timer_query,GL_EXT_multisampled_render_to_texture,GL_EXT_robustness,GL_EXT_sRGB,GL_EXT_sRGB_write_control,GL_EXT_texture_filter_anisotropic,GL_EXT_texture_format_BGRA8888,GL_EXT_texture_sRGB_decode,GL_EXT_texture_type_2_10_10_10_REV,GL_NV_fence,GL_OES_EGL_image,GL_OES_EGL_image_external,GL_OES_EGL_sync,GL_OES_blend_equation_separate,GL_OES_blend_func_separate,GL_OES_blend_subtract,GL_OES_compressed_ETC1_RGB8_texture,GL_OES_compressed_paletted_texture,GL_OES_depth24,GL_OES_depth_texture,GL_OES_depth_texture_cube_map,GL_OES_draw_texture,GL_OES_element_index_uint,GL_OES_fbo_render_mipmap,GL_OES_fragment_precision_high,GL_OES_framebuffer_object,GL_OES_get_program_binary,GL_OES_matrix_palette,GL_OES_packed_depth_stencil,GL_OES_point_size_array,GL_OES_point_sprite,GL_OES_read_format,GL_OES_rgb8_rgba8,GL_OES_standard_derivatives,GL_OES_stencil_wrap,GL_OES_texture_3D,GL_OES_texture_cube_map,GL_OES_texture_env_crossbar,GL_OES_texture_float,GL_OES_texture_half_float,GL_OES_texture_half_float_linear,GL_OES_texture_mirrored_repeat,GL_OES_texture_npot,GL_OES_vertex_array_object,GL_OES_vertex_half_float,GL_OES_vertex_type_10_10_10_2,GL_QCOM_alpha_test,GL_QCOM_binning_control,GL_QCOM_driver_control,GL_QCOM_extended_get,GL_QCOM_extended_get2,GL_QCOM_perfmon_global_mode,GL_QCOM_tiled_rendering,GL_QCOM_writeonly_rendering
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
UserReadableName = ChuWi V88S (api19)
|
||||
Build.FINGERPRINT = rockchip/rk3188/rk3188:4.4.2/KOT49H/eng.bob.20140416.174825:eng/test-keys
|
||||
Build.HARDWARE = rk30board
|
||||
Build.BRAND = ChuWi
|
||||
Build.RADIO = unknown
|
||||
Build.BOOTLOADER = unknown
|
||||
Build.DEVICE = rk3188
|
||||
Build.VERSION.SDK_INT = 19
|
||||
Build.MODEL = CW-V88S
|
||||
Build.MANUFACTURER = rockchip
|
||||
Build.PRODUCT = rk3188
|
||||
TouchScreen = 3
|
||||
Keyboard = 1
|
||||
Navigation = 1
|
||||
ScreenLayout = 4
|
||||
HasHardKeyboard = false
|
||||
HasFiveWayNavigation = false
|
||||
Screen.Density = 160
|
||||
Screen.Width = 1024
|
||||
Screen.Height = 720
|
||||
Platforms = armeabi-v7a,armeabi
|
||||
SharedLibraries = javax.obex,com.android.future.usb.accessory,com.google.android.media.effects,android.test.runner,com.google.widevine.software.drm,com.google.android.maps,com.android.location.provider,com.android.media.remotedisplay
|
||||
Features = android.hardware.sensor.proximity,android.hardware.sensor.accelerometer,android.hardware.faketouch,org.cyanogenmod.appsuggest,android.hardware.usb.accessory,android.hardware.telephony.cdma,android.software.backup,android.hardware.touchscreen,android.hardware.touchscreen.multitouch,android.software.print,android.hardware.consumerir,org.cyanogenmod.partner,org.cyanogenmod.telephony,android.software.voice_recognizers,android.hardware.fingerprint,android.hardware.sensor.gyroscope,android.hardware.audio.low_latency,android.hardware.opengles.aep,android.hardware.bluetooth,android.hardware.camera.autofocus,com.google.android.feature.GOOGLE_BUILD,android.hardware.telephony.gsm,android.software.sip.voip,org.cyanogenmod.profiles,android.hardware.usb.host,com.cyanogenmod.android,android.hardware.audio.output,android.hardware.camera.flash,android.hardware.camera.front,android.hardware.sensor.hifi_sensors,android.hardware.screen.portrait,android.hardware.nfc,com.nxp.mifare,android.hardware.sensor.stepdetector,org.cyanogenmod.audio,org.cyanogenmod.theme,android.software.home_screen,android.hardware.microphone,org.cyanogenmod.statusbar,android.hardware.bluetooth_le,android.hardware.sensor.compass,android.hardware.touchscreen.multitouch.jazzhand,android.hardware.sensor.barometer,android.software.app_widgets,android.software.input_methods,android.hardware.sensor.light,android.software.device_admin,android.hardware.camera,org.cyanogenmod.hardware,android.hardware.screen.landscape,org.cyanogenmod.weather,org.cyanogenmod.performance,android.software.managed_users,android.software.webview,android.hardware.sensor.stepcounter,android.hardware.camera.capability.manual_post_processing,org.cyanogenmod.livedisplay,android.hardware.camera.any,android.hardware.camera.capability.raw,android.software.connectionservice,android.hardware.touchscreen.multitouch.distinct,android.hardware.location.network,android.software.sip,android.hardware.camera.capability.manual_sensor,android.hardware.camera.level.full,android.hardware.wifi.direct,android.software.live_wallpaper,com.google.android.feature.GOOGLE_EXPERIENCE,com.google.android.feature.EXCHANGE_6_2,org.cyanogenmod.theme.v1,org.cyanogenmod.livelockscreen,android.hardware.location.gps,android.software.midi,android.hardware.nfc.hce,android.hardware.wifi,android.hardware.location,android.hardware.telephony
|
||||
Locales = af,af_NA,af_ZA,agq,ak,ak_GH,am,am_ET,ar,ar_AE,ar_BH,ar_DJ,ar_DZ,ar_EG,ar_EH,ar_ER,ar_IL,ar_IQ,ar_JO,ar_KM,ar_KW,ar_LB,ar_LY,ar_MA,ar_MR,ar_OM,ar_PS,ar_QA,ar_SA,ar_SD,ar_SO,ar_SY,ar_TD,ar_TN,ar_YE,as,as_IN,asa,az,bas,be,be_BY,bem,bez,bg,bg_BG,bm,bm_ML,bn,bn_BD,bn_IN,bo,bo_CN,bo_IN,br,br_FR,brx,bs,ca,ca_AD,ca_ES,cgg,chr,cs,cs_CZ,cy,cy_GB,da,da_DK,dav,de,de_AT,de_BE,de_CH,de_DE,de_LI,de_LU,dje,dua,dyo,dz,dz_BT,ebu,ee,ee_GH,ee_TG,el,el_CY,el_GR,en,en_AG,en_AS,en_AU,en_BB,en_BE,en_BM,en_BS,en_BW,en_BZ,en_CA,en_CM,en_DM,en_FJ,en_FM,en_GB,en_GD,en_GG,en_GH,en_GI,en_GM,en_GU,en_GY,en_HK,en_IE,en_IM,en_IN,en_JE,en_JM,en_KE,en_KI,en_KN,en_KY,en_LC,en_LR,en_LS,en_MG,en_MH,en_MP,en_MT,en_MU,en_MW,en_NA,en_NG,en_NZ,en_PG,en_PH,en_PK,en_PR,en_PW,en_SB,en_SC,en_SG,en_SL,en_SS,en_SZ,en_TC,en_TO,en_TT,en_TZ,en_UG,en_UM,en_US,en_VC,en_VG,en_VI,en_VU,en_WS,en_ZA,en_ZM,en_ZW,eo,es,es_AR,es_BO,es_CL,es_CO,es_CR,es_CU,es_DO,es_EA,es_EC,es_ES,es_GQ,es_GT,es_HN,es_IC,es_MX,es_NI,es_PA,es_PE,es_PH,es_PR,es_PY,es_SV,es_US,es_UY,es_VE,et,et_EE,eu,eu_ES,ewo,fa,fa_AF,fa_IR,ff,ff_SN,fi,fi_FI,fil,fo,fo_FO,fr,fr_BE,fr_BF,fr_BI,fr_BJ,fr_BL,fr_CA,fr_CD,fr_CF,fr_CG,fr_CH,fr_CI,fr_CM,fr_DJ,fr_DZ,fr_FR,fr_GA,fr_GF,fr_GN,fr_GP,fr_GQ,fr_HT,fr_KM,fr_LU,fr_MA,fr_MC,fr_MF,fr_MG,fr_ML,fr_MQ,fr_MR,fr_MU,fr_NC,fr_NE,fr_PF,fr_RE,fr_RW,fr_SC,fr_SN,fr_SY,fr_TD,fr_TG,fr_TN,fr_VU,fr_YT,ga,ga_IE,gl,gl_ES,gsw,gu,gu_IN,guz,gv,gv_GB,ha,haw,iw,iw_IL,hi,hi_IN,hr,hr_BA,hr_HR,hu,hu_HU,hy,hy_AM,in,in_ID,ig,ig_NG,ii,ii_CN,is,is_IS,it,it_CH,it_IT,it_SM,ja,ja_JP,jgo,jmc,ka,ka_GE,kab,kam,kde,kea,khq,ki,ki_KE,kk,kl,kl_GL,kln,km,km_KH,kn,kn_IN,ko,ko_KP,ko_KR,kok,ks,ksb,ksf,kw,kw_GB,lag,lg,lg_UG,ln,ln_AO,ln_CD,ln_CF,ln_CG,lo,lo_LA,lt,lt_LT,lu,lu_CD,luo,luy,lv,lv_LV,mas,mer,mfe,mg,mg_MG,mgh,mgo,mk,mk_MK,ml,ml_IN,mn,mr,mr_IN,ms,mt,mt_MT,mua,my,my_MM,naq,nb,nb_NO,nd,nd_ZW,ne,ne_IN,ne_NP,nl,nl_AW,nl_BE,nl_CW,nl_NL,nl_SR,nl_SX,nmg,nn,nn_NO,nus,nyn,om,om_ET,om_KE,or,or_IN,pa,pl,pl_PL,ps,ps_AF,pt,pt_AO,pt_BR,pt_CV,pt_GW,pt_MO,pt_MZ,pt_PT,pt_ST,pt_TL,rm,rm_CH,rn,rn_BI,ro,ro_MD,ro_RO,rof,ru,ru_BY,ru_KG,ru_KZ,ru_MD,ru_RU,ru_UA,rw,rw_RW,rwk,saq,sbp,seh,ses,sg,sg_CF,shi,si,si_LK,sk,sk_SK,sl,sl_SI,sn,sn_ZW,so,so_DJ,so_ET,so_KE,so_SO,sq,sq_AL,sq_MK,sr,sv,sv_AX,sv_FI,sv_SE,sw,sw_KE,sw_TZ,sw_UG,swc,ta,ta_IN,ta_LK,ta_MY,ta_SG,te,te_IN,teo,th,th_TH,ti,ti_ER,ti_ET,to,to_TO,tr,tr_CY,tr_TR,twq,tzm,uk,uk_UA,ur,ur_IN,ur_PK,uz,vai,vi,vi_VN,vun,xog,yav,yo,yo_NG,zh,zu,zu_ZA
|
||||
Client = android-google
|
||||
GSF.version = 10548448
|
||||
Vending.version = 80798000
|
||||
CellOperator = 310260
|
||||
SimOperator = 310260
|
||||
Roaming = mobile-notroaming
|
||||
TimeZone = Europe/Moscow
|
||||
GL.Version = 131072
|
||||
GL.Extensions = GL_AMD_compressed_ATC_texture,GL_AMD_performance_monitor,GL_ANDROID_extension_pack_es31a,GL_APPLE_texture_2D_limited_npot,GL_ARB_vertex_buffer_object,GL_ARM_shader_framebuffer_fetch_depth_stencil,GL_EXT_YUV_target,GL_EXT_blit_framebuffer_params,GL_EXT_buffer_storage,GL_EXT_color_buffer_float,GL_EXT_color_buffer_half_float,GL_EXT_copy_image,GL_EXT_debug_label,GL_EXT_debug_marker,GL_EXT_discard_framebuffer,GL_EXT_disjoint_timer_query,GL_EXT_draw_buffers_indexed,GL_EXT_geometry_shader,GL_EXT_gpu_shader5,GL_EXT_multisampled_render_to_texture,GL_EXT_primitive_bounding_box,GL_EXT_robustness,GL_EXT_sRGB,GL_EXT_sRGB_write_control,GL_EXT_shader_framebuffer_fetch,GL_EXT_shader_io_blocks,GL_EXT_tessellation_shader,GL_EXT_texture_border_clamp,GL_EXT_texture_buffer,GL_EXT_texture_cube_map_array,GL_EXT_texture_filter_anisotropic,GL_EXT_texture_format_BGRA8888,GL_EXT_texture_norm16,GL_EXT_texture_sRGB_R8,GL_EXT_texture_sRGB_decode,GL_EXT_texture_type_2_10_10_10_REV,GL_KHR_blend_equation_advanced,GL_KHR_blend_equation_advanced_coherent,GL_KHR_debug,GL_KHR_no_error,GL_KHR_texture_compression_astc_hdr,GL_KHR_texture_compression_astc_ldr,GL_OES_EGL_image,GL_OES_EGL_image_external,GL_OES_EGL_sync,GL_OES_blend_equation_separate,GL_OES_blend_func_separate,GL_OES_blend_subtract,GL_OES_compressed_ETC1_RGB8_texture,GL_OES_compressed_paletted_texture,GL_OES_depth24,GL_OES_depth_texture,GL_OES_depth_texture_cube_map,GL_OES_draw_texture,GL_OES_element_index_uint,GL_OES_framebuffer_object,GL_OES_get_program_binary,GL_OES_matrix_palette,GL_OES_packed_depth_stencil,GL_OES_point_size_array,GL_OES_point_sprite,GL_OES_read_format,GL_OES_rgb8_rgba8,GL_OES_sample_shading,GL_OES_sample_variables,GL_OES_shader_image_atomic,GL_OES_shader_multisample_interpolation,GL_OES_standard_derivatives,GL_OES_stencil_wrap,GL_OES_surfaceless_context,GL_OES_texture_3D,GL_OES_texture_compression_astc,GL_OES_texture_cube_map,GL_OES_texture_env_crossbar,GL_OES_texture_float,GL_OES_texture_float_linear,GL_OES_texture_half_float,GL_OES_texture_half_float_linear,GL_OES_texture_mirrored_repeat,GL_OES_texture_npot,GL_OES_texture_stencil8,GL_OES_texture_storage_multisample_2d_array,GL_OES_vertex_array_object,GL_OES_vertex_half_float,GL_OVR_multiview,GL_OVR_multiview2,GL_OVR_multiview_multisampled_render_to_texture,GL_QCOM_alpha_test,GL_QCOM_extended_get,GL_QCOM_tiled_rendering,GL_EXT_multi_draw_arrays,GL_EXT_shader_texture_lod,GL_IMG_multisampled_render_to_texture,GL_IMG_program_binary,GL_IMG_read_format,GL_IMG_shader_binary,GL_IMG_texture_compression_pvrtc,GL_IMG_texture_format_BGRA8888,GL_IMG_texture_npot,GL_IMG_vertex_array_object,GL_OES_byte_coordinates,GL_OES_extended_matrix_palette,GL_OES_fixed_point,GL_OES_fragment_precision_high,GL_OES_mapbuffer,GL_OES_matrix_get,GL_OES_query_matrix,GL_OES_required_internalformat,GL_OES_single_precision,GL_OES_stencil8
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
UserReadableName = Asus EeePad hwkb (api18)
|
||||
Build.HARDWARE = cardhu
|
||||
Build.RADIO = unknown
|
||||
Build.BOOTLOADER = unknown
|
||||
Build.FINGERPRINT = asus/WW_epad/EeePad:4.1.1/JRO03C/WW_epad-10.4.2.18-20121122:user/release-keys
|
||||
Build.BRAND = Asus
|
||||
Build.DEVICE = tf300t
|
||||
Build.VERSION.SDK_INT = 18
|
||||
Build.MODEL = TF300T
|
||||
Build.MANUFACTURER = Asus
|
||||
Build.PRODUCT = EeePad
|
||||
TouchScreen = 3
|
||||
Keyboard = 2
|
||||
Navigation = 1
|
||||
ScreenLayout = 4
|
||||
HasHardKeyboard = true
|
||||
HasFiveWayNavigation = false
|
||||
Screen.Density = 160
|
||||
Screen.Width = 1280
|
||||
Screen.Height = 752
|
||||
Platforms = armeabi-v7a,armeabi
|
||||
SharedLibraries = android.test.runner,javax.obex,com.android.future.usb.accessory,com.android.location.provider,com.cyanogenmod.asusdec,org.cyanogenmod.hardware
|
||||
Features = android.hardware.sensor.proximity,android.hardware.sensor.accelerometer,android.hardware.faketouch,org.cyanogenmod.appsuggest,android.hardware.usb.accessory,android.hardware.telephony.cdma,android.software.backup,android.hardware.touchscreen,android.hardware.touchscreen.multitouch,android.software.print,android.hardware.consumerir,org.cyanogenmod.partner,org.cyanogenmod.telephony,android.software.voice_recognizers,android.hardware.fingerprint,android.hardware.sensor.gyroscope,android.hardware.audio.low_latency,android.hardware.opengles.aep,android.hardware.bluetooth,android.hardware.camera.autofocus,com.google.android.feature.GOOGLE_BUILD,android.hardware.telephony.gsm,android.software.sip.voip,org.cyanogenmod.profiles,android.hardware.usb.host,com.cyanogenmod.android,android.hardware.audio.output,android.hardware.camera.flash,android.hardware.camera.front,android.hardware.sensor.hifi_sensors,android.hardware.screen.portrait,android.hardware.nfc,com.nxp.mifare,android.hardware.sensor.stepdetector,org.cyanogenmod.audio,org.cyanogenmod.theme,android.software.home_screen,android.hardware.microphone,org.cyanogenmod.statusbar,android.hardware.bluetooth_le,android.hardware.sensor.compass,android.hardware.touchscreen.multitouch.jazzhand,android.hardware.sensor.barometer,android.software.app_widgets,android.software.input_methods,android.hardware.sensor.light,android.software.device_admin,android.hardware.camera,org.cyanogenmod.hardware,android.hardware.screen.landscape,org.cyanogenmod.weather,org.cyanogenmod.performance,android.software.managed_users,android.software.webview,android.hardware.sensor.stepcounter,android.hardware.camera.capability.manual_post_processing,org.cyanogenmod.livedisplay,android.hardware.camera.any,android.hardware.camera.capability.raw,android.software.connectionservice,android.hardware.touchscreen.multitouch.distinct,android.hardware.location.network,android.software.sip,android.hardware.camera.capability.manual_sensor,android.hardware.camera.level.full,android.hardware.wifi.direct,android.software.live_wallpaper,com.google.android.feature.GOOGLE_EXPERIENCE,com.google.android.feature.EXCHANGE_6_2,org.cyanogenmod.theme.v1,org.cyanogenmod.livelockscreen,android.hardware.location.gps,android.software.midi,android.hardware.nfc.hce,android.hardware.wifi,android.hardware.location,android.hardware.telephony
|
||||
Locales = af,af_NA,af_ZA,am,am_ET,ar,ar_AE,ar_BH,ar_DZ,ar_EG,ar_IQ,ar_JO,ar_KW,ar_LB,ar_LY,ar_MA,ar_OM,ar_QA,ar_SA,ar_SD,ar_SY,ar_TN,ar_YE,be,be_BY,bg,bg_BG,bn,bn_BD,bn_IN,ca,ca_ES,cs,cs_CZ,da,da_DK,de,de_AT,de_BE,de_CH,de_DE,de_LI,de_LU,el,el_GR,en,en_AG,en_AS,en_AU,en_BB,en_BE,en_BM,en_BS,en_BW,en_BZ,en_CA,en_CM,en_DM,en_FJ,en_FM,en_GB,en_GD,en_GG,en_GH,en_GI,en_GM,en_GU,en_GY,en_HK,en_IE,en_IM,en_IN,en_JE,en_JM,en_KE,en_KI,en_KN,en_KY,en_LC,en_LR,en_LS,en_MG,en_MH,en_MP,en_MT,en_MU,en_MW,en_NA,en_NG,en_NH,en_NZ,en_PG,en_PH,en_PK,en_PR,en_PW,en_RH,en_SB,en_SC,en_SG,en_SL,en_SS,en_SZ,en_TC,en_TO,en_TT,en_TZ,en_UG,en_UM,en_US,en_VC,en_VG,en_VI,en_VU,en_WS,en_ZA,en_ZM,en_ZW,es,es_AR,es_BO,es_CL,es_CO,es_CR,es_CU,es_DO,es_EC,es_ES,es_GT,es_HN,es_MX,es_NI,es_PA,es_PE,es_PR,es_PY,es_SV,es_US,es_UY,es_VE,et,et_EE,fa,fa_AF,fa_IR,fi,fi_FI,fil,fr,fr_BE,fr_CA,fr_CH,fr_FR,fr_LU,fr_MC,iw,iw_IL,hi,hi_IN,hr,hr_HR,hu,hu_HU,in,in_ID,is,is_IS,it,it_CH,it_IT,ja,ja_JP,ko,ko_KP,ko_KR,lt,lt_LT,lv,lv_LV,mr,mr_IN,ms,ms_BN,ms_MY,nb,nb_NO,nl,nl_BE,nl_NL,pl,pl_PL,pt,pt_AO,pt_BR,pt_CV,pt_GW,pt_MO,pt_MZ,pt_PT,pt_ST,pt_TL,rm,rm_CH,ro,ro_RO,ru,ru_RU,ru_UA,sk,sk_SK,sl,sl_SI,sr,sr_BA,sr_CS,sr_ME,sr_RS,sr_YU,sv,sv_FI,sv_SE,sw,sw_KE,sw_TZ,ta,ta_IN,ta_LK,ta_MY,ta_SG,th,th_TH,tl,tl_PH,tr,tr_TR,uk,uk_UA,vi,vi_VN,zh,zh_CN,zh_HK,zh_MO,zh_SG,zh_TW,zu,zu_ZA
|
||||
GL.Version = 131072
|
||||
GL.Extensions = GL_AMD_compressed_ATC_texture,GL_AMD_performance_monitor,GL_ANDROID_extension_pack_es31a,GL_APPLE_texture_2D_limited_npot,GL_ARB_vertex_buffer_object,GL_ARM_shader_framebuffer_fetch_depth_stencil,GL_EXT_YUV_target,GL_EXT_blit_framebuffer_params,GL_EXT_buffer_storage,GL_EXT_color_buffer_float,GL_EXT_color_buffer_half_float,GL_EXT_copy_image,GL_EXT_debug_label,GL_EXT_debug_marker,GL_EXT_discard_framebuffer,GL_EXT_disjoint_timer_query,GL_EXT_draw_buffers_indexed,GL_EXT_geometry_shader,GL_EXT_gpu_shader5,GL_EXT_multisampled_render_to_texture,GL_EXT_primitive_bounding_box,GL_EXT_robustness,GL_EXT_sRGB,GL_EXT_sRGB_write_control,GL_EXT_shader_framebuffer_fetch,GL_EXT_shader_io_blocks,GL_EXT_tessellation_shader,GL_EXT_texture_border_clamp,GL_EXT_texture_buffer,GL_EXT_texture_cube_map_array,GL_EXT_texture_filter_anisotropic,GL_EXT_texture_format_BGRA8888,GL_EXT_texture_norm16,GL_EXT_texture_sRGB_R8,GL_EXT_texture_sRGB_decode,GL_EXT_texture_type_2_10_10_10_REV,GL_KHR_blend_equation_advanced,GL_KHR_blend_equation_advanced_coherent,GL_KHR_debug,GL_KHR_no_error,GL_KHR_texture_compression_astc_hdr,GL_KHR_texture_compression_astc_ldr,GL_OES_EGL_image,GL_OES_EGL_image_external,GL_OES_EGL_sync,GL_OES_blend_equation_separate,GL_OES_blend_func_separate,GL_OES_blend_subtract,GL_OES_compressed_ETC1_RGB8_texture,GL_OES_compressed_paletted_texture,GL_OES_depth24,GL_OES_depth_texture,GL_OES_depth_texture_cube_map,GL_OES_draw_texture,GL_OES_element_index_uint,GL_OES_framebuffer_object,GL_OES_get_program_binary,GL_OES_matrix_palette,GL_OES_packed_depth_stencil,GL_OES_point_size_array,GL_OES_point_sprite,GL_OES_read_format,GL_OES_rgb8_rgba8,GL_OES_sample_shading,GL_OES_sample_variables,GL_OES_shader_image_atomic,GL_OES_shader_multisample_interpolation,GL_OES_standard_derivatives,GL_OES_stencil_wrap,GL_OES_surfaceless_context,GL_OES_texture_3D,GL_OES_texture_compression_astc,GL_OES_texture_cube_map,GL_OES_texture_env_crossbar,GL_OES_texture_float,GL_OES_texture_float_linear,GL_OES_texture_half_float,GL_OES_texture_half_float_linear,GL_OES_texture_mirrored_repeat,GL_OES_texture_npot,GL_OES_texture_stencil8,GL_OES_texture_storage_multisample_2d_array,GL_OES_vertex_array_object,GL_OES_vertex_half_float,GL_OVR_multiview,GL_OVR_multiview2,GL_OVR_multiview_multisampled_render_to_texture,GL_QCOM_alpha_test,GL_QCOM_extended_get,GL_QCOM_tiled_rendering,GL_EXT_multi_draw_arrays,GL_EXT_shader_texture_lod,GL_IMG_multisampled_render_to_texture,GL_IMG_program_binary,GL_IMG_read_format,GL_IMG_shader_binary,GL_IMG_texture_compression_pvrtc,GL_IMG_texture_format_BGRA8888,GL_IMG_texture_npot,GL_IMG_vertex_array_object,GL_OES_byte_coordinates,GL_OES_extended_matrix_palette,GL_OES_fixed_point,GL_OES_fragment_precision_high,GL_OES_mapbuffer,GL_OES_matrix_get,GL_OES_query_matrix,GL_OES_required_internalformat,GL_OES_single_precision,GL_OES_stencil8
|
||||
Roaming = mobile-notroaming
|
||||
TimeZone = Europe/Moscow
|
||||
CellOperator = 310260
|
||||
GSF.version = 10548448
|
||||
Vending.version = 80798000
|
||||
SimOperator = 310260
|
||||
Client = android-google
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
UserReadableName = Nvidia Shield TV Pro 2015 (api24)
|
||||
Build.HARDWARE = foster_e_hdd
|
||||
Build.RADIO = unknown
|
||||
Build.BOOTLOADER = unknown
|
||||
Build.FINGERPRINT = NVIDIA/foster_e_hdd/foster:7.0/NRD90M/1915764_910.7870:user/release-keys
|
||||
Build.BRAND = NVIDIA
|
||||
Build.DEVICE = foster
|
||||
Build.VERSION.SDK_INT = 24
|
||||
Build.MODEL = SHIELD Android TV
|
||||
Build.MANUFACTURER = NVIDIA
|
||||
Build.PRODUCT = foster_e_hdd
|
||||
TouchScreen = 1
|
||||
Keyboard = 2
|
||||
Navigation = 2
|
||||
ScreenLayout = 3
|
||||
HasHardKeyboard = true
|
||||
HasFiveWayNavigation = true
|
||||
GL.Version = 196610
|
||||
Screen.Density = 320
|
||||
Screen.Width = 1920
|
||||
Screen.Height = 1080
|
||||
Platforms = arm64-v8a,armeabi-v7a,armeabi
|
||||
SharedLibraries = android.ext.services,android.ext.shared,android.test.runner,com.android.future.usb.accessory,com.android.location.provider,com.android.media.remotedisplay,com.android.media.tv.remoteprovider,com.android.mediadrm.signer,com.google.android.gms,com.google.widevine.software.drm,com.nvidia.graphics,javax.obex,org.apache.http.legacy
|
||||
Features = android.hardware.audio.low_latency,android.hardware.audio.output,android.hardware.bluetooth,android.hardware.bluetooth_le,android.hardware.ethernet,android.hardware.hdmi.cec,android.hardware.location,android.hardware.location.network,android.hardware.opengles.aep,android.hardware.screen.landscape,android.hardware.type.television,android.hardware.usb.accessory,android.hardware.usb.host,android.hardware.vulkan.level,android.hardware.vulkan.version,android.hardware.wifi,android.hardware.wifi.direct,android.software.backup,android.software.leanback,android.software.leanback_only,android.software.live_tv,android.software.midi,android.software.picture_in_picture,android.software.voice_recognizers,android.software.webview,com.google.android.tv.installed,com.nvidia.feature.app.plex.mediaserver,com.nvidia.feature.app.plex.smbserver,com.nvidia.feature.app.vudu,com.nvidia.feature.built_in_controller,com.nvidia.feature.opengl4,com.nvidia.feature.shield,com.nvidia.feature.usb.tvtuners,com.nvidia.nvsi.gpu.class_001,com.nvidia.nvsi.gpu.class_002,com.nvidia.nvsi.gpu.class_003,com.nvidia.nvsi.gpu.class_004,com.nvidia.nvsi.gpu.class_005,com.nvidia.nvsi.gpu.class_006,com.nvidia.nvsi.gpu.class_007,com.nvidia.nvsi.gpu.class_008,com.nvidia.nvsi.gpu.class_009,com.nvidia.nvsi.gpu.family_001,com.nvidia.nvsi.gpu.family_002,com.nvidia.nvsi.gpu.family_003,com.nvidia.nvsi.product.tablet,com.nvidia.nvsi.version.v2,nrdp.modelgroup,nvidia.feature.controller_settings_ui,nvidia.feature.miracast_settings_ui
|
||||
Locales = ar,ar_EG,bg,bg_BG,ca,ca_ES,cs,cs_CZ,da,da_DK,de,de_DE,el,el_GR,en,en_GB,en_US,es,es_ES,es_US,eu,fa,fa_IR,fi,fi_FI,fil,fil_PH,fr,fr_BE,fr_FR,hr,hr_HR,hu,hu_HU,in,in_ID,it,it_IT,iw,iw_IL,ja,ja_JP,ko,ko_KR,lt,lt_LT,lv,lv_LV,nb,nb_NO,nl,nl_NL,pl,pl_PL,pt,pt_BR,pt_PT,ro,ro_RO,ru,ru_RU,sk,sk_SK,sl,sl_SI,sr,sr_Latn,sr_RS,sv,sv_SE,th,th_TH,tr,tr_TR,uk,uk_UA,vi,vi_VN,zh,zh_CN,zh_TW
|
||||
GSF.version = 11509846
|
||||
Vending.version = 80802868
|
||||
CellOperator =
|
||||
SimOperator =
|
||||
Roaming = mobile-notroaming
|
||||
Client = android-google
|
||||
TimeZone = Asia/Bangkok
|
||||
GL.Extensions = GL_ANDROID_extension_pack_es31a,GL_EXT_base_instance,GL_EXT_blend_func_extended,GL_EXT_blend_minmax,GL_EXT_buffer_storage,GL_EXT_clip_cull_distance,GL_EXT_color_buffer_float,GL_EXT_color_buffer_half_float,GL_EXT_copy_image,GL_EXT_debug_label,GL_EXT_debug_marker,GL_EXT_discard_framebuffer,GL_EXT_disjoint_timer_query,GL_EXT_draw_buffers_indexed,GL_EXT_draw_elements_base_vertex,GL_EXT_draw_transform_feedback,GL_EXT_float_blend,GL_EXT_frag_depth,GL_EXT_geometry_point_size,GL_EXT_geometry_shader,GL_EXT_gpu_shader5,GL_EXT_map_buffer_range,GL_EXT_multi_draw_indirect,GL_EXT_multisample_compatibility,GL_EXT_occlusion_query_boolean,GL_EXT_polygon_offset_clamp,GL_EXT_post_depth_coverage,GL_EXT_primitive_bounding_box,GL_EXT_protected_textures,GL_EXT_raster_multisample,GL_EXT_render_snorm,GL_EXT_robustness,GL_EXT_sRGB,GL_EXT_sRGB_write_control,GL_EXT_separate_shader_objects,GL_EXT_shader_group_vote,GL_EXT_shader_implicit_conversions,GL_EXT_shader_integer_mix,GL_EXT_shader_io_blocks,GL_EXT_shader_non_constant_global_initializers,GL_EXT_shader_texture_lod,GL_EXT_shadow_samplers,GL_EXT_sparse_texture,GL_EXT_sparse_texture2,GL_EXT_tessellation_point_size,GL_EXT_tessellation_shader,GL_EXT_texture_border_clamp,GL_EXT_texture_buffer,GL_EXT_texture_compression_dxt1,GL_EXT_texture_compression_s3tc,GL_EXT_texture_cube_map_array,GL_EXT_texture_filter_anisotropic,GL_EXT_texture_filter_minmax,GL_EXT_texture_format_BGRA8888,GL_EXT_texture_norm16,GL_EXT_texture_rg,GL_EXT_texture_sRGB_R8,GL_EXT_texture_sRGB_decode,GL_EXT_texture_storage,GL_EXT_texture_view,GL_EXT_unpack_subimage,GL_EXT_window_rectangles,GL_KHR_blend_equation_advanced,GL_KHR_blend_equation_advanced_coherent,GL_KHR_context_flush_control,GL_KHR_debug,GL_KHR_no_error,GL_KHR_robust_buffer_access_behavior,GL_KHR_robustness,GL_KHR_texture_compression_astc_ldr,GL_KHR_texture_compression_astc_sliced_3d,GL_NV_EGL_stream_consumer_external,GL_NV_bgr,GL_NV_bindless_texture,GL_NV_blend_equation_advanced,GL_NV_blend_equation_advanced_coherent,GL_NV_conditional_render,GL_NV_conservative_raster,GL_NV_copy_buffer,GL_NV_copy_image,GL_NV_draw_buffers,GL_NV_draw_instanced,GL_NV_draw_texture,GL_NV_draw_vulkan_image,GL_NV_explicit_attrib_location,GL_NV_fbo_color_attachments,GL_NV_fill_rectangle,GL_NV_fragment_coverage_to_color,GL_NV_fragment_shader_interlock,GL_NV_framebuffer_blit,GL_NV_framebuffer_mixed_samples,GL_NV_framebuffer_multisample,GL_NV_generate_mipmap_sRGB,GL_NV_geometry_shader_passthrough,GL_NV_gpu_shader5,GL_NV_image_formats,GL_NV_instanced_arrays,GL_NV_internalformat_sample_query,GL_NV_non_square_matrices,GL_NV_occlusion_query_samples,GL_NV_pack_subimage,GL_NV_packed_float,GL_NV_packed_float_linear,GL_NV_path_rendering,GL_NV_path_rendering_shared_edge,GL_NV_pixel_buffer_object,GL_NV_polygon_mode,GL_NV_read_buffer,GL_NV_read_depth,GL_NV_read_depth_stencil,GL_NV_read_stencil,GL_NV_sRGB_formats,GL_NV_sample_locations,GL_NV_sample_mask_override_coverage,GL_NV_secure_context,GL_NV_shader_atomic_fp16_vector,GL_NV_shader_noperspective_interpolation,GL_NV_shadow_samplers_array,GL_NV_shadow_samplers_cube,GL_NV_texture_array,GL_NV_texture_barrier,GL_NV_texture_border_clamp,GL_NV_texture_compression_latc,GL_NV_texture_compression_s3tc,GL_NV_texture_compression_s3tc_update,GL_NV_timer_query,GL_NV_viewport_array,GL_NV_viewport_array2,GL_OES_EGL_image,GL_OES_EGL_image_external,GL_OES_EGL_image_external_essl3,GL_OES_EGL_sync,GL_OES_compressed_ETC1_RGB8_texture,GL_OES_compressed_paletted_texture,GL_OES_copy_image,GL_OES_depth24,GL_OES_depth32,GL_OES_depth_texture,GL_OES_depth_texture_cube_map,GL_OES_draw_buffers_indexed,GL_OES_draw_elements_base_vertex,GL_OES_draw_texture,GL_OES_element_index_uint,GL_OES_extended_matrix_palette,GL_OES_fbo_render_mipmap,GL_OES_framebuffer_object,GL_OES_geometry_point_size,GL_OES_geometry_shader,GL_OES_get_program_binary,GL_OES_gpu_shader5,GL_OES_mapbuffer,GL_OES_matrix_get,GL_OES_matrix_palette,GL_OES_packed_depth_stencil,GL_OES_point_size_array,GL_OES_point_sprite,GL_OES_primitive_bounding_box,GL_OES_read_format,GL_OES_rgb8_rgba8,GL_OES_sample_shading,GL_OES_sample_variables,GL_OES_shader_image_atomic,GL_OES_shader_io_blocks,GL_OES_shader_multisample_interpolation,GL_OES_standard_derivatives,GL_OES_stencil8,GL_OES_surfaceless_context,GL_OES_tessellation_point_size,GL_OES_tessellation_shader,GL_OES_texture_border_clamp,GL_OES_texture_buffer,GL_OES_texture_cube_map,GL_OES_texture_cube_map_array,GL_OES_texture_float,GL_OES_texture_float_linear,GL_OES_texture_half_float,GL_OES_texture_half_float_linear,GL_OES_texture_npot,GL_OES_texture_stencil8,GL_OES_texture_storage_multisample_2d_array,GL_OES_texture_view,GL_OES_vertex_array_object,GL_OES_vertex_half_float,GL_OES_viewport_array
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
UserReadableName = Fairphone FP2 (api23)
|
||||
Build.HARDWARE = qcom
|
||||
Build.RADIO = 4437.1-FP2-0-07
|
||||
Build.BOOTLOADER = unknown
|
||||
Build.FINGERPRINT = Fairphone/FP2/FP2:6.0.1/FP2-gms-17.12.1/FP2-gms-17.12.1:user/release-keys
|
||||
Build.BRAND = Fairphone
|
||||
Build.DEVICE = FP2
|
||||
Build.VERSION.SDK_INT = 23
|
||||
Build.MODEL = FP2
|
||||
Build.MANUFACTURER = Fairphone
|
||||
Build.PRODUCT = FP2
|
||||
Build.ID = FP2-gms-17.12.1
|
||||
Build.VERSION.RELEASE = 6.0.1
|
||||
TouchScreen = 3
|
||||
Keyboard = 1
|
||||
Navigation = 1
|
||||
ScreenLayout = 2
|
||||
HasHardKeyboard = false
|
||||
HasFiveWayNavigation = false
|
||||
GL.Version = 196608
|
||||
Screen.Density = 480
|
||||
Screen.Width = 1080
|
||||
Screen.Height = 1776
|
||||
Platforms = armeabi-v7a,armeabi
|
||||
SharedLibraries = ConnectivityExt,android.test.runner,com.android.future.usb.accessory,com.android.location.provider,com.android.media.remotedisplay,com.android.mediadrm.signer,com.fairphone.hiccup,com.google.android.gms,com.google.android.maps,com.google.android.media.effects,com.google.widevine.software.drm,com.qti.dpmapi,com.qti.dpmframework,com.qti.ims.connectionmanager.imscmlibrary,com.qti.location.sdk,com.qualcomm.qcnvitems,com.qualcomm.qcrilhook,com.quicinc.cne,com.quicinc.cneapiclient,javax.obex,org.apache.http.legacy,org.codeaurora.btmultisimlibrary
|
||||
Features = android.hardware.audio.output,android.hardware.bluetooth,android.hardware.bluetooth_le,android.hardware.camera,android.hardware.camera.any,android.hardware.camera.autofocus,android.hardware.camera.flash,android.hardware.camera.front,android.hardware.faketouch,android.hardware.location,android.hardware.location.gps,android.hardware.location.network,android.hardware.microphone,android.hardware.screen.landscape,android.hardware.screen.portrait,android.hardware.sensor.accelerometer,android.hardware.sensor.compass,android.hardware.sensor.gyroscope,android.hardware.sensor.light,android.hardware.sensor.proximity,android.hardware.sensor.stepcounter,android.hardware.sensor.stepdetector,android.hardware.telephony,android.hardware.telephony.cdma,android.hardware.telephony.gsm,android.hardware.touchscreen,android.hardware.touchscreen.multitouch,android.hardware.touchscreen.multitouch.distinct,android.hardware.touchscreen.multitouch.jazzhand,android.hardware.usb.accessory,android.hardware.usb.host,android.hardware.wifi,android.hardware.wifi.direct,android.software.app_widgets,android.software.backup,android.software.connectionservice,android.software.device_admin,android.software.home_screen,android.software.input_methods,android.software.live_wallpaper,android.software.managed_users,android.software.midi,android.software.print,android.software.sip,android.software.sip.voip,android.software.voice_recognizers,android.software.webview
|
||||
Locales = af,af_ZA,am,am_ET,ar,ar_EG,ar_XB,ast,az_AZ,bg,bg_BG,bn_BD,ca,ca_ES,cs,cs_CZ,da,da_DK,de,de_AT,de_CH,de_DE,de_LI,el,el_GR,en,en_AU,en_CA,en_GB,en_IN,en_NZ,en_SG,en_US,en_XA,es,es_ES,es_US,et_EE,eu,eu_ES,fa,fa_IR,fi,fi_FI,fil,fil_PH,fr,fr_BE,fr_CA,fr_CH,fr_FR,gl_ES,gu_IN,hi,hi_IN,hr,hr_HR,hu,hu_HU,hy_AM,in,in_ID,is_IS,it,it_CH,it_IT,iw,iw_IL,ja,ja_JP,ka_GE,kk_KZ,km_KH,kn_IN,ko,ko_KR,ky_KG,lo_LA,lt,lt_LT,lv,lv_LV,mk_MK,ml_IN,mn_MN,mr_IN,ms_MY,my_MM,nb,nb_NO,ne_NP,nl,nl_BE,nl_NL,pa_IN,pl,pl_PL,pt,pt_BR,pt_PT,rm,rm_CH,ro,ro_RO,ru,ru_RU,si_LK,sk,sk_SK,sl,sl_SI,sq_AL,sr,sr_RS,sv,sv_SE,sw,sw_TZ,ta_IN,te_IN,th,th_TH,tr,tr_TR,uk,uk_UA,ur_PK,uz_UZ,vi,vi_VN,zh,zh_CN,zh_HK,zh_TW,zu,zu_ZA
|
||||
GSF.version = 11951438
|
||||
Vending.version = 80841900
|
||||
Vending.versionString = 8.4.19.V-all [0] [FP] 175058788
|
||||
CellOperator = 26201
|
||||
SimOperator = 26201
|
||||
Client = android-google
|
||||
TimeZone = Europe/Berlin
|
||||
GL.Extensions = GL_AMD_compressed_ATC_texture,GL_AMD_performance_monitor,GL_AMD_program_binary_Z400,GL_APPLE_texture_2D_limited_npot,GL_ARB_vertex_buffer_object,GL_EXT_color_buffer_float,GL_EXT_color_buffer_half_float,GL_EXT_debug_label,GL_EXT_debug_marker,GL_EXT_discard_framebuffer,GL_EXT_disjoint_timer_query,GL_EXT_multisampled_render_to_texture,GL_EXT_robustness,GL_EXT_sRGB,GL_EXT_sRGB_write_control,GL_EXT_texture_filter_anisotropic,GL_EXT_texture_format_BGRA8888,GL_EXT_texture_sRGB_decode,GL_EXT_texture_type_2_10_10_10_REV,GL_NV_fence,GL_OES_EGL_image,GL_OES_EGL_image_external,GL_OES_EGL_sync,GL_OES_blend_equation_separate,GL_OES_blend_func_separate,GL_OES_blend_subtract,GL_OES_compressed_ETC1_RGB8_texture,GL_OES_compressed_paletted_texture,GL_OES_depth24,GL_OES_depth_texture,GL_OES_depth_texture_cube_map,GL_OES_draw_texture,GL_OES_element_index_uint,GL_OES_fbo_render_mipmap,GL_OES_fragment_precision_high,GL_OES_framebuffer_object,GL_OES_get_program_binary,GL_OES_matrix_palette,GL_OES_packed_depth_stencil,GL_OES_point_size_array,GL_OES_point_sprite,GL_OES_read_format,GL_OES_rgb8_rgba8,GL_OES_standard_derivatives,GL_OES_stencil_wrap,GL_OES_texture_3D,GL_OES_texture_cube_map,GL_OES_texture_env_crossbar,GL_OES_texture_float,GL_OES_texture_half_float,GL_OES_texture_half_float_linear,GL_OES_texture_mirrored_repeat,GL_OES_texture_npot,GL_OES_vertex_array_object,GL_OES_vertex_half_float,GL_OES_vertex_type_10_10_10_2,GL_QCOM_alpha_test,GL_QCOM_binning_control,GL_QCOM_driver_control,GL_QCOM_extended_get,GL_QCOM_extended_get2,GL_QCOM_perfmon_global_mode,GL_QCOM_tiled_rendering,GL_QCOM_writeonly_rendering
|
||||
Roaming = mobile-notroaming
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
UserReadableName = Explay Fresh (api19)
|
||||
Build.FINGERPRINT = Explay/Fresh/Fresh:4.4.2/KOT49H/1417662691:user/release-keys
|
||||
Build.HARDWARE = mt6582
|
||||
Build.BRAND = Explay
|
||||
Build.RADIO = unknown
|
||||
Build.BOOTLOADER = unknown
|
||||
Build.DEVICE = Fresh
|
||||
Build.VERSION.SDK_INT = 19
|
||||
Build.MODEL = Fresh
|
||||
Build.MANUFACTURER = Explay
|
||||
Build.PRODUCT = Fresh
|
||||
TouchScreen = 3
|
||||
Keyboard = 1
|
||||
Navigation = 1
|
||||
ScreenLayout = 2
|
||||
HasHardKeyboard = false
|
||||
HasFiveWayNavigation = false
|
||||
Screen.Density = 320
|
||||
Screen.Width = 720
|
||||
Screen.Height = 1280
|
||||
Platforms = armeabi-v7a,armeabi
|
||||
SharedLibraries = javax.obex,com.google.android.media.effects,com.android.future.usb.accessory,android.test.runner,com.google.widevine.software.drm,com.google.android.maps,com.android.location.provider,com.google.android.gms,com.android.media.remotedisplay,com.mediatek.effect
|
||||
Features = android.hardware.sensor.proximity,android.hardware.sensor.accelerometer,android.hardware.faketouch,org.cyanogenmod.appsuggest,android.hardware.usb.accessory,android.hardware.telephony.cdma,android.software.backup,android.hardware.touchscreen,android.hardware.touchscreen.multitouch,android.software.print,android.hardware.consumerir,org.cyanogenmod.partner,org.cyanogenmod.telephony,android.software.voice_recognizers,android.hardware.fingerprint,android.hardware.sensor.gyroscope,android.hardware.audio.low_latency,android.hardware.opengles.aep,android.hardware.bluetooth,android.hardware.camera.autofocus,com.google.android.feature.GOOGLE_BUILD,android.hardware.telephony.gsm,android.software.sip.voip,org.cyanogenmod.profiles,android.hardware.usb.host,com.cyanogenmod.android,android.hardware.audio.output,android.hardware.camera.flash,android.hardware.camera.front,android.hardware.sensor.hifi_sensors,android.hardware.screen.portrait,android.hardware.nfc,com.nxp.mifare,android.hardware.sensor.stepdetector,org.cyanogenmod.audio,org.cyanogenmod.theme,android.software.home_screen,android.hardware.microphone,org.cyanogenmod.statusbar,android.hardware.bluetooth_le,android.hardware.sensor.compass,android.hardware.touchscreen.multitouch.jazzhand,android.hardware.sensor.barometer,android.software.app_widgets,android.software.input_methods,android.hardware.sensor.light,android.software.device_admin,android.hardware.camera,org.cyanogenmod.hardware,android.hardware.screen.landscape,org.cyanogenmod.weather,org.cyanogenmod.performance,android.software.managed_users,android.software.webview,android.hardware.sensor.stepcounter,android.hardware.camera.capability.manual_post_processing,org.cyanogenmod.livedisplay,android.hardware.camera.any,android.hardware.camera.capability.raw,android.software.connectionservice,android.hardware.touchscreen.multitouch.distinct,android.hardware.location.network,android.software.sip,android.hardware.camera.capability.manual_sensor,android.hardware.camera.level.full,android.hardware.wifi.direct,android.software.live_wallpaper,com.google.android.feature.GOOGLE_EXPERIENCE,com.google.android.feature.EXCHANGE_6_2,org.cyanogenmod.theme.v1,org.cyanogenmod.livelockscreen,android.hardware.location.gps,android.software.midi,android.hardware.nfc.hce,android.hardware.wifi,android.hardware.location,android.hardware.telephony
|
||||
Locales = af,af_NA,af_ZA,agq,ak,ak_GH,am,am_ET,ar,ar_AE,ar_BH,ar_DJ,ar_DZ,ar_EG,ar_EH,ar_ER,ar_IL,ar_IQ,ar_JO,ar_KM,ar_KW,ar_LB,ar_LY,ar_MA,ar_MR,ar_OM,ar_PS,ar_QA,ar_SA,ar_SD,ar_SO,ar_SY,ar_TD,ar_TN,ar_YE,as,as_IN,asa,az,bas,be,be_BY,bem,bez,bg,bg_BG,bm,bm_ML,bn,bn_BD,bn_IN,bo,bo_CN,bo_IN,br,br_FR,brx,bs,ca,ca_AD,ca_ES,cgg,chr,cs,cs_CZ,cy,cy_GB,da,da_DK,dav,de,de_AT,de_BE,de_CH,de_DE,de_LI,de_LU,dje,dua,dyo,dz,dz_BT,ebu,ee,ee_GH,ee_TG,el,el_CY,el_GR,en,en_AG,en_AS,en_AU,en_BB,en_BE,en_BM,en_BS,en_BW,en_BZ,en_CA,en_CM,en_DM,en_FJ,en_FM,en_GB,en_GD,en_GG,en_GH,en_GI,en_GM,en_GU,en_GY,en_HK,en_IE,en_IM,en_IN,en_JE,en_JM,en_KE,en_KI,en_KN,en_KY,en_LC,en_LR,en_LS,en_MG,en_MH,en_MP,en_MT,en_MU,en_MW,en_NA,en_NG,en_NZ,en_PG,en_PH,en_PK,en_PR,en_PW,en_SB,en_SC,en_SG,en_SL,en_SS,en_SZ,en_TC,en_TO,en_TT,en_TZ,en_UG,en_UM,en_US,en_VC,en_VG,en_VI,en_VU,en_WS,en_ZA,en_ZM,en_ZW,eo,es,es_AR,es_BO,es_CL,es_CO,es_CR,es_CU,es_DO,es_EA,es_EC,es_ES,es_GQ,es_GT,es_HN,es_IC,es_MX,es_NI,es_PA,es_PE,es_PH,es_PR,es_PY,es_SV,es_US,es_UY,es_VE,et,et_EE,eu,eu_ES,ewo,fa,fa_AF,fa_IR,ff,ff_SN,fi,fi_FI,fil,fo,fo_FO,fr,fr_BE,fr_BF,fr_BI,fr_BJ,fr_BL,fr_CA,fr_CD,fr_CF,fr_CG,fr_CH,fr_CI,fr_CM,fr_DJ,fr_DZ,fr_FR,fr_GA,fr_GF,fr_GN,fr_GP,fr_GQ,fr_HT,fr_KM,fr_LU,fr_MA,fr_MC,fr_MF,fr_MG,fr_ML,fr_MQ,fr_MR,fr_MU,fr_NC,fr_NE,fr_PF,fr_RE,fr_RW,fr_SC,fr_SN,fr_SY,fr_TD,fr_TG,fr_TN,fr_VU,fr_YT,ga,ga_IE,gl,gl_ES,gsw,gu,gu_IN,guz,gv,gv_GB,ha,haw,iw,iw_IL,hi,hi_IN,hr,hr_BA,hr_HR,hu,hu_HU,hy,hy_AM,in,in_ID,ig,ig_NG,ii,ii_CN,is,is_IS,it,it_CH,it_IT,it_SM,ja,ja_JP,jgo,jmc,ka,ka_GE,kab,kam,kde,kea,khq,ki,ki_KE,kk,kl,kl_GL,kln,km,km_KH,kn,kn_IN,ko,ko_KP,ko_KR,kok,ks,ksb,ksf,kw,kw_GB,lag,lg,lg_UG,ln,ln_AO,ln_CD,ln_CF,ln_CG,lo,lo_LA,lt,lt_LT,lu,lu_CD,luo,luy,lv,lv_LV,mas,mer,mfe,mg,mg_MG,mgh,mgo,mk,mk_MK,ml,ml_IN,mn,mr,mr_IN,ms,mt,mt_MT,mua,my,my_MM,naq,nb,nb_NO,nd,nd_ZW,ne,ne_IN,ne_NP,nl,nl_AW,nl_BE,nl_CW,nl_NL,nl_SR,nl_SX,nmg,nn,nn_NO,nus,nyn,om,om_ET,om_KE,or,or_IN,pa,pl,pl_PL,ps,ps_AF,pt,pt_AO,pt_BR,pt_CV,pt_GW,pt_MO,pt_MZ,pt_PT,pt_ST,pt_TL,rm,rm_CH,rn,rn_BI,ro,ro_MD,ro_RO,rof,ru,ru_BY,ru_KG,ru_KZ,ru_MD,ru_RU,ru_UA,rw,rw_RW,rwk,saq,sbp,seh,ses,sg,sg_CF,shi,si,si_LK,sk,sk_SK,sl,sl_SI,sn,sn_ZW,so,so_DJ,so_ET,so_KE,so_SO,sq,sq_AL,sq_MK,sr,sv,sv_AX,sv_FI,sv_SE,sw,sw_KE,sw_TZ,sw_UG,swc,ta,ta_IN,ta_LK,ta_MY,ta_SG,te,te_IN,teo,th,th_TH,ti,ti_ER,ti_ET,to,to_TO,tr,tr_CY,tr_TR,twq,tzm,uk,uk_UA,ur,ur_IN,ur_PK,uz,vai,vi,vi_VN,vun,xog,yav,yo,yo_NG,zh,zu,zu_ZA
|
||||
Client = android-google
|
||||
GSF.version = 10548448
|
||||
Vending.version = 80798000
|
||||
CellOperator = 310260
|
||||
SimOperator = 310260
|
||||
Roaming = mobile-notroaming
|
||||
TimeZone = Europe/Moscow
|
||||
GL.Version = 131072
|
||||
GL.Extensions = GL_AMD_compressed_ATC_texture,GL_AMD_performance_monitor,GL_ANDROID_extension_pack_es31a,GL_APPLE_texture_2D_limited_npot,GL_ARB_vertex_buffer_object,GL_ARM_shader_framebuffer_fetch_depth_stencil,GL_EXT_YUV_target,GL_EXT_blit_framebuffer_params,GL_EXT_buffer_storage,GL_EXT_color_buffer_float,GL_EXT_color_buffer_half_float,GL_EXT_copy_image,GL_EXT_debug_label,GL_EXT_debug_marker,GL_EXT_discard_framebuffer,GL_EXT_disjoint_timer_query,GL_EXT_draw_buffers_indexed,GL_EXT_geometry_shader,GL_EXT_gpu_shader5,GL_EXT_multisampled_render_to_texture,GL_EXT_primitive_bounding_box,GL_EXT_robustness,GL_EXT_sRGB,GL_EXT_sRGB_write_control,GL_EXT_shader_framebuffer_fetch,GL_EXT_shader_io_blocks,GL_EXT_tessellation_shader,GL_EXT_texture_border_clamp,GL_EXT_texture_buffer,GL_EXT_texture_cube_map_array,GL_EXT_texture_filter_anisotropic,GL_EXT_texture_format_BGRA8888,GL_EXT_texture_norm16,GL_EXT_texture_sRGB_R8,GL_EXT_texture_sRGB_decode,GL_EXT_texture_type_2_10_10_10_REV,GL_KHR_blend_equation_advanced,GL_KHR_blend_equation_advanced_coherent,GL_KHR_debug,GL_KHR_no_error,GL_KHR_texture_compression_astc_hdr,GL_KHR_texture_compression_astc_ldr,GL_OES_EGL_image,GL_OES_EGL_image_external,GL_OES_EGL_sync,GL_OES_blend_equation_separate,GL_OES_blend_func_separate,GL_OES_blend_subtract,GL_OES_compressed_ETC1_RGB8_texture,GL_OES_compressed_paletted_texture,GL_OES_depth24,GL_OES_depth_texture,GL_OES_depth_texture_cube_map,GL_OES_draw_texture,GL_OES_element_index_uint,GL_OES_framebuffer_object,GL_OES_get_program_binary,GL_OES_matrix_palette,GL_OES_packed_depth_stencil,GL_OES_point_size_array,GL_OES_point_sprite,GL_OES_read_format,GL_OES_rgb8_rgba8,GL_OES_sample_shading,GL_OES_sample_variables,GL_OES_shader_image_atomic,GL_OES_shader_multisample_interpolation,GL_OES_standard_derivatives,GL_OES_stencil_wrap,GL_OES_surfaceless_context,GL_OES_texture_3D,GL_OES_texture_compression_astc,GL_OES_texture_cube_map,GL_OES_texture_env_crossbar,GL_OES_texture_float,GL_OES_texture_float_linear,GL_OES_texture_half_float,GL_OES_texture_half_float_linear,GL_OES_texture_mirrored_repeat,GL_OES_texture_npot,GL_OES_texture_stencil8,GL_OES_texture_storage_multisample_2d_array,GL_OES_vertex_array_object,GL_OES_vertex_half_float,GL_OVR_multiview,GL_OVR_multiview2,GL_OVR_multiview_multisampled_render_to_texture,GL_QCOM_alpha_test,GL_QCOM_extended_get,GL_QCOM_tiled_rendering,GL_EXT_multi_draw_arrays,GL_EXT_shader_texture_lod,GL_IMG_multisampled_render_to_texture,GL_IMG_program_binary,GL_IMG_read_format,GL_IMG_shader_binary,GL_IMG_texture_compression_pvrtc,GL_IMG_texture_format_BGRA8888,GL_IMG_texture_npot,GL_IMG_vertex_array_object,GL_OES_byte_coordinates,GL_OES_extended_matrix_palette,GL_OES_fixed_point,GL_OES_fragment_precision_high,GL_OES_mapbuffer,GL_OES_matrix_get,GL_OES_query_matrix,GL_OES_required_internalformat,GL_OES_single_precision,GL_OES_stencil8
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
UserReadableName = Fly FS454 Nimbus 8 (api23)
|
||||
Build.FINGERPRINT = DOOGEE/cm_x5/x5:6.0.1/MOB30Z/dc78d46298:userdebug/test-keys
|
||||
Build.HARDWARE = mt6580
|
||||
Build.BRAND = Fly
|
||||
Build.RADIO = unknown
|
||||
Build.BOOTLOADER = unknown
|
||||
Build.DEVICE = FS_454
|
||||
Build.VERSION.SDK_INT = 23
|
||||
Build.MODEL = FS_454
|
||||
Build.MANUFACTURER = Blackview
|
||||
Build.PRODUCT = cm_A5
|
||||
TouchScreen = 3
|
||||
Keyboard = 1
|
||||
Navigation = 1
|
||||
ScreenLayout = 2
|
||||
HasHardKeyboard = false
|
||||
HasFiveWayNavigation = false
|
||||
Screen.Density = 240
|
||||
Screen.Width = 480
|
||||
Screen.Height = 854
|
||||
Platforms = armeabi-v7a,armeabi
|
||||
SharedLibraries = org.cyanogenmod.platform,com.android.location.provider,com.android.future.usb.accessory,javax.obex,org.cyanogenmod.hardware,javax.btobex,android.test.runner,com.android.nfc_extras,com.android.media.remotedisplay,com.android.mediadrm.signer
|
||||
Features = android.hardware.sensor.proximity,android.hardware.sensor.accelerometer,android.hardware.faketouch,org.cyanogenmod.appsuggest,android.hardware.usb.accessory,android.hardware.telephony.cdma,android.software.backup,android.hardware.touchscreen,android.hardware.touchscreen.multitouch,android.software.print,android.hardware.consumerir,org.cyanogenmod.partner,org.cyanogenmod.telephony,android.software.voice_recognizers,android.hardware.fingerprint,android.hardware.sensor.gyroscope,android.hardware.audio.low_latency,android.hardware.opengles.aep,android.hardware.bluetooth,android.hardware.camera.autofocus,com.google.android.feature.GOOGLE_BUILD,android.hardware.telephony.gsm,android.software.sip.voip,org.cyanogenmod.profiles,android.hardware.usb.host,com.cyanogenmod.android,android.hardware.audio.output,android.hardware.camera.flash,android.hardware.camera.front,android.hardware.sensor.hifi_sensors,android.hardware.screen.portrait,android.hardware.nfc,com.nxp.mifare,android.hardware.sensor.stepdetector,org.cyanogenmod.audio,org.cyanogenmod.theme,android.software.home_screen,android.hardware.microphone,org.cyanogenmod.statusbar,android.hardware.bluetooth_le,android.hardware.sensor.compass,android.hardware.touchscreen.multitouch.jazzhand,android.hardware.sensor.barometer,android.software.app_widgets,android.software.input_methods,android.hardware.sensor.light,android.software.device_admin,android.hardware.camera,org.cyanogenmod.hardware,android.hardware.screen.landscape,org.cyanogenmod.weather,org.cyanogenmod.performance,android.software.managed_users,android.software.webview,android.hardware.sensor.stepcounter,android.hardware.camera.capability.manual_post_processing,org.cyanogenmod.livedisplay,android.hardware.camera.any,android.hardware.camera.capability.raw,android.software.connectionservice,android.hardware.touchscreen.multitouch.distinct,android.hardware.location.network,android.software.sip,android.hardware.camera.capability.manual_sensor,android.hardware.camera.level.full,android.hardware.wifi.direct,android.software.live_wallpaper,com.google.android.feature.GOOGLE_EXPERIENCE,com.google.android.feature.EXCHANGE_6_2,org.cyanogenmod.theme.v1,org.cyanogenmod.livelockscreen,android.hardware.location.gps,android.software.midi,android.hardware.nfc.hce,android.hardware.wifi,android.hardware.location,android.hardware.telephony
|
||||
Locales = af,af_NA,af_ZA,agq,ak,ak_GH,am,am_ET,ar,ar_AE,ar_BH,ar_DJ,ar_DZ,ar_EG,ar_EH,ar_ER,ar_IL,ar_IQ,ar_JO,ar_KM,ar_KW,ar_LB,ar_LY,ar_MA,ar_MR,ar_OM,ar_PS,ar_QA,ar_SA,ar_SD,ar_SO,ar_SS,ar_SY,ar_TD,ar_TN,ar_YE,as,as_IN,asa,ast,az,bas,be,be_BY,bem,bez,bg,bg_BG,bm,bn,bn_BD,bn_IN,bo,bo_CN,bo_IN,br,br_FR,brx,bs,ca,ca_AD,ca_ES,ca_FR,ca_IT,cgg,chr,cs,cs_CZ,cy,cy_GB,da,da_DK,da_GL,dav,de,de_AT,de_BE,de_CH,de_DE,de_LI,de_LU,dje,dsb,dua,dyo,dz,dz_BT,ebu,ee,ee_GH,ee_TG,el,el_CY,el_GR,en,en_AG,en_AI,en_AS,en_AU,en_BB,en_BE,en_BM,en_BS,en_BW,en_BZ,en_CA,en_CC,en_CK,en_CM,en_CX,en_DG,en_DM,en_ER,en_FJ,en_FK,en_FM,en_GB,en_GD,en_GG,en_GH,en_GI,en_GM,en_GU,en_GY,en_HK,en_IE,en_IM,en_IN,en_IO,en_JE,en_JM,en_KE,en_KI,en_KN,en_KY,en_LC,en_LR,en_LS,en_MG,en_MH,en_MO,en_MP,en_MS,en_MT,en_MU,en_MW,en_MY,en_NA,en_NF,en_NG,en_NR,en_NU,en_NZ,en_PG,en_PH,en_PK,en_PN,en_PR,en_PW,en_RW,en_SB,en_SC,en_SD,en_SG,en_SH,en_SL,en_SS,en_SX,en_SZ,en_TC,en_TK,en_TO,en_TT,en_TV,en_TZ,en_UG,en_UM,en_US,en_VC,en_VG,en_VI,en_VU,en_WS,en_ZA,en_ZM,en_ZW,eo,es,es_AR,es_BO,es_CL,es_CO,es_CR,es_CU,es_DO,es_EA,es_EC,es_ES,es_GQ,es_GT,es_HN,es_IC,es_MX,es_NI,es_PA,es_PE,es_PH,es_PR,es_PY,es_SV,es_US,es_UY,es_VE,et,et_EE,eu,eu_ES,ewo,fa,fa_AF,fa_IR,ff,ff_CM,ff_GN,ff_MR,ff_SN,fi,fi_FI,fil,fo,fo_FO,fr,fr_BE,fr_BF,fr_BI,fr_BJ,fr_BL,fr_CA,fr_CD,fr_CF,fr_CG,fr_CH,fr_CI,fr_CM,fr_DJ,fr_DZ,fr_FR,fr_GA,fr_GF,fr_GN,fr_GP,fr_GQ,fr_HT,fr_KM,fr_LU,fr_MA,fr_MC,fr_MF,fr_MG,fr_ML,fr_MQ,fr_MR,fr_MU,fr_NC,fr_NE,fr_PF,fr_PM,fr_RE,fr_RW,fr_SC,fr_SN,fr_SY,fr_TD,fr_TG,fr_TN,fr_VU,fr_WF,fr_YT,fur,fy,fy_NL,ga,ga_IE,gd,gd_GB,gl,gl_ES,gsw,gu,gu_IN,guz,gv,gv_IM,ha,haw,iw,iw_IL,hi,hi_IN,hr,hr_BA,hr_HR,hsb,hu,hu_HU,hy,hy_AM,in,in_ID,ig,ig_NG,ii,ii_CN,is,is_IS,it,it_CH,it_IT,it_SM,ja,ja_JP,jgo,jmc,ka,ka_GE,kab,kam,kde,kea,khq,ki,ki_KE,kk,kkj,kl,kl_GL,kln,km,km_KH,kn,kn_IN,ko,ko_KP,ko_KR,kok,ks,ksb,ksf,ksh,kw,kw_GB,ky,lag,lb,lb_LU,lg,lg_UG,lkt,ln,ln_AO,ln_CD,ln_CF,ln_CG,lo,lo_LA,lt,lt_LT,lu,lu_CD,luo,luy,lv,lv_LV,mas,mer,mfe,mg,mg_MG,mgh,mgo,mk,mk_MK,ml,ml_IN,mn,mr,mr_IN,ms,mt,mt_MT,mua,my,my_MM,naq,nb,nb_NO,nb_SJ,nd,nd_ZW,ne,ne_IN,ne_NP,nl,nl_AW,nl_BE,nl_BQ,nl_CW,nl_NL,nl_SR,nl_SX,nmg,nn,nn_NO,nnh,nus,nyn,om,om_ET,om_KE,or,or_IN,os,os_GE,os_RU,pa,pl,pl_PL,ps,ps_AF,pt,pt_AO,pt_BR,pt_CV,pt_GW,pt_MO,pt_MZ,pt_PT,pt_ST,pt_TL,qu,qu_BO,qu_EC,qu_PE,rm,rm_CH,rn,rn_BI,ro,ro_MD,ro_RO,rof,ru,ru_BY,ru_KG,ru_KZ,ru_MD,ru_RU,ru_UA,rw,rw_RW,rwk,sah,saq,sbp,se,se_FI,se_NO,se_SE,seh,ses,sg,sg_CF,shi,si,si_LK,sk,sk_SK,sl,sl_SI,smn,sn,sn_ZW,so,so_DJ,so_ET,so_KE,so_SO,sq,sq_AL,sq_MK,sq_XK,sr,sv,sv_AX,sv_FI,sv_SE,sw,sw_CD,sw_KE,sw_TZ,sw_UG,ta,ta_IN,ta_LK,ta_MY,ta_SG,te,te_IN,teo,th,th_TH,ti,ti_ER,ti_ET,to,to_TO,tr,tr_CY,tr_TR,twq,tzm,ug,uk,uk_UA,ur,ur_IN,ur_PK,uz,vai,vi,vi_VN,vun,wae,xog,yav,ji,yo,yo_BJ,yo_NG,zgh,zh,zu,zu_ZA
|
||||
Client = android-google
|
||||
GSF.version = 10548448
|
||||
Vending.version = 80798000
|
||||
CellOperator = 310260
|
||||
SimOperator = 310260
|
||||
Roaming = mobile-notroaming
|
||||
TimeZone = Europe/Moscow
|
||||
GL.Version = 131072
|
||||
GL.Extensions = GL_AMD_compressed_ATC_texture,GL_AMD_performance_monitor,GL_ANDROID_extension_pack_es31a,GL_APPLE_texture_2D_limited_npot,GL_ARB_vertex_buffer_object,GL_ARM_shader_framebuffer_fetch_depth_stencil,GL_EXT_YUV_target,GL_EXT_blit_framebuffer_params,GL_EXT_buffer_storage,GL_EXT_color_buffer_float,GL_EXT_color_buffer_half_float,GL_EXT_copy_image,GL_EXT_debug_label,GL_EXT_debug_marker,GL_EXT_discard_framebuffer,GL_EXT_disjoint_timer_query,GL_EXT_draw_buffers_indexed,GL_EXT_geometry_shader,GL_EXT_gpu_shader5,GL_EXT_multisampled_render_to_texture,GL_EXT_primitive_bounding_box,GL_EXT_robustness,GL_EXT_sRGB,GL_EXT_sRGB_write_control,GL_EXT_shader_framebuffer_fetch,GL_EXT_shader_io_blocks,GL_EXT_tessellation_shader,GL_EXT_texture_border_clamp,GL_EXT_texture_buffer,GL_EXT_texture_cube_map_array,GL_EXT_texture_filter_anisotropic,GL_EXT_texture_format_BGRA8888,GL_EXT_texture_norm16,GL_EXT_texture_sRGB_R8,GL_EXT_texture_sRGB_decode,GL_EXT_texture_type_2_10_10_10_REV,GL_KHR_blend_equation_advanced,GL_KHR_blend_equation_advanced_coherent,GL_KHR_debug,GL_KHR_no_error,GL_KHR_texture_compression_astc_hdr,GL_KHR_texture_compression_astc_ldr,GL_OES_EGL_image,GL_OES_EGL_image_external,GL_OES_EGL_sync,GL_OES_blend_equation_separate,GL_OES_blend_func_separate,GL_OES_blend_subtract,GL_OES_compressed_ETC1_RGB8_texture,GL_OES_compressed_paletted_texture,GL_OES_depth24,GL_OES_depth_texture,GL_OES_depth_texture_cube_map,GL_OES_draw_texture,GL_OES_element_index_uint,GL_OES_framebuffer_object,GL_OES_get_program_binary,GL_OES_matrix_palette,GL_OES_packed_depth_stencil,GL_OES_point_size_array,GL_OES_point_sprite,GL_OES_read_format,GL_OES_rgb8_rgba8,GL_OES_sample_shading,GL_OES_sample_variables,GL_OES_shader_image_atomic,GL_OES_shader_multisample_interpolation,GL_OES_standard_derivatives,GL_OES_stencil_wrap,GL_OES_surfaceless_context,GL_OES_texture_3D,GL_OES_texture_compression_astc,GL_OES_texture_cube_map,GL_OES_texture_env_crossbar,GL_OES_texture_float,GL_OES_texture_float_linear,GL_OES_texture_half_float,GL_OES_texture_half_float_linear,GL_OES_texture_mirrored_repeat,GL_OES_texture_npot,GL_OES_texture_stencil8,GL_OES_texture_storage_multisample_2d_array,GL_OES_vertex_array_object,GL_OES_vertex_half_float,GL_OVR_multiview,GL_OVR_multiview2,GL_OVR_multiview_multisampled_render_to_texture,GL_QCOM_alpha_test,GL_QCOM_extended_get,GL_QCOM_tiled_rendering,GL_EXT_multi_draw_arrays,GL_EXT_shader_texture_lod,GL_IMG_multisampled_render_to_texture,GL_IMG_program_binary,GL_IMG_read_format,GL_IMG_shader_binary,GL_IMG_texture_compression_pvrtc,GL_IMG_texture_format_BGRA8888,GL_IMG_texture_npot,GL_IMG_vertex_array_object,GL_OES_byte_coordinates,GL_OES_extended_matrix_palette,GL_OES_fixed_point,GL_OES_fragment_precision_high,GL_OES_mapbuffer,GL_OES_matrix_get,GL_OES_query_matrix,GL_OES_required_internalformat,GL_OES_single_precision,GL_OES_stencil8
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
UserReadableName = Xiaomi Mi5 (api23)
|
||||
Build.HARDWARE = qcom
|
||||
Build.RADIO = unknown
|
||||
Build.BOOTLOADER = unknown
|
||||
Build.FINGERPRINT = Xiaomi/gemini/gemini:6.0.1/MXB48T/6.9.29:user/release-keys
|
||||
Build.BRAND = Xiaomi
|
||||
Build.DEVICE = gemini
|
||||
Build.VERSION.SDK_INT = 23
|
||||
Build.MODEL = MI 5
|
||||
Build.MANUFACTURER = Xiaomi
|
||||
Build.PRODUCT = gemini
|
||||
TouchScreen = 3
|
||||
Keyboard = 1
|
||||
Navigation = 1
|
||||
ScreenLayout = 2
|
||||
HasHardKeyboard = false
|
||||
HasFiveWayNavigation = false
|
||||
GL.Version = 196609
|
||||
GSF.version = 11055448
|
||||
Vending.version = 80798000
|
||||
Screen.Density = 480
|
||||
Screen.Width = 1080
|
||||
Screen.Height = 1920
|
||||
Platforms = arm64-v8a,armeabi-v7a,armeabi
|
||||
SharedLibraries = org.cyanogenmod.platform,com.qualcomm.qcnvitems,com.google.widevine.software.drm,com.qti.dpmapi,com.google.android.media.effects,com.qti.location.sdk,com.android.location.provider,com.qualcomm.qti.QtiTelephonyServicelibrary,com.quicinc.cneapiclient,com.nxp.nfc.nq,com.android.future.usb.accessory,com.qti.dpmframework,javax.obex,com.google.android.gms,org.cyanogenmod.hardware,com.dsi.ant.antradio_library,com.qualcomm.qcrilhook,android.test.runner,com.google.android.dialer.support,com.google.android.maps,ConnectivityExt,org.apache.http.legacy,com.android.nfc_extras,com.android.media.remotedisplay,com.quicinc.cne,com.android.mediadrm.signer,com.qti.snapdragon.sdk.display,com.qualcomm.embmslibrary
|
||||
Features = android.hardware.sensor.proximity,android.hardware.sensor.accelerometer,android.hardware.faketouch,org.cyanogenmod.appsuggest,android.hardware.usb.accessory,android.hardware.telephony.cdma,android.software.backup,android.hardware.touchscreen,android.hardware.touchscreen.multitouch,android.software.print,android.hardware.consumerir,org.cyanogenmod.partner,org.cyanogenmod.telephony,android.software.voice_recognizers,android.hardware.fingerprint,android.hardware.sensor.gyroscope,android.hardware.audio.low_latency,android.hardware.opengles.aep,android.hardware.bluetooth,android.hardware.camera.autofocus,com.google.android.feature.GOOGLE_BUILD,android.hardware.telephony.gsm,android.software.sip.voip,org.cyanogenmod.profiles,android.hardware.usb.host,com.cyanogenmod.android,android.hardware.audio.output,android.hardware.camera.flash,android.hardware.camera.front,android.hardware.sensor.hifi_sensors,android.hardware.screen.portrait,android.hardware.nfc,com.nxp.mifare,android.hardware.sensor.stepdetector,org.cyanogenmod.audio,org.cyanogenmod.theme,android.software.home_screen,android.hardware.microphone,org.cyanogenmod.statusbar,android.hardware.bluetooth_le,android.hardware.sensor.compass,android.hardware.touchscreen.multitouch.jazzhand,android.hardware.sensor.barometer,android.software.app_widgets,android.software.input_methods,android.hardware.sensor.light,android.software.device_admin,android.hardware.camera,org.cyanogenmod.hardware,android.hardware.screen.landscape,org.cyanogenmod.weather,org.cyanogenmod.performance,android.software.managed_users,android.software.webview,android.hardware.sensor.stepcounter,android.hardware.camera.capability.manual_post_processing,org.cyanogenmod.livedisplay,android.hardware.camera.any,android.hardware.camera.capability.raw,android.software.connectionservice,android.hardware.touchscreen.multitouch.distinct,android.hardware.location.network,android.software.sip,android.hardware.camera.capability.manual_sensor,android.hardware.camera.level.full,android.hardware.wifi.direct,android.software.live_wallpaper,com.google.android.feature.GOOGLE_EXPERIENCE,com.google.android.feature.EXCHANGE_6_2,org.cyanogenmod.theme.v1,org.cyanogenmod.livelockscreen,android.hardware.location.gps,android.software.midi,android.hardware.nfc.hce,android.hardware.wifi,android.hardware.location,android.hardware.telephony
|
||||
Locales = af,af_ZA,am,am_ET,ar,ar_EG,ar_XB,ast_ES,az_AZ,bg,bg_BG,bn_BD,ca,ca_ES,cs,cs_CZ,da,da_DK,de,de_AT,de_CH,de_DE,de_LI,el,el_GR,en,en_AU,en_CA,en_GB,en_IN,en_NZ,en_SG,en_US,en_XA,eo,es,es_ES,es_US,et_EE,eu_ES,fa,fa_IR,fi,fi_FI,fil,fil_PH,fr,fr_BE,fr_CA,fr_CH,fr_FR,gl_ES,gu_IN,hi,hi_IN,hr,hr_HR,hu,hu_HU,hy_AM,in,in_ID,is_IS,it,it_CH,it_IT,iw,iw_IL,ja,ja_JP,ka_GE,kk_KZ,km_KH,kn_IN,ko,ko_KR,ku,ku_IQ,ky_KG,lb,lb_LU,lo_LA,lt,lt_LT,lv,lv_LV,mk_MK,ml_IN,mn_MN,mr_IN,ms_MY,my_MM,nb,nb_NO,ne_NP,nl,nl_BE,nl_NL,pa_IN,pl,pl_PL,pt,pt_BR,pt_PT,rm,rm_CH,ro,ro_RO,ru,ru_RU,si_LK,sk,sk_SK,sl,sl_SI,sq_AL,sr,sr_RS,sv,sv_SE,sw,sw_TZ,ta_IN,te_IN,th,th_TH,tr,tr_TR,uk,uk_UA,ur_PK,uz_UZ,vi,vi_VN,zh,zh_CN,zh_HK,zh_TW,zu,zu_ZA
|
||||
CellOperator = 25020
|
||||
SimOperator = 25020
|
||||
Client = android-google
|
||||
TimeZone = Europe/Moscow
|
||||
GL.Extensions = GL_AMD_compressed_ATC_texture,GL_AMD_performance_monitor,GL_ANDROID_extension_pack_es31a,GL_APPLE_texture_2D_limited_npot,GL_ARB_vertex_buffer_object,GL_ARM_shader_framebuffer_fetch_depth_stencil,GL_EXT_YUV_target,GL_EXT_blit_framebuffer_params,GL_EXT_buffer_storage,GL_EXT_clip_cull_distance,GL_EXT_color_buffer_float,GL_EXT_color_buffer_half_float,GL_EXT_copy_image,GL_EXT_debug_label,GL_EXT_debug_marker,GL_EXT_discard_framebuffer,GL_EXT_disjoint_timer_query,GL_EXT_draw_buffers_indexed,GL_EXT_geometry_shader,GL_EXT_gpu_shader5,GL_EXT_multisampled_render_to_texture,GL_EXT_primitive_bounding_box,GL_EXT_protected_textures,GL_EXT_robustness,GL_EXT_sRGB,GL_EXT_sRGB_write_control,GL_EXT_shader_framebuffer_fetch,GL_EXT_shader_io_blocks,GL_EXT_shader_non_constant_global_initializers,GL_EXT_tessellation_shader,GL_EXT_texture_border_clamp,GL_EXT_texture_buffer,GL_EXT_texture_cube_map_array,GL_EXT_texture_filter_anisotropic,GL_EXT_texture_format_BGRA8888,GL_EXT_texture_norm16,GL_EXT_texture_sRGB_R8,GL_EXT_texture_sRGB_decode,GL_EXT_texture_type_2_10_10_10_REV,GL_KHR_blend_equation_advanced,GL_KHR_blend_equation_advanced_coherent,GL_KHR_debug,GL_KHR_no_error,GL_KHR_texture_compression_astc_hdr,GL_KHR_texture_compression_astc_ldr,GL_OES_EGL_image,GL_OES_EGL_image_external,GL_OES_EGL_image_external_essl3,GL_OES_EGL_sync,GL_OES_blend_equation_separate,GL_OES_blend_func_separate,GL_OES_blend_subtract,GL_OES_compressed_ETC1_RGB8_texture,GL_OES_compressed_paletted_texture,GL_OES_depth24,GL_OES_depth_texture,GL_OES_depth_texture_cube_map,GL_OES_draw_texture,GL_OES_element_index_uint,GL_OES_framebuffer_object,GL_OES_get_program_binary,GL_OES_matrix_palette,GL_OES_packed_depth_stencil,GL_OES_point_size_array,GL_OES_point_sprite,GL_OES_read_format,GL_OES_rgb8_rgba8,GL_OES_sample_shading,GL_OES_sample_variables,GL_OES_shader_image_atomic,GL_OES_shader_multisample_interpolation,GL_OES_standard_derivatives,GL_OES_stencil_wrap,GL_OES_surfaceless_context,GL_OES_texture_3D,GL_OES_texture_compression_astc,GL_OES_texture_cube_map,GL_OES_texture_env_crossbar,GL_OES_texture_float,GL_OES_texture_float_linear,GL_OES_texture_half_float,GL_OES_texture_half_float_linear,GL_OES_texture_mirrored_repeat,GL_OES_texture_npot,GL_OES_texture_stencil8,GL_OES_texture_storage_multisample_2d_array,GL_OES_vertex_array_object,GL_OES_vertex_half_float,GL_OVR_multiview,GL_OVR_multiview2,GL_OVR_multiview_multisampled_render_to_texture,GL_QCOM_alpha_test,GL_QCOM_extended_get,GL_QCOM_tiled_rendering
|
||||
Roaming = mobile-notroaming
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
UserReadableName = Samsung Galaxy Tab 10.1 (api25)
|
||||
Build.FINGERPRINT = samsung/GT-P7510/GT-P7510:4.0.4/IMM76D/UELPL:user/release-keys
|
||||
Build.HARDWARE = p3
|
||||
Build.BRAND = Samsung
|
||||
Build.RADIO = unknown
|
||||
Build.BOOTLOADER = P7500XXLA1
|
||||
Build.DEVICE = p4wifi
|
||||
Build.VERSION.SDK_INT = 25
|
||||
Build.MODEL = GT-P7510
|
||||
Build.MANUFACTURER = Samsung
|
||||
Build.PRODUCT = GT-P7510
|
||||
TouchScreen = 3
|
||||
Keyboard = 2
|
||||
Navigation = 1
|
||||
ScreenLayout = 4
|
||||
HasHardKeyboard = true
|
||||
HasFiveWayNavigation = false
|
||||
Screen.Density = 160
|
||||
Screen.Width = 800
|
||||
Screen.Height = 1232
|
||||
Platforms = armeabi-v7a,armeabi
|
||||
SharedLibraries = com.android.location.provider,com.android.future.usb.accessory,android.ext.shared,javax.obex,android.ext.services,android.test.runner,org.apache.http.legacy,com.android.media.remotedisplay,com.android.mediadrm.signer
|
||||
Features = android.hardware.sensor.proximity,android.hardware.sensor.accelerometer,android.hardware.faketouch,org.cyanogenmod.appsuggest,android.hardware.usb.accessory,android.hardware.telephony.cdma,android.software.backup,android.hardware.touchscreen,android.hardware.touchscreen.multitouch,android.software.print,android.hardware.consumerir,org.cyanogenmod.partner,org.cyanogenmod.telephony,android.software.voice_recognizers,android.hardware.fingerprint,android.hardware.sensor.gyroscope,android.hardware.audio.low_latency,android.hardware.opengles.aep,android.hardware.bluetooth,android.hardware.camera.autofocus,com.google.android.feature.GOOGLE_BUILD,android.hardware.telephony.gsm,android.software.sip.voip,org.cyanogenmod.profiles,android.hardware.usb.host,com.cyanogenmod.android,android.hardware.audio.output,android.hardware.camera.flash,android.hardware.camera.front,android.hardware.sensor.hifi_sensors,android.hardware.screen.portrait,android.hardware.nfc,com.nxp.mifare,android.hardware.sensor.stepdetector,org.cyanogenmod.audio,org.cyanogenmod.theme,android.software.home_screen,android.hardware.microphone,org.cyanogenmod.statusbar,android.hardware.bluetooth_le,android.hardware.sensor.compass,android.hardware.touchscreen.multitouch.jazzhand,android.hardware.sensor.barometer,android.software.app_widgets,android.software.input_methods,android.hardware.sensor.light,android.software.device_admin,android.hardware.camera,org.cyanogenmod.hardware,android.hardware.screen.landscape,org.cyanogenmod.weather,org.cyanogenmod.performance,android.software.managed_users,android.software.webview,android.hardware.sensor.stepcounter,android.hardware.camera.capability.manual_post_processing,org.cyanogenmod.livedisplay,android.hardware.camera.any,android.hardware.camera.capability.raw,android.software.connectionservice,android.hardware.touchscreen.multitouch.distinct,android.hardware.location.network,android.software.sip,android.hardware.camera.capability.manual_sensor,android.hardware.camera.level.full,android.hardware.wifi.direct,android.software.live_wallpaper,com.google.android.feature.GOOGLE_EXPERIENCE,com.google.android.feature.EXCHANGE_6_2,org.cyanogenmod.theme.v1,org.cyanogenmod.livelockscreen,android.hardware.location.gps,android.software.midi,android.hardware.nfc.hce,android.hardware.wifi,android.hardware.location,android.hardware.telephony
|
||||
Locales = hi,so_ET,ro_MD,in,sn_ZW,sw_UG,es_BO,dyo,ru_KZ,en_JE,zu,en_JM,pt_BR,en_MS,ar_SD,en_ZM,es_PA,en_GG,es_SV,en_SE,es,rof,fr_SC,fr_GA,en_CM,ta,en_SX,fr_MC,fy,to,fr_RW,en_SD,qu,en_KE,rw_RW,gv_IM,sv_FI,cgg,pt_GW,fr_CF,sv_SE,dje,en_SS,ar_DZ,si,es_UY,ar_SA,tr_TR,dua,fr_BL,nb_SJ,fr_CA,ff,es_PE,om,en_FK,cs_CZ,zu_ZA,sl_SI,es_NI,en_GY,fr_ML,fr_MF,nmg,fo_DK,en_LR,el_CY,nus,mt,en_NU,en_UG,ta_MY,pt_ST,ha_NE,ca_FR,ru,es_IC,ar_KW,it_IT,en_GI,ji,hr,ka_GE,pt_PT,nl,en_TV,ru_RU,pa,mgh,es_ES,km,ee_TG,ca_AD,twq,ar_YE,eo,ne,as_IN,es_GT,vi_VN,de_CH,ig_NG,or_IN,mua,pl_PL,lv,fr_DZ,lb,hr_HR,haw,sw_KE,shi,mn,om_ET,fr_LU,es_PR,lo_LA,es_HN,kl_GL,bo_IN,et_EE,en_ZA,fr_TG,br_FR,yo_NG,tr_CY,sr,bem,fr_PF,ti_ET,hu,mk,de_LI,so_SO,nb_NO,luo,en_ZW,sk_SK,ksh,sk,nyn,fa,zgh,fr_HT,en_CY,uz,rm,en_MH,sn,to_TO,te,sq_MK,ha_GH,ta_IN,en_MW,da,en_BS,ms_SG,ps_AF,lt_LT,br,it_CH,fr_NE,en_LC,bm_ML,kk_KZ,qu_BO,tr,nl_SR,ln,sw,luy,en,fo,en_GD,asa,lag,fr_GQ,fr,fr_GN,dz,ar_SO,dz_BT,ca,es_CL,rn_BI,sq_XK,en_CC,en_SI,el_GR,yo_BJ,vi,my,de_LU,mk_MK,ak_GH,fr_GF,en_PK,my_MM,fr_CG,cy,es_PH,en_IN,ksf,en_LS,fy_NL,ce,ff_MR,af_ZA,fa_IR,bn_BD,vun,ks,bg,sq_AL,fr_BF,rw,af_NA,dsb,qu_PE,en_DM,ar_TN,nd,en_UM,en_FM,en_NR,ro,uk,se_SE,ln_CF,pt_MZ,am_ET,kl,pt,ta_SG,th,se_NO,ff_GN,ky,en_NG,ur_PK,af,en_DE,so,sah,fr_SN,ar_EH,vai,gu_IN,en_WS,es_EA,ms,fr_MG,th_TH,fr_RE,ru_BY,nl_SX,lv_LV,ki_KE,fr_CI,en_BB,ja,kde,am,nl_BQ,bo_CN,ga_IE,sl,bn_IN,mer,en_SZ,fr_CM,dav,ti_ER,da_GL,kw_GB,ga,mfe,it,it_SM,fo_FO,en_BW,en_SG,en_KN,cs,chr,km_KH,en_SC,mr_IN,el,en_PN,mg_MG,ru_KG,en_PW,en_SB,fur,en_BZ,ka,bm,de_DE,te_IN,ml_IN,hy,sw_TZ,kw,kn,ru_UA,ln_CD,et,fr_CH,en_DG,bn,ps,qu_EC,lt,ii_CN,en_FJ,eu,en_TC,ksb,pt_CV,gl_ES,en_VU,en_MP,ee,ar_PS,wae,nl_BE,xog,is,fr_PM,saq,iw_IL,om_KE,en_FI,nn_NO,pt_MO,mgo,en_US,fr_BE,ar,gd,kok,de,kln,kam,mt_MT,be,ce_RU,en_BE,fr_SY,es_MX,sv_AX,agq,sq,hr_BA,tzm,de_AT,os_RU,es_DO,en_BI,mg,ar_SY,yav,ks_IN,ro_RO,lu_CD,en_PG,jgo,is_IS,es_CU,ff_CM,en_VG,az,en_GU,fr_MR,ug_CN,in_ID,en_AU,nl_CW,ru_MD,naq,gd_GB,en_CK,ml,ja_JP,sw_CD,uk_UA,ta_LK,pl,es_VE,da_DK,be_BY,fa_AF,pt_AO,fr_MQ,bs,mas,ar_QA,en_IO,en_SH,en_NL,es_GQ,lg,hu_HU,fr_BJ,en_MO,brx,fr_WF,ar_OM,ca_ES,en_GB,ug,ha,en_NA,en_NF,sv,as,ig,en_KI,en_CX,en_TO,sbp,bo,ne_NP,bg_BG,jmc,en_GM,ar_JO,en_HK,ar_IQ,fr_DJ,fr_GP,lkt,kn_IN,ha_NG,en_IL,en_KY,en_TT,fil,fr_BI,sg,hsb,ca_IT,teo,fr_TN,en_AS,kk,guz,fr_VU,mr,es_EC,en_TZ,ko_KR,ar_MA,ar_LB,fr_CD,en_DK,es_CO,ur_IN,rwk,es_PY,ms_MY,cy_GB,en_PH,seh,ar_BH,en_TK,en_RW,eu_ES,ki,fr_TD,smn,ses,so_KE,es_CR,en_MY,en_AI,lo,en_MG,en_PR,gsw,en_VI,en_BM,se,en_IE,en_SL,khq,en_CH,ee_GH,ko,lb_LU,en_AT,nn,ar_ER,lrc,ar_TD,ar_MR,fr_YT,en_GH,en_MU,si_LK,gv,ky_KG,nl_NL,rm_CH,ar_IL,ti,iw,hy_AM,se_FI,pt_TL,en_AG,or,bez,ff_SN,en_IM,fr_MA,en_MT,nd_ZW,fi_FI,en_NZ,de_BE,fr_KM,bas,ak,nl_AW,ar_AE,kab,ar_EG,ur,es_AR,ar_DJ,ar_KM,kkj,fi,lu,fr_FR,ebu,os,ne_IN,ln_AO,gu,zh,os_GE,sg_CF,mn_MN,gl,lg_UG,ko_KP,rn,mzn,es_US,hi_IN,ar_LY,ms_BN,fr_NC,so_DJ,ii,en_ER,ar_SS,kea,ln_CG,fr_MU,nb,yo,nnh,en_VC,ewo,en_CA
|
||||
Client = android-google
|
||||
GSF.version = 10548448
|
||||
Vending.version = 80798000
|
||||
CellOperator = 310260
|
||||
SimOperator = 310260
|
||||
Roaming = mobile-notroaming
|
||||
TimeZone = Europe/Moscow
|
||||
GL.Version = 131072
|
||||
GL.Extensions = GL_AMD_compressed_ATC_texture,GL_AMD_performance_monitor,GL_ANDROID_extension_pack_es31a,GL_APPLE_texture_2D_limited_npot,GL_ARB_vertex_buffer_object,GL_ARM_shader_framebuffer_fetch_depth_stencil,GL_EXT_YUV_target,GL_EXT_blit_framebuffer_params,GL_EXT_buffer_storage,GL_EXT_color_buffer_float,GL_EXT_color_buffer_half_float,GL_EXT_copy_image,GL_EXT_debug_label,GL_EXT_debug_marker,GL_EXT_discard_framebuffer,GL_EXT_disjoint_timer_query,GL_EXT_draw_buffers_indexed,GL_EXT_geometry_shader,GL_EXT_gpu_shader5,GL_EXT_multisampled_render_to_texture,GL_EXT_primitive_bounding_box,GL_EXT_robustness,GL_EXT_sRGB,GL_EXT_sRGB_write_control,GL_EXT_shader_framebuffer_fetch,GL_EXT_shader_io_blocks,GL_EXT_tessellation_shader,GL_EXT_texture_border_clamp,GL_EXT_texture_buffer,GL_EXT_texture_cube_map_array,GL_EXT_texture_filter_anisotropic,GL_EXT_texture_format_BGRA8888,GL_EXT_texture_norm16,GL_EXT_texture_sRGB_R8,GL_EXT_texture_sRGB_decode,GL_EXT_texture_type_2_10_10_10_REV,GL_KHR_blend_equation_advanced,GL_KHR_blend_equation_advanced_coherent,GL_KHR_debug,GL_KHR_no_error,GL_KHR_texture_compression_astc_hdr,GL_KHR_texture_compression_astc_ldr,GL_OES_EGL_image,GL_OES_EGL_image_external,GL_OES_EGL_sync,GL_OES_blend_equation_separate,GL_OES_blend_func_separate,GL_OES_blend_subtract,GL_OES_compressed_ETC1_RGB8_texture,GL_OES_compressed_paletted_texture,GL_OES_depth24,GL_OES_depth_texture,GL_OES_depth_texture_cube_map,GL_OES_draw_texture,GL_OES_element_index_uint,GL_OES_framebuffer_object,GL_OES_get_program_binary,GL_OES_matrix_palette,GL_OES_packed_depth_stencil,GL_OES_point_size_array,GL_OES_point_sprite,GL_OES_read_format,GL_OES_rgb8_rgba8,GL_OES_sample_shading,GL_OES_sample_variables,GL_OES_shader_image_atomic,GL_OES_shader_multisample_interpolation,GL_OES_standard_derivatives,GL_OES_stencil_wrap,GL_OES_surfaceless_context,GL_OES_texture_3D,GL_OES_texture_compression_astc,GL_OES_texture_cube_map,GL_OES_texture_env_crossbar,GL_OES_texture_float,GL_OES_texture_float_linear,GL_OES_texture_half_float,GL_OES_texture_half_float_linear,GL_OES_texture_mirrored_repeat,GL_OES_texture_npot,GL_OES_texture_stencil8,GL_OES_texture_storage_multisample_2d_array,GL_OES_vertex_array_object,GL_OES_vertex_half_float,GL_OVR_multiview,GL_OVR_multiview2,GL_OVR_multiview_multisampled_render_to_texture,GL_QCOM_alpha_test,GL_QCOM_extended_get,GL_QCOM_tiled_rendering,GL_EXT_multi_draw_arrays,GL_EXT_shader_texture_lod,GL_IMG_multisampled_render_to_texture,GL_IMG_program_binary,GL_IMG_read_format,GL_IMG_shader_binary,GL_IMG_texture_compression_pvrtc,GL_IMG_texture_format_BGRA8888,GL_IMG_texture_npot,GL_IMG_vertex_array_object,GL_OES_byte_coordinates,GL_OES_extended_matrix_palette,GL_OES_fixed_point,GL_OES_fragment_precision_high,GL_OES_mapbuffer,GL_OES_matrix_get,GL_OES_query_matrix,GL_OES_required_internalformat,GL_OES_single_precision,GL_OES_stencil8
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
UserReadableName = Samsung Galaxy Ace (api10)
|
||||
Build.FINGERPRINT = samsung/GT-S5830i/GT-S5830i:2.3.6/GINGERBREAD/XXKL1:user/release-keys
|
||||
Build.HARDWARE = bcm21553
|
||||
Build.BRAND = samsung
|
||||
Build.RADIO = unknown
|
||||
Build.BOOTLOADER = unknown
|
||||
Build.DEVICE = GT-S5830i
|
||||
Build.VERSION.SDK_INT = 10
|
||||
Build.MODEL = GT-S5830i
|
||||
Build.MANUFACTURER = samsung
|
||||
Build.PRODUCT = GT-S5830i
|
||||
TouchScreen = 3
|
||||
Keyboard = 1
|
||||
Navigation = 1
|
||||
ScreenLayout = 2
|
||||
HasHardKeyboard = false
|
||||
HasFiveWayNavigation = false
|
||||
Screen.Density = 160
|
||||
Screen.Width = 320
|
||||
Screen.Height = 480
|
||||
Platforms = armeabi,unknown
|
||||
SharedLibraries = javax.obex,com.samsung.android.sec_platform_library,android.test.runner,touchwiz,seccamera,com.google.android.maps,com.android.location.provider,sec_feature,com.samsung.device
|
||||
Features = android.hardware.sensor.proximity,android.hardware.sensor.accelerometer,android.hardware.faketouch,org.cyanogenmod.appsuggest,android.hardware.usb.accessory,android.hardware.telephony.cdma,android.software.backup,android.hardware.touchscreen,android.hardware.touchscreen.multitouch,android.software.print,android.hardware.consumerir,org.cyanogenmod.partner,org.cyanogenmod.telephony,android.software.voice_recognizers,android.hardware.fingerprint,android.hardware.sensor.gyroscope,android.hardware.audio.low_latency,android.hardware.opengles.aep,android.hardware.bluetooth,android.hardware.camera.autofocus,com.google.android.feature.GOOGLE_BUILD,android.hardware.telephony.gsm,android.software.sip.voip,org.cyanogenmod.profiles,android.hardware.usb.host,com.cyanogenmod.android,android.hardware.audio.output,android.hardware.camera.flash,android.hardware.camera.front,android.hardware.sensor.hifi_sensors,android.hardware.screen.portrait,android.hardware.nfc,com.nxp.mifare,android.hardware.sensor.stepdetector,org.cyanogenmod.audio,org.cyanogenmod.theme,android.software.home_screen,android.hardware.microphone,org.cyanogenmod.statusbar,android.hardware.bluetooth_le,android.hardware.sensor.compass,android.hardware.touchscreen.multitouch.jazzhand,android.hardware.sensor.barometer,android.software.app_widgets,android.software.input_methods,android.hardware.sensor.light,android.software.device_admin,android.hardware.camera,org.cyanogenmod.hardware,android.hardware.screen.landscape,org.cyanogenmod.weather,org.cyanogenmod.performance,android.software.managed_users,android.software.webview,android.hardware.sensor.stepcounter,android.hardware.camera.capability.manual_post_processing,org.cyanogenmod.livedisplay,android.hardware.camera.any,android.hardware.camera.capability.raw,android.software.connectionservice,android.hardware.touchscreen.multitouch.distinct,android.hardware.location.network,android.software.sip,android.hardware.camera.capability.manual_sensor,android.hardware.camera.level.full,android.hardware.wifi.direct,android.software.live_wallpaper,com.google.android.feature.GOOGLE_EXPERIENCE,com.google.android.feature.EXCHANGE_6_2,org.cyanogenmod.theme.v1,org.cyanogenmod.livelockscreen,android.hardware.location.gps,android.software.midi,android.hardware.nfc.hce,android.hardware.wifi,android.hardware.location,android.hardware.telephony
|
||||
Locales = bg,bg_BG,ca,ca_ES,cs,cs_CZ,da,da_DK,de,de_AT,de_BE,de_CH,de_DE,de_LI,de_LU,el,el_GR,en,en_AU,en_BE,en_BW,en_BZ,en_CA,en_GB,en_HK,en_IE,en_IN,en_JM,en_MH,en_MT,en_NA,en_NZ,en_PH,en_PK,en_SG,en_TT,en_US,en_VI,en_ZA,en_ZW,es,es_ES,es_US,et,fi,fil,fr,fr_BE,fr_CA,fr_CH,fr_FR,fr_LU,fr_MC,ga,hi,hi_IN,hr,hu,in,is,it,it_CH,it_IT,ja,ja_JP,kk,ko,ko_KR,lt,lt_LT,lv,lv_LV,ms,nb,nb_NO,nl,nl_BE,nl_NL,no,pl,pl_PL,pt,pt_BR,pt_PT,ro,ru,ru_RU,sk,sl,sl_SI,sr,sv,sv_SE,th,tr,tr_TR,uk,vi,vi_VN,zh,zh_CN,zh_TW
|
||||
Client = android-google
|
||||
GSF.version = 10548448
|
||||
Vending.version = 80798000
|
||||
CellOperator = 310260
|
||||
SimOperator = 310260
|
||||
Roaming = mobile-notroaming
|
||||
TimeZone = Europe/Moscow
|
||||
GL.Version = 131072
|
||||
GL.Extensions = GL_AMD_compressed_ATC_texture,GL_AMD_performance_monitor,GL_ANDROID_extension_pack_es31a,GL_APPLE_texture_2D_limited_npot,GL_ARB_vertex_buffer_object,GL_ARM_shader_framebuffer_fetch_depth_stencil,GL_EXT_YUV_target,GL_EXT_blit_framebuffer_params,GL_EXT_buffer_storage,GL_EXT_color_buffer_float,GL_EXT_color_buffer_half_float,GL_EXT_copy_image,GL_EXT_debug_label,GL_EXT_debug_marker,GL_EXT_discard_framebuffer,GL_EXT_disjoint_timer_query,GL_EXT_draw_buffers_indexed,GL_EXT_geometry_shader,GL_EXT_gpu_shader5,GL_EXT_multisampled_render_to_texture,GL_EXT_primitive_bounding_box,GL_EXT_robustness,GL_EXT_sRGB,GL_EXT_sRGB_write_control,GL_EXT_shader_framebuffer_fetch,GL_EXT_shader_io_blocks,GL_EXT_tessellation_shader,GL_EXT_texture_border_clamp,GL_EXT_texture_buffer,GL_EXT_texture_cube_map_array,GL_EXT_texture_filter_anisotropic,GL_EXT_texture_format_BGRA8888,GL_EXT_texture_norm16,GL_EXT_texture_sRGB_R8,GL_EXT_texture_sRGB_decode,GL_EXT_texture_type_2_10_10_10_REV,GL_KHR_blend_equation_advanced,GL_KHR_blend_equation_advanced_coherent,GL_KHR_debug,GL_KHR_no_error,GL_KHR_texture_compression_astc_hdr,GL_KHR_texture_compression_astc_ldr,GL_OES_EGL_image,GL_OES_EGL_image_external,GL_OES_EGL_sync,GL_OES_blend_equation_separate,GL_OES_blend_func_separate,GL_OES_blend_subtract,GL_OES_compressed_ETC1_RGB8_texture,GL_OES_compressed_paletted_texture,GL_OES_depth24,GL_OES_depth_texture,GL_OES_depth_texture_cube_map,GL_OES_draw_texture,GL_OES_element_index_uint,GL_OES_framebuffer_object,GL_OES_get_program_binary,GL_OES_matrix_palette,GL_OES_packed_depth_stencil,GL_OES_point_size_array,GL_OES_point_sprite,GL_OES_read_format,GL_OES_rgb8_rgba8,GL_OES_sample_shading,GL_OES_sample_variables,GL_OES_shader_image_atomic,GL_OES_shader_multisample_interpolation,GL_OES_standard_derivatives,GL_OES_stencil_wrap,GL_OES_surfaceless_context,GL_OES_texture_3D,GL_OES_texture_compression_astc,GL_OES_texture_cube_map,GL_OES_texture_env_crossbar,GL_OES_texture_float,GL_OES_texture_float_linear,GL_OES_texture_half_float,GL_OES_texture_half_float_linear,GL_OES_texture_mirrored_repeat,GL_OES_texture_npot,GL_OES_texture_stencil8,GL_OES_texture_storage_multisample_2d_array,GL_OES_vertex_array_object,GL_OES_vertex_half_float,GL_OVR_multiview,GL_OVR_multiview2,GL_OVR_multiview_multisampled_render_to_texture,GL_QCOM_alpha_test,GL_QCOM_extended_get,GL_QCOM_tiled_rendering,GL_EXT_multi_draw_arrays,GL_EXT_shader_texture_lod,GL_IMG_multisampled_render_to_texture,GL_IMG_program_binary,GL_IMG_read_format,GL_IMG_shader_binary,GL_IMG_texture_compression_pvrtc,GL_IMG_texture_format_BGRA8888,GL_IMG_texture_npot,GL_IMG_vertex_array_object,GL_OES_byte_coordinates,GL_OES_extended_matrix_palette,GL_OES_fixed_point,GL_OES_fragment_precision_high,GL_OES_mapbuffer,GL_OES_matrix_get,GL_OES_query_matrix,GL_OES_required_internalformat,GL_OES_single_precision,GL_OES_stencil8
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
UserReadableName = Nexus 5 (api26)
|
||||
Build.HARDWARE = hammerhead
|
||||
Build.RADIO = unknown
|
||||
Build.BOOTLOADER = HHZ20h
|
||||
Build.FINGERPRINT = google/hammerhead/hammerhead:6.0.1/M4B30Z/3437181:user/release-keys
|
||||
Build.BRAND = google
|
||||
Build.DEVICE = hammerhead
|
||||
Build.VERSION.SDK_INT = 26
|
||||
Build.MODEL = Nexus 5
|
||||
Build.MANUFACTURER = LGE
|
||||
Build.PRODUCT = hammerhead
|
||||
Build.ID = OPR3.170623.013
|
||||
Build.VERSION.RELEASE = 8.0.0
|
||||
TouchScreen = 3
|
||||
Keyboard = 1
|
||||
Navigation = 1
|
||||
ScreenLayout = 2
|
||||
HasHardKeyboard = false
|
||||
HasFiveWayNavigation = false
|
||||
GL.Version = 196608
|
||||
Screen.Density = 480
|
||||
Screen.Width = 1080
|
||||
Screen.Height = 1776
|
||||
Platforms = armeabi-v7a,armeabi
|
||||
SharedLibraries = android.ext.services,android.ext.shared,android.test.runner,com.android.future.usb.accessory,com.android.lge.lgsvcitems,com.android.location.provider,com.android.media.remotedisplay,com.android.mediadrm.signer,com.google.android.dialer.support,com.google.android.gms,com.google.android.maps,com.google.android.media.effects,com.google.widevine.software.drm,com.qualcomm.qcrilhook,javax.obex,org.apache.http.legacy,org.lineageos.hardware,org.lineageos.platform
|
||||
Features = android.hardware.audio.low_latency,android.hardware.audio.output,android.hardware.bluetooth,android.hardware.bluetooth_le,android.hardware.camera,android.hardware.camera.any,android.hardware.camera.autofocus,android.hardware.camera.capability.manual_post_processing,android.hardware.camera.capability.manual_sensor,android.hardware.camera.capability.raw,android.hardware.camera.flash,android.hardware.camera.front,android.hardware.camera.level.full,android.hardware.faketouch,android.hardware.location,android.hardware.location.gps,android.hardware.location.network,android.hardware.microphone,android.hardware.nfc,android.hardware.nfc.any,android.hardware.nfc.hce,android.hardware.screen.landscape,android.hardware.screen.portrait,android.hardware.sensor.accelerometer,android.hardware.sensor.barometer,android.hardware.sensor.compass,android.hardware.sensor.gyroscope,android.hardware.sensor.light,android.hardware.sensor.proximity,android.hardware.sensor.stepcounter,android.hardware.sensor.stepdetector,android.hardware.telephony,android.hardware.telephony.cdma,android.hardware.telephony.gsm,android.hardware.touchscreen,android.hardware.touchscreen.multitouch,android.hardware.touchscreen.multitouch.distinct,android.hardware.touchscreen.multitouch.jazzhand,android.hardware.usb.accessory,android.hardware.usb.host,android.hardware.wifi,android.hardware.wifi.direct,android.software.activities_on_secondary_displays,android.software.app_widgets,android.software.autofill,android.software.backup,android.software.companion_device_setup,android.software.connectionservice,android.software.cts,android.software.device_admin,android.software.home_screen,android.software.input_methods,android.software.live_wallpaper,android.software.managed_users,android.software.midi,android.software.picture_in_picture,android.software.print,android.software.sip,android.software.sip.voip,android.software.voice_recognizers,android.software.webview,com.google.android.apps.dialer.SUPPORTED,com.google.android.feature.EXCHANGE_6_2,com.google.android.feature.GOOGLE_BUILD,com.google.android.feature.GOOGLE_EXPERIENCE,org.lineageos.android,org.lineageos.audio,org.lineageos.hardware,org.lineageos.livedisplay,org.lineageos.performance,org.lineageos.profiles,org.lineageos.statusbar,org.lineageos.telephony,org.lineageos.weather
|
||||
Locales = af,af_ZA,am,am_ET,ar,ar_EG,ar_XB,ast,az,az_AZ,be,be_BY,bg,bg_BG,bn,bs,ca,ca_ES,cs,cs_CZ,da,da_DK,de,de_AT,de_CH,de_DE,de_LI,el,el_GR,en,en_AU,en_CA,en_GB,en_IN,en_NZ,en_SG,en_US,en_XA,eo,es,es_ES,es_US,et,et_EE,eu,eu_ES,fa,fa_IR,fi,fi_FI,fil,fil_PH,fr,fr_BE,fr_CA,fr_CH,fr_FR,gl,gl_ES,gu,gu_IN,hi,hi_IN,hr,hu,hu_HU,hy,in,in_ID,is,it,it_CH,it_IT,iw,iw_IL,ja,ja_JP,ka,kk,km,kn,kn_IN,ko,ko_KR,ky,lo,lt,lt_LT,lv,lv_LV,mk,ml,ml_IN,mn,mr,mr_IN,ms,ms_MY,my,nb,nb_NO,ne,nl,nl_BE,nl_NL,pa,pl,pl_PL,pt,pt_BR,pt_PT,ro,ro_RO,ru,ru_RU,si,sk,sk_SK,sl,sl_SI,sq,sq_AL,sr,sr_Latn,sr_RS,sv,sv_SE,sw,sw_TZ,ta,ta_IN,te,te_IN,th,th_TH,tr,tr_TR,uk,uk_UA,ur,uz,vi,vi_VN,zh,zh_CN,zh_HK,zh_TW,zu,zu_ZA
|
||||
GSF.version = 11951438
|
||||
Vending.version = 80853900
|
||||
Vending.versionString = 8.5.39.W-all [0] [PR] 178322352
|
||||
CellOperator = 22003
|
||||
SimOperator = 22003
|
||||
TimeZone = Europe/Belgrade
|
||||
GL.Extensions = GL_AMD_compressed_ATC_texture,GL_AMD_performance_monitor,GL_AMD_program_binary_Z400,GL_APPLE_texture_2D_limited_npot,GL_ARB_vertex_buffer_object,GL_EXT_color_buffer_float,GL_EXT_color_buffer_half_float,GL_EXT_debug_label,GL_EXT_debug_marker,GL_EXT_discard_framebuffer,GL_EXT_disjoint_timer_query,GL_EXT_multisampled_render_to_texture,GL_EXT_robustness,GL_EXT_sRGB,GL_EXT_sRGB_write_control,GL_EXT_texture_filter_anisotropic,GL_EXT_texture_format_BGRA8888,GL_EXT_texture_sRGB_decode,GL_EXT_texture_type_2_10_10_10_REV,GL_NV_fence,GL_OES_EGL_image,GL_OES_EGL_image_external,GL_OES_EGL_sync,GL_OES_blend_equation_separate,GL_OES_blend_func_separate,GL_OES_blend_subtract,GL_OES_compressed_ETC1_RGB8_texture,GL_OES_compressed_paletted_texture,GL_OES_depth24,GL_OES_depth_texture,GL_OES_depth_texture_cube_map,GL_OES_draw_texture,GL_OES_element_index_uint,GL_OES_fbo_render_mipmap,GL_OES_fragment_precision_high,GL_OES_framebuffer_object,GL_OES_get_program_binary,GL_OES_matrix_palette,GL_OES_packed_depth_stencil,GL_OES_point_size_array,GL_OES_point_sprite,GL_OES_read_format,GL_OES_rgb8_rgba8,GL_OES_standard_derivatives,GL_OES_stencil_wrap,GL_OES_texture_3D,GL_OES_texture_cube_map,GL_OES_texture_env_crossbar,GL_OES_texture_float,GL_OES_texture_half_float,GL_OES_texture_half_float_linear,GL_OES_texture_mirrored_repeat,GL_OES_texture_npot,GL_OES_vertex_array_object,GL_OES_vertex_half_float,GL_OES_vertex_type_10_10_10_2,GL_QCOM_alpha_test,GL_QCOM_binning_control,GL_QCOM_driver_control,GL_QCOM_extended_get,GL_QCOM_extended_get2,GL_QCOM_perfmon_global_mode,GL_QCOM_tiled_rendering,GL_QCOM_writeonly_rendering
|
||||
Roaming = mobile-notroaming
|
||||
Client = android-google
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
UserReadableName = Samsung Galaxy S7 Edge (api24)
|
||||
Build.FINGERPRINT = samsung/hero2ltexx/hero2lte:7.0/NRD90M/G935FXXU1DQAS:user/release-keys
|
||||
Build.HARDWARE = samsungexynos8890
|
||||
Build.BRAND = samsung
|
||||
Build.RADIO = unknown
|
||||
Build.BOOTLOADER = G935FXXU1DQAS
|
||||
Build.DEVICE = hero2lte
|
||||
Build.VERSION.SDK_INT = 24
|
||||
Build.MODEL = SM-G935F
|
||||
Build.MANUFACTURER = samsung
|
||||
Build.PRODUCT = hero2ltexx
|
||||
TouchScreen = 3
|
||||
Keyboard = 1
|
||||
Navigation = 1
|
||||
ScreenLayout = 2
|
||||
HasHardKeyboard = false
|
||||
HasFiveWayNavigation = false
|
||||
Screen.Density = 560
|
||||
Screen.Width = 1440
|
||||
Screen.Height = 2560
|
||||
Platforms = arm64-v8a,armeabi-v7a,armeabi
|
||||
SharedLibraries = smatlib,sec_platform_library,com.samsung.device,SemAudioThumbnail,com.sec.esecomm,stayrotation,com.sec.android.mdm.gearpolicymanager,vsimmanager,sechardware,com.google.android.media.effects,com.samsung.android.knox.knoxsdk,com.sec.android.app.multiwindow,seccamera,com.sec.dcm,com.gsma.services.nfc,semcamera,com.samsung.bbc,touchwiz,com.android.location.provider,secimaging,secvision,semextendedformat,sec_feature,com.sec.android.mdm,com.samsung.android.nfc.mpos,com.android.future.usb.accessory,sws,saiv,android.ext.shared,javax.obex,secmediarecorder,com.google.android.gms,android.ext.services,simageis,seclvbmanager,com.sec.android.app.minimode,device_api,imsmanager,scamera_sdk_util,com.publicnfc,com.dsi.ant.antradio_library,svemanager,org.simalliance.openmobileapi,EpdgManager,android.test.runner,sercsapi,com.google.android.maps,com.sec.android.visualeffect,com.broadcom.nfc,org.apache.http.legacy,com.android.nfc_extras,com.android.media.remotedisplay,allshare,com.sec.smartcard.auth,secimshttpclient,com.android.mediadrm.signer,libvtmanagerjar,videoeditor_sdk,scrollpause,rcsopenapi
|
||||
Features = android.hardware.sensor.proximity,android.hardware.sensor.accelerometer,android.hardware.faketouch,org.cyanogenmod.appsuggest,android.hardware.usb.accessory,android.hardware.telephony.cdma,android.software.backup,android.hardware.touchscreen,android.hardware.touchscreen.multitouch,android.software.print,android.hardware.consumerir,org.cyanogenmod.partner,org.cyanogenmod.telephony,android.software.voice_recognizers,android.hardware.fingerprint,android.hardware.sensor.gyroscope,android.hardware.audio.low_latency,android.hardware.opengles.aep,android.hardware.bluetooth,android.hardware.camera.autofocus,com.google.android.feature.GOOGLE_BUILD,android.hardware.telephony.gsm,android.software.sip.voip,org.cyanogenmod.profiles,android.hardware.usb.host,com.cyanogenmod.android,android.hardware.audio.output,android.hardware.camera.flash,android.hardware.camera.front,android.hardware.sensor.hifi_sensors,android.hardware.screen.portrait,android.hardware.nfc,com.nxp.mifare,android.hardware.sensor.stepdetector,org.cyanogenmod.audio,org.cyanogenmod.theme,android.software.home_screen,android.hardware.microphone,org.cyanogenmod.statusbar,android.hardware.bluetooth_le,android.hardware.sensor.compass,android.hardware.touchscreen.multitouch.jazzhand,android.hardware.sensor.barometer,android.software.app_widgets,android.software.input_methods,android.hardware.sensor.light,android.software.device_admin,android.hardware.camera,org.cyanogenmod.hardware,android.hardware.screen.landscape,org.cyanogenmod.weather,org.cyanogenmod.performance,android.software.managed_users,android.software.webview,android.hardware.sensor.stepcounter,android.hardware.camera.capability.manual_post_processing,org.cyanogenmod.livedisplay,android.hardware.camera.any,android.hardware.camera.capability.raw,android.software.connectionservice,android.hardware.touchscreen.multitouch.distinct,android.hardware.location.network,android.software.sip,android.hardware.camera.capability.manual_sensor,android.hardware.camera.level.full,android.hardware.wifi.direct,android.software.live_wallpaper,com.google.android.feature.GOOGLE_EXPERIENCE,com.google.android.feature.EXCHANGE_6_2,org.cyanogenmod.theme.v1,org.cyanogenmod.livelockscreen,android.hardware.location.gps,android.software.midi,android.hardware.nfc.hce,android.hardware.wifi,android.hardware.location,android.hardware.telephony
|
||||
Locales = hi,so_ET,ro_MD,in,sn_ZW,sw_UG,es_BO,dyo,ru_KZ,en_JE,zu,en_JM,pt_BR,en_MS,ar_SD,en_ZM,es_PA,en_GG,es_SV,en_SE,es,rof,fr_SC,fr_GA,en_CM,ta,en_SX,fr_MC,fy,to,fr_RW,en_SD,qu,en_KE,rw_RW,gv_IM,sv_FI,cgg,pt_GW,fr_CF,sv_SE,dje,en_SS,ar_DZ,si,es_UY,ar_SA,tr_TR,dua,fr_BL,nb_SJ,fr_CA,ff,es_PE,om,en_FK,cs_CZ,zu_ZA,sl_SI,es_NI,en_GY,fr_ML,fr_MF,pl_SP,nmg,fo_DK,en_LR,el_CY,nus,mt,en_NU,en_UG,ta_MY,pt_ST,ha_NE,ca_FR,ru,es_IC,ar_KW,it_IT,en_GI,ji,hr,ka_GE,pt_PT,nl,en_TV,ru_RU,pa,mgh,es_ES,km,ee_TG,ca_AD,twq,ar_YE,eo,ne,as_IN,es_GT,vi_VN,de_CH,ig_NG,or_IN,mua,pl_PL,lv,fr_DZ,lb,hr_HR,haw,sw_KE,shi,mn,om_ET,fr_LU,es_PR,lo_LA,es_HN,kl_GL,bo_IN,et_EE,en_ZA,en_ZG,fr_TG,br_FR,yo_NG,tr_CY,sr,bem,fr_PF,ti_ET,hu,mk,de_LI,so_SO,nb_NO,luo,en_ZW,sk_SK,ksh,sk,nyn,fa,zgh,fr_HT,en_CY,uz,rm,en_MH,sn,to_TO,te,sq_MK,ha_GH,ta_IN,en_MW,da,en_BS,ms_SG,ps_AF,lt_LT,br,it_CH,fr_NE,en_LC,bm_ML,kk_KZ,qu_BO,tr,nl_SR,ln,sw,luy,en,fo,en_GD,asa,lag,fr_GQ,fr,fr_GN,dz,ar_SO,dz_BT,ca,es_CL,rn_BI,sq_XK,en_CC,en_SI,el_GR,yo_BJ,vi,my,de_LU,mk_MK,ak_GH,fr_GF,en_PK,my_MM,fr_CG,cy,es_PH,en_IN,ksf,en_LS,fy_NL,ce,ff_MR,af_ZA,fa_IR,bn_BD,vun,ks,bg,sq_AL,fr_BF,rw,af_NA,dsb,qu_PE,en_DM,ar_TN,nd,en_UM,en_FM,en_NR,ro,uk,se_SE,ln_CF,pt_MZ,am_ET,kl,pt,ta_SG,th,se_NO,ff_GN,ky,en_NG,ur_PK,af,en_DE,so,sah,fr_SN,ar_EH,vai,gu_IN,en_WS,es_EA,ms,fr_MG,th_TH,fr_RE,ru_BY,nl_SX,lv_LV,ki_KE,fr_CI,en_BB,ja,kde,am,nl_BQ,bo_CN,ga_IE,sl,bn_IN,mer,en_SZ,fr_CM,dav,ti_ER,da_GL,kw_GB,ga,mfe,it,it_SM,fo_FO,en_BW,en_SG,tk,en_KN,cs,chr,km_KH,en_SC,mr_IN,el,en_PN,mg_MG,ru_KG,en_PW,en_SB,fur,en_BZ,ka,bm,de_DE,te_IN,ml_IN,hy,sw_TZ,kw,kn,ru_UA,ln_CD,et,fr_CH,en_DG,bn,ps,qu_EC,lt,ii_CN,en_FJ,eu,en_TC,ksb,pt_CV,gl_ES,en_VU,en_MP,ee,ar_PS,wae,nl_BE,xog,is,fr_PM,saq,iw_IL,om_KE,en_FI,nn_NO,pt_MO,mgo,en_US,fr_BE,ar,gd,kok,de,kln,kam,mt_MT,be,ce_RU,en_BE,fr_SY,es_MX,sv_AX,agq,sq,hr_BA,tzm,de_AT,os_RU,es_DO,en_BI,mg,ar_SY,yav,ks_IN,ro_RO,lu_CD,en_PG,jgo,is_IS,es_CU,ff_CM,en_VG,az,en_GU,fr_MR,ug_CN,in_ID,en_AU,nl_CW,ru_MD,naq,gd_GB,en_CK,ml,ja_JP,sw_CD,uk_UA,ta_LK,pl,es_VE,da_DK,be_BY,fa_AF,pt_AO,fr_MQ,bs,mas,tg,ar_QA,en_IO,en_SH,en_NL,es_GQ,lg,hu_HU,fr_BJ,en_MO,brx,fr_WF,ar_OM,ca_ES,en_GB,ug,ha,en_NA,en_NF,sv,as,ig,en_KI,en_CX,en_TO,sbp,bo,ne_NP,bg_BG,jmc,en_GM,ar_JO,en_HK,ar_IQ,fr_DJ,fr_GP,lkt,kn_IN,ha_NG,en_IL,en_KY,en_TT,fil,fr_BI,sg,hsb,ca_IT,teo,fr_TN,en_AS,kk,guz,fr_VU,mr,es_EC,en_TZ,ko_KR,ar_MA,ar_LB,my_ZG,fr_CD,en_DK,es_CO,ur_IN,rwk,es_PY,ms_MY,cy_GB,en_PH,seh,ar_BH,en_TK,en_RW,eu_ES,ki,fr_TD,smn,ses,so_KE,es_CR,en_MY,en_AI,lo,en_MG,en_PR,gsw,en_VI,en_BM,se,en_IE,en_SL,khq,en_CH,ee_GH,ko,lb_LU,en_AT,nn,ar_ER,lrc,ar_TD,ar_MR,fr_YT,en_GH,en_MU,si_LK,gv,ky_KG,nl_NL,rm_CH,ar_IL,ti,iw,hy_AM,se_FI,pt_TL,en_AG,or,bez,ff_SN,en_IM,fr_MA,en_MT,nd_ZW,fi_FI,en_NZ,de_BE,fr_KM,bas,ak,nl_AW,ar_AE,kab,ar_EG,ur,es_AR,ar_DJ,ar_KM,kkj,fi,lu,fr_FR,ebu,os,ne_IN,ln_AO,gu,zh,os_GE,sg_CF,mn_MN,gl,lg_UG,ko_KP,rn,mzn,es_US,hi_IN,ar_LY,ms_BN,fr_NC,so_DJ,ii,en_ER,ar_SS,kea,ln_CG,fr_MU,nb,yo,nnh,en_VC,ewo,en_CA
|
||||
Client = android-google
|
||||
GSF.version = 10548448
|
||||
Vending.version = 80798000
|
||||
CellOperator = 310260
|
||||
SimOperator = 310260
|
||||
Roaming = mobile-notroaming
|
||||
TimeZone = Europe/Moscow
|
||||
GL.Version = 131072
|
||||
GL.Extensions = GL_AMD_compressed_ATC_texture,GL_AMD_performance_monitor,GL_ANDROID_extension_pack_es31a,GL_APPLE_texture_2D_limited_npot,GL_ARB_vertex_buffer_object,GL_ARM_shader_framebuffer_fetch_depth_stencil,GL_EXT_YUV_target,GL_EXT_blit_framebuffer_params,GL_EXT_buffer_storage,GL_EXT_color_buffer_float,GL_EXT_color_buffer_half_float,GL_EXT_copy_image,GL_EXT_debug_label,GL_EXT_debug_marker,GL_EXT_discard_framebuffer,GL_EXT_disjoint_timer_query,GL_EXT_draw_buffers_indexed,GL_EXT_geometry_shader,GL_EXT_gpu_shader5,GL_EXT_multisampled_render_to_texture,GL_EXT_primitive_bounding_box,GL_EXT_robustness,GL_EXT_sRGB,GL_EXT_sRGB_write_control,GL_EXT_shader_framebuffer_fetch,GL_EXT_shader_io_blocks,GL_EXT_tessellation_shader,GL_EXT_texture_border_clamp,GL_EXT_texture_buffer,GL_EXT_texture_cube_map_array,GL_EXT_texture_filter_anisotropic,GL_EXT_texture_format_BGRA8888,GL_EXT_texture_norm16,GL_EXT_texture_sRGB_R8,GL_EXT_texture_sRGB_decode,GL_EXT_texture_type_2_10_10_10_REV,GL_KHR_blend_equation_advanced,GL_KHR_blend_equation_advanced_coherent,GL_KHR_debug,GL_KHR_no_error,GL_KHR_texture_compression_astc_hdr,GL_KHR_texture_compression_astc_ldr,GL_OES_EGL_image,GL_OES_EGL_image_external,GL_OES_EGL_sync,GL_OES_blend_equation_separate,GL_OES_blend_func_separate,GL_OES_blend_subtract,GL_OES_compressed_ETC1_RGB8_texture,GL_OES_compressed_paletted_texture,GL_OES_depth24,GL_OES_depth_texture,GL_OES_depth_texture_cube_map,GL_OES_draw_texture,GL_OES_element_index_uint,GL_OES_framebuffer_object,GL_OES_get_program_binary,GL_OES_matrix_palette,GL_OES_packed_depth_stencil,GL_OES_point_size_array,GL_OES_point_sprite,GL_OES_read_format,GL_OES_rgb8_rgba8,GL_OES_sample_shading,GL_OES_sample_variables,GL_OES_shader_image_atomic,GL_OES_shader_multisample_interpolation,GL_OES_standard_derivatives,GL_OES_stencil_wrap,GL_OES_surfaceless_context,GL_OES_texture_3D,GL_OES_texture_compression_astc,GL_OES_texture_cube_map,GL_OES_texture_env_crossbar,GL_OES_texture_float,GL_OES_texture_float_linear,GL_OES_texture_half_float,GL_OES_texture_half_float_linear,GL_OES_texture_mirrored_repeat,GL_OES_texture_npot,GL_OES_texture_stencil8,GL_OES_texture_storage_multisample_2d_array,GL_OES_vertex_array_object,GL_OES_vertex_half_float,GL_OVR_multiview,GL_OVR_multiview2,GL_OVR_multiview_multisampled_render_to_texture,GL_QCOM_alpha_test,GL_QCOM_extended_get,GL_QCOM_tiled_rendering,GL_EXT_multi_draw_arrays,GL_EXT_shader_texture_lod,GL_IMG_multisampled_render_to_texture,GL_IMG_program_binary,GL_IMG_read_format,GL_IMG_shader_binary,GL_IMG_texture_compression_pvrtc,GL_IMG_texture_format_BGRA8888,GL_IMG_texture_npot,GL_IMG_vertex_array_object,GL_OES_byte_coordinates,GL_OES_extended_matrix_palette,GL_OES_fixed_point,GL_OES_fragment_precision_high,GL_OES_mapbuffer,GL_OES_matrix_get,GL_OES_query_matrix,GL_OES_required_internalformat,GL_OES_single_precision,GL_OES_stencil8
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
UserReadableName = Sony Xperia Z1 (api22)
|
||||
Build.FINGERPRINT = Sony/C6902/C6902:5.1.1/14.6.A.1.236/2031203603:user/release-keys
|
||||
Build.HARDWARE = qcom
|
||||
Build.BRAND = Sony
|
||||
Build.RADIO = unknown
|
||||
Build.BOOTLOADER = s1
|
||||
Build.DEVICE = C6902
|
||||
Build.VERSION.SDK_INT = 22
|
||||
Build.MODEL = C6902
|
||||
Build.MANUFACTURER = Sony
|
||||
Build.PRODUCT = C6902
|
||||
Client = android-google
|
||||
GSF.version = 10548448
|
||||
Vending.version = 80798000
|
||||
CellOperator = 310260
|
||||
SimOperator = 310260
|
||||
Roaming = mobile-notroaming
|
||||
TimeZone = Europe/Moscow
|
||||
TouchScreen = 3
|
||||
Keyboard = 1
|
||||
Navigation = 1
|
||||
ScreenLayout = 2
|
||||
HasHardKeyboard = false
|
||||
HasFiveWayNavigation = false
|
||||
Screen.Density = 480
|
||||
Screen.Width = 1080
|
||||
Screen.Height = 1776
|
||||
Platforms = armeabi-v7a,armeabi
|
||||
SharedLibraries = ConnectivityExt,activation.jar,android-support-v13.jar,android-support-v4.jar,android-support-v7-recyclerview.jar,cloud-common.jar,com.android.media.remotedisplay,com.android.mediadrm.signer,android.test.runner,com.android.future.usb.accessory,com.android.location.provider,com.android.nfc_extras,com.google.android.maps,com.google.android.media.effects,com.google.widevine.software.drm,javax.obex
|
||||
Features = android.hardware.sensor.proximity,android.hardware.sensor.accelerometer,android.hardware.faketouch,android.hardware.usb.accessory,android.software.backup,android.hardware.touchscreen,android.hardware.touchscreen.multitouch,android.software.print,android.hardware.ethernet,android.software.voice_recognizers,android.hardware.sensor.gyroscope,android.hardware.bluetooth,android.hardware.camera.autofocus,android.hardware.telephony.gsm,android.software.sip.voip,android.hardware.usb.host,android.hardware.audio.output,android.hardware.camera.flash,android.hardware.camera.front,android.hardware.screen.portrait,android.hardware.nfc,com.nxp.mifare,android.hardware.sensor.stepdetector,android.software.home_screen,android.hardware.microphone,android.hardware.bluetooth_le,android.hardware.sensor.compass,android.hardware.touchscreen.multitouch.jazzhand,android.software.app_widgets,android.software.input_methods,android.hardware.sensor.light,android.software.device_admin,android.hardware.camera,android.hardware.screen.landscape,android.software.managed_users,android.software.webview,android.hardware.sensor.stepcounter,android.hardware.camera.any,android.software.connectionservice,android.hardware.touchscreen.multitouch.distinct,android.hardware.location.network,android.software.sip,android.hardware.wifi.direct,android.software.live_wallpaper,android.hardware.location.gps,android.hardware.nfc.hce,android.hardware.wifi,android.hardware.location,android.hardware.telephony
|
||||
Locales = af,af_NA,af_ZA,agq,agq_CM,ak,ak_GH,am,am_ET,ar,ar_001,ar_AE,ar_BH,ar_DJ,ar_DZ,ar_EG,ar_EH,ar_ER,ar_IL,ar_IQ,ar_JO,ar_KM,ar_KW,ar_LB,ar_LY,ar_MA,ar_MR,ar_OM,ar_PS,ar_QA,ar_SA,ar_SD,ar_SO,ar_SS,ar_SY,ar_TD,ar_TN,ar_YE,as,as_IN,asa,asa_TZ,az,az__#Cyrl,az_AZ_#Cyrl,az__#Latn,az_AZ_#Latn,bas,bas_CM,be,be_BY,bem,bem_ZM,bez,bez_TZ,bg,bg_BG,bm,bm_ML,bn,bn_BD,bn_IN,bo,bo_CN,bo_IN,br,br_FR,brx,brx_IN,bs,bs__#Cyrl,bs_BA_#Cyrl,bs__#Latn,bs_BA_#Latn,ca,ca_AD,ca_ES,ca_FR,ca_IT,cgg,cgg_UG,chr,chr_US,cs,cs_CZ,cy,cy_GB,da,da_DK,da_GL,dav,dav_KE,de,de_AT,de_BE,de_CH,de_DE,de_LI,de_LU,dje,dje_NE,dua,dua_CM,dyo,dyo_SN,dz,dz_BT,ebu,ebu_KE,ee,ee_GH,ee_TG,el,el_CY,el_GR,en,en_001,en_150,en_AG,en_AI,en_AS,en_AU,en_BB,en_BE,en_BM,en_BS,en_BW,en_BZ,en_CA,en_CC,en_CK,en_CM,en_CX,en_DG,en_DM,en_ER,en_FJ,en_FK,en_FM,en_GB,en_GD,en_GG,en_GH,en_GI,en_GM,en_GU,en_GY,en_HK,en_IE,en_IM,en_IN,en_IO,en_JE,en_JM,en_KE,en_KI,en_KN,en_KY,en_LC,en_LR,en_LS,en_MG,en_MH,en_MO,en_MP,en_MS,en_MT,en_MU,en_MW,en_NA,en_NF,en_NG,en_NR,en_NU,en_NZ,en_PG,en_PH,en_PK,en_PN,en_PR,en_PW,en_RW,en_SB,en_SC,en_SD,en_SG,en_SH,en_SL,en_SS,en_SX,en_SZ,en_TC,en_TK,en_TO,en_TT,en_TV,en_TZ,en_UG,en_UM,en_US,en_US_POSIX,en_VC,en_VG,en_VI,en_VU,en_WS,en_ZA,en_ZM,en_ZW,eo,es,es_419,es_AR,es_BO,es_CL,es_CO,es_CR,es_CU,es_DO,es_EA,es_EC,es_ES,es_GQ,es_GT,es_HN,es_IC,es_MX,es_NI,es_PA,es_PE,es_PH,es_PR,es_PY,es_SV,es_US,es_UY,es_VE,et,et_EE,eu,eu_ES,ewo,ewo_CM,fa,fa_AF,fa_IR,ff,ff_SN,fi,fi_FI,fil,fil_PH,fo,fo_FO,fr,fr_BE,fr_BF,fr_BI,fr_BJ,fr_BL,fr_CA,fr_CD,fr_CF,fr_CG,fr_CH,fr_CI,fr_CM,fr_DJ,fr_DZ,fr_FR,fr_GA,fr_GF,fr_GN,fr_GP,fr_GQ,fr_HT,fr_KM,fr_LU,fr_MA,fr_MC,fr_MF,fr_MG,fr_ML,fr_MQ,fr_MR,fr_MU,fr_NC,fr_NE,fr_PF,fr_PM,fr_RE,fr_RW,fr_SC,fr_SN,fr_SY,fr_TD,fr_TG,fr_TN,fr_VU,fr_WF,fr_YT,ga,ga_IE,gl,gl_ES,gsw,gsw_CH,gsw_LI,gu,gu_IN,guz,guz_KE,gv,gv_IM,ha,ha__#Latn,ha_GH_#Latn,ha_NE_#Latn,ha_NG_#Latn,haw,haw_US,iw,iw_IL,hi,hi_IN,hr,hr_BA,hr_HR,hu,hu_HU,hy,hy_AM,in,in_ID,ig,ig_NG,ii,ii_CN,is,is_IS,it,it_CH,it_IT,it_SM,ja,ja_JP,jgo,jgo_CM,jmc,jmc_TZ,jv,jv_ID,ka,ka_GE,kab,kab_DZ,kam,kam_KE,kde,kde_TZ,kea,kea_CV,khq,khq_ML,ki,ki_KE,kk,kk__#Cyrl,kk_KZ_#Cyrl,kkj,kkj_CM,kl,kl_GL,kln,kln_KE,km,km_KH,kn,kn_IN,ko,ko_KP,ko_KR,kok,kok_IN,ks,ks__#Arab,ks_IN_#Arab,ksb,ksb_TZ,ksf,ksf_CM,kw,kw_GB,ky,ky__#Cyrl,ky_KG_#Cyrl,lag,lag_TZ,lg,lg_UG,lkt,lkt_US,ln,ln_AO,ln_CD,ln_CF,ln_CG,lo,lo_LA,lt,lt_LT,lu,lu_CD,luo,luo_KE,luy,luy_KE,lv,lv_LV,mas,mas_KE,mas_TZ,mer,mer_KE,mfe,mfe_MU,mg,mg_MG,mgh,mgh_MZ,mgo,mgo_CM,mk,mk_MK,ml,ml_IN,mn,mn__#Cyrl,mn_MN_#Cyrl,mr,mr_IN,ms,ms__#Latn,ms_BN_#Latn,ms_MY_#Latn,ms_SG_#Latn,mt,mt_MT,mua,mua_CM,my,my_MM,naq,naq_NA,nb,nb_NO,nb_SJ,nd,nd_ZW,ne,ne_IN,ne_NP,nl,nl_AW,nl_BE,nl_BQ,nl_CW,nl_NL,nl_SR,nl_SX,nmg,nmg_CM,nn,nn_NO,nnh,nnh_CM,nus,nus_SD,nyn,nyn_UG,om,om_ET,om_KE,or,or_IN,pa,pa__#Arab,pa_PK_#Arab,pa__#Guru,pa_IN_#Guru,pl,pl_PL,ps,ps_AF,pt,pt_AO,pt_BR,pt_CV,pt_GW,pt_MO,pt_MZ,pt_PT,pt_ST,pt_TL,rm,rm_CH,rn,rn_BI,ro,ro_MD,ro_RO,rof,rof_TZ,ru,ru_BY,ru_KG,ru_KZ,ru_MD,ru_RU,ru_UA,rw,rw_RW,rwk,rwk_TZ,saq,saq_KE,sbp,sbp_TZ,seh,seh_MZ,ses,ses_ML,sg,sg_CF,shi,shi__#Latn,shi_MA_#Latn,shi__#Tfng,shi_MA_#Tfng,si,si_LK,sk,sk_SK,sl,sl_SI,sn,sn_ZW,so,so_DJ,so_ET,so_KE,so_SO,sq,sq_AL,sq_MK,sq_XK,sr,sr__#Cyrl,sr_BA_#Cyrl,sr_ME_#Cyrl,sr_RS_#Cyrl,sr_XK_#Cyrl,sr__#Latn,sr_BA_#Latn,sr_ME_#Latn,sr_RS_#Latn,sr_XK_#Latn,su,su_ID,sv,sv_AX,sv_FI,sv_SE,sw,sw_KE,sw_TZ,sw_UG,swc,swc_CD,ta,ta_IN,ta_LK,ta_MY,ta_SG,te,te_IN,teo,teo_KE,teo_UG,th,th_TH,ti,ti_ER,ti_ET,to,to_TO,tr,tr_CY
|
||||
GL.Version = 131072
|
||||
GL.Extensions = GL_AMD_compressed_ATC_texture,GL_AMD_performance_monitor,GL_ANDROID_extension_pack_es31a,GL_APPLE_texture_2D_limited_npot,GL_ARB_vertex_buffer_object,GL_ARM_shader_framebuffer_fetch_depth_stencil,GL_EXT_YUV_target,GL_EXT_blit_framebuffer_params,GL_EXT_buffer_storage,GL_EXT_color_buffer_float,GL_EXT_color_buffer_half_float,GL_EXT_copy_image,GL_EXT_debug_label,GL_EXT_debug_marker,GL_EXT_discard_framebuffer,GL_EXT_disjoint_timer_query,GL_EXT_draw_buffers_indexed,GL_EXT_geometry_shader,GL_EXT_gpu_shader5,GL_EXT_multisampled_render_to_texture,GL_EXT_primitive_bounding_box,GL_EXT_robustness,GL_EXT_sRGB,GL_EXT_sRGB_write_control,GL_EXT_shader_framebuffer_fetch,GL_EXT_shader_io_blocks,GL_EXT_tessellation_shader,GL_EXT_texture_border_clamp,GL_EXT_texture_buffer,GL_EXT_texture_cube_map_array,GL_EXT_texture_filter_anisotropic,GL_EXT_texture_format_BGRA8888,GL_EXT_texture_norm16,GL_EXT_texture_sRGB_R8,GL_EXT_texture_sRGB_decode,GL_EXT_texture_type_2_10_10_10_REV,GL_KHR_blend_equation_advanced,GL_KHR_blend_equation_advanced_coherent,GL_KHR_debug,GL_KHR_no_error,GL_KHR_texture_compression_astc_hdr,GL_KHR_texture_compression_astc_ldr,GL_OES_EGL_image,GL_OES_EGL_image_external,GL_OES_EGL_sync,GL_OES_blend_equation_separate,GL_OES_blend_func_separate,GL_OES_blend_subtract,GL_OES_compressed_ETC1_RGB8_texture,GL_OES_compressed_paletted_texture,GL_OES_depth24,GL_OES_depth_texture,GL_OES_depth_texture_cube_map,GL_OES_draw_texture,GL_OES_element_index_uint,GL_OES_framebuffer_object,GL_OES_get_program_binary,GL_OES_matrix_palette,GL_OES_packed_depth_stencil,GL_OES_point_size_array,GL_OES_point_sprite,GL_OES_read_format,GL_OES_rgb8_rgba8,GL_OES_sample_shading,GL_OES_sample_variables,GL_OES_shader_image_atomic,GL_OES_shader_multisample_interpolation,GL_OES_standard_derivatives,GL_OES_stencil_wrap,GL_OES_surfaceless_context,GL_OES_texture_3D,GL_OES_texture_compression_astc,GL_OES_texture_cube_map,GL_OES_texture_env_crossbar,GL_OES_texture_float,GL_OES_texture_float_linear,GL_OES_texture_half_float,GL_OES_texture_half_float_linear,GL_OES_texture_mirrored_repeat,GL_OES_texture_npot,GL_OES_texture_stencil8,GL_OES_texture_storage_multisample_2d_array,GL_OES_vertex_array_object,GL_OES_vertex_half_float,GL_OVR_multiview,GL_OVR_multiview2,GL_OVR_multiview_multisampled_render_to_texture,GL_QCOM_alpha_test,GL_QCOM_extended_get,GL_QCOM_tiled_rendering,GL_EXT_multi_draw_arrays,GL_EXT_shader_texture_lod,GL_IMG_multisampled_render_to_texture,GL_IMG_program_binary,GL_IMG_read_format,GL_IMG_shader_binary,GL_IMG_texture_compression_pvrtc,GL_IMG_texture_format_BGRA8888,GL_IMG_texture_npot,GL_IMG_vertex_array_object,GL_OES_byte_coordinates,GL_OES_extended_matrix_palette,GL_OES_fixed_point,GL_OES_fragment_precision_high,GL_OES_mapbuffer,GL_OES_matrix_get,GL_OES_query_matrix,GL_OES_required_internalformat,GL_OES_single_precision,GL_OES_stencil8
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
UserReadableName = Xiaomi Redmi Note 3 (api25)
|
||||
Build.HARDWARE = qcom
|
||||
Build.RADIO = unknown
|
||||
Build.BOOTLOADER = unknown
|
||||
Build.FINGERPRINT = Xiaomi/kenzo/kenzo:6.0.1/MMB29M/V8.2.1.0.MHOCNDL:user/release-keys
|
||||
Build.BRAND = Xiaomi
|
||||
Build.DEVICE = kenzo
|
||||
Build.VERSION.SDK_INT = 25
|
||||
Build.MODEL = Redmi Note 3
|
||||
Build.MANUFACTURER = Xiaomi
|
||||
Build.PRODUCT = lineage_kenzo
|
||||
Build.ID = NJH47F
|
||||
Build.VERSION.RELEASE = 7.1.2
|
||||
TouchScreen = 3
|
||||
Keyboard = 1
|
||||
Navigation = 1
|
||||
ScreenLayout = 2
|
||||
HasHardKeyboard = false
|
||||
HasFiveWayNavigation = false
|
||||
GL.Version = 196610
|
||||
Screen.Density = 430
|
||||
Screen.Width = 1080
|
||||
Screen.Height = 1920
|
||||
Platforms = arm64-v8a,armeabi-v7a,armeabi
|
||||
SharedLibraries = ConnectivityExt,android.ext.services,android.ext.shared,android.test.runner,com.android.future.usb.accessory,com.android.location.provider,com.android.media.remotedisplay,com.android.mediadrm.signer,com.dsi.ant.antradio_library,com.google.android.dialer.support,com.google.android.gms,com.google.android.maps,com.google.android.media.effects,com.google.widevine.software.drm,com.qti.dpmapi,com.qti.dpmframework,com.qti.ims.connectionmanager.imscmlibrary,com.qti.location.sdk,com.qti.snapdragon.sdk.display,com.qualcomm.qcnvitems,com.qualcomm.qcrilhook,com.quicinc.cne,com.quicinc.cneapiclient,izat.xt.srv,javax.obex,org.apache.http.legacy,org.cyanogenmod.hardware,org.cyanogenmod.platform
|
||||
Features = android.hardware.audio.low_latency,android.hardware.audio.output,android.hardware.bluetooth,android.hardware.bluetooth_le,android.hardware.camera,android.hardware.camera.any,android.hardware.camera.autofocus,android.hardware.camera.capability.manual_post_processing,android.hardware.camera.capability.manual_sensor,android.hardware.camera.capability.raw,android.hardware.camera.flash,android.hardware.camera.front,android.hardware.camera.level.full,android.hardware.consumerir,android.hardware.faketouch,android.hardware.fingerprint,android.hardware.location,android.hardware.location.gps,android.hardware.location.network,android.hardware.microphone,android.hardware.opengles.aep,android.hardware.screen.landscape,android.hardware.screen.portrait,android.hardware.sensor.accelerometer,android.hardware.sensor.compass,android.hardware.sensor.gyroscope,android.hardware.sensor.light,android.hardware.sensor.proximity,android.hardware.sensor.stepcounter,android.hardware.sensor.stepdetector,android.hardware.telephony,android.hardware.telephony.cdma,android.hardware.telephony.gsm,android.hardware.touchscreen,android.hardware.touchscreen.multitouch,android.hardware.touchscreen.multitouch.distinct,android.hardware.touchscreen.multitouch.jazzhand,android.hardware.usb.accessory,android.hardware.usb.host,android.hardware.vulkan.level,android.hardware.vulkan.version,android.hardware.wifi,android.hardware.wifi.direct,android.software.app_widgets,android.software.backup,android.software.connectionservice,android.software.device_admin,android.software.home_screen,android.software.input_methods,android.software.live_wallpaper,android.software.managed_users,android.software.midi,android.software.print,android.software.sip,android.software.sip.voip,android.software.voice_recognizers,android.software.webview,com.cyanogenmod.android,com.google.android.apps.dialer.SUPPORTED,com.google.android.feature.EXCHANGE_6_2,com.google.android.feature.GOOGLE_BUILD,com.google.android.feature.GOOGLE_EXPERIENCE,org.cyanogenmod.appsuggest,org.cyanogenmod.audio,org.cyanogenmod.hardware,org.cyanogenmod.livedisplay,org.cyanogenmod.livelockscreen,org.cyanogenmod.partner,org.cyanogenmod.performance,org.cyanogenmod.profiles,org.cyanogenmod.statusbar,org.cyanogenmod.telephony,org.cyanogenmod.weather,projekt.substratum.theme
|
||||
Locales = af,af_ZA,am,am_ET,ar,ar_EG,ar_XB,ast,ast_ES,az_AZ,be,be_BY,bg,bg_BG,bn_BD,bs_BA,ca,ca_ES,cs,cs_CZ,da,da_DK,de,de_AT,de_CH,de_DE,de_LI,el,el_GR,en,en_AU,en_CA,en_GB,en_IN,en_NZ,en_SG,en_US,en_XA,eo,es,es_ES,es_US,et_EE,eu,eu_ES,fa,fa_IR,fi,fi_FI,fil,fil_PH,fr,fr_BE,fr_CA,fr_CH,fr_FR,gl_ES,gu_IN,hi,hi_IN,hr,hr_HR,hu,hu_HU,hy_AM,in,in_ID,is_IS,it,it_CH,it_IT,iw,iw_IL,ja,ja_JP,ka_GE,kk_KZ,km_KH,kn_IN,ko,ko_KR,ku,ky_KG,lb,lo_LA,lt,lt_LT,lv,lv_LV,mk_MK,ml_IN,mn_MN,mr_IN,ms_MY,my_MM,nb,nb_NO,ne_NP,nl,nl_BE,nl_NL,pa_IN,pl,pl_PL,pt,pt_BR,pt_PT,ro,ro_RO,ru,ru_RU,si_LK,sk,sk_SK,sl,sl_SI,sq_AL,sr,sr_RS,sv,sv_SE,sw,sw_TZ,ta_IN,te_IN,th,th_TH,tr,tr_TR,uk,uk_UA,ur_PK,uz_UZ,vi,vi_VN,zh,zh_CN,zh_HK,zh_TW,zu,zu_ZA
|
||||
GSF.version = 11951448
|
||||
Vending.version = 80853900
|
||||
Vending.versionString = 8.5.39.W-all [0] [PR] 178322352
|
||||
CellOperator = 40428
|
||||
SimOperator = 40428
|
||||
Roaming = mobile-notroaming
|
||||
Client = android-google
|
||||
TimeZone = Asia/Calcutta
|
||||
GL.Extensions = GL_AMD_compressed_ATC_texture,GL_AMD_performance_monitor,GL_ANDROID_extension_pack_es31a,GL_APPLE_texture_2D_limited_npot,GL_ARB_vertex_buffer_object,GL_ARM_shader_framebuffer_fetch_depth_stencil,GL_EXT_YUV_target,GL_EXT_blit_framebuffer_params,GL_EXT_buffer_storage,GL_EXT_clip_cull_distance,GL_EXT_color_buffer_float,GL_EXT_color_buffer_half_float,GL_EXT_copy_image,GL_EXT_debug_label,GL_EXT_debug_marker,GL_EXT_discard_framebuffer,GL_EXT_disjoint_timer_query,GL_EXT_draw_buffers_indexed,GL_EXT_geometry_shader,GL_EXT_gpu_shader5,GL_EXT_multisampled_render_to_texture,GL_EXT_primitive_bounding_box,GL_EXT_protected_textures,GL_EXT_robustness,GL_EXT_sRGB,GL_EXT_sRGB_write_control,GL_EXT_shader_framebuffer_fetch,GL_EXT_shader_io_blocks,GL_EXT_shader_non_constant_global_initializers,GL_EXT_tessellation_shader,GL_EXT_texture_border_clamp,GL_EXT_texture_buffer,GL_EXT_texture_cube_map_array,GL_EXT_texture_filter_anisotropic,GL_EXT_texture_format_BGRA8888,GL_EXT_texture_norm16,GL_EXT_texture_sRGB_R8,GL_EXT_texture_sRGB_decode,GL_EXT_texture_type_2_10_10_10_REV,GL_KHR_blend_equation_advanced,GL_KHR_blend_equation_advanced_coherent,GL_KHR_debug,GL_KHR_no_error,GL_KHR_texture_compression_astc_hdr,GL_KHR_texture_compression_astc_ldr,GL_OES_EGL_image,GL_OES_EGL_image_external,GL_OES_EGL_image_external_essl3,GL_OES_EGL_sync,GL_OES_blend_equation_separate,GL_OES_blend_func_separate,GL_OES_blend_subtract,GL_OES_compressed_ETC1_RGB8_texture,GL_OES_compressed_paletted_texture,GL_OES_depth24,GL_OES_depth_texture,GL_OES_depth_texture_cube_map,GL_OES_draw_texture,GL_OES_element_index_uint,GL_OES_framebuffer_object,GL_OES_get_program_binary,GL_OES_matrix_palette,GL_OES_packed_depth_stencil,GL_OES_point_size_array,GL_OES_point_sprite,GL_OES_read_format,GL_OES_rgb8_rgba8,GL_OES_sample_shading,GL_OES_sample_variables,GL_OES_shader_image_atomic,GL_OES_shader_multisample_interpolation,GL_OES_standard_derivatives,GL_OES_stencil_wrap,GL_OES_surfaceless_context,GL_OES_texture_3D,GL_OES_texture_compression_astc,GL_OES_texture_cube_map,GL_OES_texture_env_crossbar,GL_OES_texture_float,GL_OES_texture_float_linear,GL_OES_texture_half_float,GL_OES_texture_half_float_linear,GL_OES_texture_mirrored_repeat,GL_OES_texture_npot,GL_OES_texture_stencil8,GL_OES_texture_storage_multisample_2d_array,GL_OES_vertex_array_object,GL_OES_vertex_half_float,GL_OVR_multiview,GL_OVR_multiview2,GL_OVR_multiview_multisampled_render_to_texture,GL_QCOM_alpha_test,GL_QCOM_extended_get,GL_QCOM_tiled_rendering
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
UserReadableName = MBX m201 Smart TV (api19)
|
||||
Build.HARDWARE = amlogic
|
||||
Build.RADIO = unknown
|
||||
Build.BOOTLOADER = unknown
|
||||
Build.FINGERPRINT = MBX/m201/m201:4.4.2/KOT49H/20160225:user/test-keys
|
||||
Build.BRAND = MBX
|
||||
Build.DEVICE = m201
|
||||
Build.VERSION.SDK_INT = 19
|
||||
Build.MODEL = MXQ
|
||||
Build.MANUFACTURER = MBX
|
||||
Build.PRODUCT = m201
|
||||
TouchScreen = 1
|
||||
Keyboard = 1
|
||||
Navigation = 2
|
||||
ScreenLayout = 3
|
||||
HasHardKeyboard = false
|
||||
HasFiveWayNavigation = true
|
||||
Screen.Density = 160
|
||||
Screen.Width = 1280
|
||||
Screen.Height = 720
|
||||
Platforms = armeabi-v7a,armeabi
|
||||
SharedLibraries = com.google.android.tv.v1,javax.obex,com.google.android.media.effects,com.android.future.usb.accessory,amlogic.libplayer,android.test.runner,AmlogicPPPoE,com.google.widevine.software.drm,com.google.android.maps,com.android.location.provider,com.google.android.gms,com.android.media.remotedisplay
|
||||
Features = android.hardware.sensor.proximity,android.hardware.sensor.accelerometer,android.hardware.faketouch,org.cyanogenmod.appsuggest,android.hardware.usb.accessory,android.hardware.telephony.cdma,android.software.backup,android.hardware.touchscreen,android.hardware.touchscreen.multitouch,android.software.print,android.hardware.consumerir,org.cyanogenmod.partner,org.cyanogenmod.telephony,android.software.voice_recognizers,android.hardware.fingerprint,android.hardware.sensor.gyroscope,android.hardware.audio.low_latency,android.hardware.opengles.aep,android.hardware.bluetooth,android.hardware.camera.autofocus,com.google.android.feature.GOOGLE_BUILD,android.hardware.telephony.gsm,android.software.sip.voip,org.cyanogenmod.profiles,android.hardware.usb.host,com.cyanogenmod.android,android.hardware.audio.output,android.hardware.camera.flash,android.hardware.camera.front,android.hardware.sensor.hifi_sensors,android.hardware.screen.portrait,android.hardware.nfc,com.nxp.mifare,android.hardware.sensor.stepdetector,org.cyanogenmod.audio,org.cyanogenmod.theme,android.software.home_screen,android.hardware.microphone,org.cyanogenmod.statusbar,android.hardware.bluetooth_le,android.hardware.sensor.compass,android.hardware.touchscreen.multitouch.jazzhand,android.hardware.sensor.barometer,android.software.app_widgets,android.software.input_methods,android.hardware.sensor.light,android.software.device_admin,android.hardware.camera,org.cyanogenmod.hardware,android.hardware.screen.landscape,org.cyanogenmod.weather,org.cyanogenmod.performance,android.software.managed_users,android.software.webview,android.hardware.sensor.stepcounter,android.hardware.camera.capability.manual_post_processing,org.cyanogenmod.livedisplay,android.hardware.camera.any,android.hardware.camera.capability.raw,android.software.connectionservice,android.hardware.touchscreen.multitouch.distinct,android.hardware.location.network,android.software.sip,android.hardware.camera.capability.manual_sensor,android.hardware.camera.level.full,android.hardware.wifi.direct,android.software.live_wallpaper,com.google.android.feature.GOOGLE_EXPERIENCE,com.google.android.feature.EXCHANGE_6_2,org.cyanogenmod.theme.v1,org.cyanogenmod.livelockscreen,android.hardware.location.gps,android.software.midi,android.hardware.nfc.hce,android.hardware.wifi,android.hardware.location,android.hardware.telephony
|
||||
Locales = af,af_NA,af_ZA,agq,ak,ak_GH,am,am_ET,ar,ar_AE,ar_BH,ar_DJ,ar_DZ,ar_EG,ar_EH,ar_ER,ar_IL,ar_IQ,ar_JO,ar_KM,ar_KW,ar_LB,ar_LY,ar_MA,ar_MR,ar_OM,ar_PS,ar_QA,ar_SA,ar_SD,ar_SO,ar_SY,ar_TD,ar_TN,ar_YE,as,as_IN,asa,az,bas,be,be_BY,bem,bez,bg,bg_BG,bm,bm_ML,bn,bn_BD,bn_IN,bo,bo_CN,bo_IN,br,br_FR,brx,bs,ca,ca_AD,ca_ES,cgg,chr,cs,cs_CZ,cy,cy_GB,da,da_DK,dav,de,de_AT,de_BE,de_CH,de_DE,de_LI,de_LU,dje,dua,dyo,dz,dz_BT,ebu,ee,ee_GH,ee_TG,el,el_CY,el_GR,en,en_AG,en_AS,en_AU,en_BB,en_BE,en_BM,en_BS,en_BW,en_BZ,en_CA,en_CM,en_DM,en_FJ,en_FM,en_GB,en_GD,en_GG,en_GH,en_GI,en_GM,en_GU,en_GY,en_HK,en_IE,en_IM,en_IN,en_JE,en_JM,en_KE,en_KI,en_KN,en_KY,en_LC,en_LR,en_LS,en_MG,en_MH,en_MP,en_MT,en_MU,en_MW,en_NA,en_NG,en_NZ,en_PG,en_PH,en_PK,en_PR,en_PW,en_SB,en_SC,en_SG,en_SL,en_SS,en_SZ,en_TC,en_TO,en_TT,en_TZ,en_UG,en_UM,en_US,en_VC,en_VG,en_VI,en_VU,en_WS,en_ZA,en_ZM,en_ZW,eo,es,es_AR,es_BO,es_CL,es_CO,es_CR,es_CU,es_DO,es_EA,es_EC,es_ES,es_GQ,es_GT,es_HN,es_IC,es_MX,es_NI,es_PA,es_PE,es_PH,es_PR,es_PY,es_SV,es_US,es_UY,es_VE,et,et_EE,eu,eu_ES,ewo,fa,fa_AF,fa_IR,ff,ff_SN,fi,fi_FI,fil,fo,fo_FO,fr,fr_BE,fr_BF,fr_BI,fr_BJ,fr_BL,fr_CA,fr_CD,fr_CF,fr_CG,fr_CH,fr_CI,fr_CM,fr_DJ,fr_DZ,fr_FR,fr_GA,fr_GF,fr_GN,fr_GP,fr_GQ,fr_HT,fr_KM,fr_LU,fr_MA,fr_MC,fr_MF,fr_MG,fr_ML,fr_MQ,fr_MR,fr_MU,fr_NC,fr_NE,fr_PF,fr_RE,fr_RW,fr_SC,fr_SN,fr_SY,fr_TD,fr_TG,fr_TN,fr_VU,fr_YT,ga,ga_IE,gl,gl_ES,gsw,gu,gu_IN,guz,gv,gv_GB,ha,haw,iw,iw_IL,hi,hi_IN,hr,hr_BA,hr_HR,hu,hu_HU,hy,hy_AM,in,in_ID,ig,ig_NG,ii,ii_CN,is,is_IS,it,it_CH,it_IT,it_SM,ja,ja_JP,jgo,jmc,ka,ka_GE,kab,kam,kde,kea,khq,ki,ki_KE,kk,kl,kl_GL,kln,km,km_KH,kn,kn_IN,ko,ko_KP,ko_KR,kok,ks,ksb,ksf,kw,kw_GB,lag,lg,lg_UG,ln,ln_AO,ln_CD,ln_CF,ln_CG,lo,lo_LA,lt,lt_LT,lu,lu_CD,luo,luy,lv,lv_LV,mas,mer,mfe,mg,mg_MG,mgh,mgo,mk,mk_MK,ml,ml_IN,mn,mr,mr_IN,ms,mt,mt_MT,mua,my,my_MM,naq,nb,nb_NO,nd,nd_ZW,ne,ne_IN,ne_NP,nl,nl_AW,nl_BE,nl_CW,nl_NL,nl_SR,nl_SX,nmg,nn,nn_NO,nus,nyn,om,om_ET,om_KE,or,or_IN,pa,pl,pl_PL,ps,ps_AF,pt,pt_AO,pt_BR,pt_CV,pt_GW,pt_MO,pt_MZ,pt_PT,pt_ST,pt_TL,rm,rm_CH,rn,rn_BI,ro,ro_MD,ro_RO,rof,ru,ru_BY,ru_KG,ru_KZ,ru_MD,ru_RU,ru_UA,rw,rw_RW,rwk,saq,sbp,seh,ses,sg,sg_CF,shi,si,si_LK,sk,sk_SK,sl,sl_SI,sn,sn_ZW,so,so_DJ,so_ET,so_KE,so_SO,sq,sq_AL,sq_MK,sr,sv,sv_AX,sv_FI,sv_SE,sw,sw_KE,sw_TZ,sw_UG,swc,ta,ta_IN,ta_LK,ta_MY,ta_SG,te,te_IN,teo,th,th_TH,ti,ti_ER,ti_ET,to,to_TO,tr,tr_CY,tr_TR,twq,tzm,uk,uk_UA,ur,ur_IN,ur_PK,uz,vai,vi,vi_VN,vun,xog,yav,yo,yo_NG,zh,zu,zu_ZA
|
||||
GL.Version = 131072
|
||||
GL.Extensions = GL_AMD_compressed_ATC_texture,GL_AMD_performance_monitor,GL_ANDROID_extension_pack_es31a,GL_APPLE_texture_2D_limited_npot,GL_ARB_vertex_buffer_object,GL_ARM_shader_framebuffer_fetch_depth_stencil,GL_EXT_YUV_target,GL_EXT_blit_framebuffer_params,GL_EXT_buffer_storage,GL_EXT_color_buffer_float,GL_EXT_color_buffer_half_float,GL_EXT_copy_image,GL_EXT_debug_label,GL_EXT_debug_marker,GL_EXT_discard_framebuffer,GL_EXT_disjoint_timer_query,GL_EXT_draw_buffers_indexed,GL_EXT_geometry_shader,GL_EXT_gpu_shader5,GL_EXT_multisampled_render_to_texture,GL_EXT_primitive_bounding_box,GL_EXT_robustness,GL_EXT_sRGB,GL_EXT_sRGB_write_control,GL_EXT_shader_framebuffer_fetch,GL_EXT_shader_io_blocks,GL_EXT_tessellation_shader,GL_EXT_texture_border_clamp,GL_EXT_texture_buffer,GL_EXT_texture_cube_map_array,GL_EXT_texture_filter_anisotropic,GL_EXT_texture_format_BGRA8888,GL_EXT_texture_norm16,GL_EXT_texture_sRGB_R8,GL_EXT_texture_sRGB_decode,GL_EXT_texture_type_2_10_10_10_REV,GL_KHR_blend_equation_advanced,GL_KHR_blend_equation_advanced_coherent,GL_KHR_debug,GL_KHR_no_error,GL_KHR_texture_compression_astc_hdr,GL_KHR_texture_compression_astc_ldr,GL_OES_EGL_image,GL_OES_EGL_image_external,GL_OES_EGL_sync,GL_OES_blend_equation_separate,GL_OES_blend_func_separate,GL_OES_blend_subtract,GL_OES_compressed_ETC1_RGB8_texture,GL_OES_compressed_paletted_texture,GL_OES_depth24,GL_OES_depth_texture,GL_OES_depth_texture_cube_map,GL_OES_draw_texture,GL_OES_element_index_uint,GL_OES_framebuffer_object,GL_OES_get_program_binary,GL_OES_matrix_palette,GL_OES_packed_depth_stencil,GL_OES_point_size_array,GL_OES_point_sprite,GL_OES_read_format,GL_OES_rgb8_rgba8,GL_OES_sample_shading,GL_OES_sample_variables,GL_OES_shader_image_atomic,GL_OES_shader_multisample_interpolation,GL_OES_standard_derivatives,GL_OES_stencil_wrap,GL_OES_surfaceless_context,GL_OES_texture_3D,GL_OES_texture_compression_astc,GL_OES_texture_cube_map,GL_OES_texture_env_crossbar,GL_OES_texture_float,GL_OES_texture_float_linear,GL_OES_texture_half_float,GL_OES_texture_half_float_linear,GL_OES_texture_mirrored_repeat,GL_OES_texture_npot,GL_OES_texture_stencil8,GL_OES_texture_storage_multisample_2d_array,GL_OES_vertex_array_object,GL_OES_vertex_half_float,GL_OVR_multiview,GL_OVR_multiview2,GL_OVR_multiview_multisampled_render_to_texture,GL_QCOM_alpha_test,GL_QCOM_extended_get,GL_QCOM_tiled_rendering,GL_EXT_multi_draw_arrays,GL_EXT_shader_texture_lod,GL_IMG_multisampled_render_to_texture,GL_IMG_program_binary,GL_IMG_read_format,GL_IMG_shader_binary,GL_IMG_texture_compression_pvrtc,GL_IMG_texture_format_BGRA8888,GL_IMG_texture_npot,GL_IMG_vertex_array_object,GL_OES_byte_coordinates,GL_OES_extended_matrix_palette,GL_OES_fixed_point,GL_OES_fragment_precision_high,GL_OES_mapbuffer,GL_OES_matrix_get,GL_OES_query_matrix,GL_OES_required_internalformat,GL_OES_single_precision,GL_OES_stencil8
|
||||
Roaming = mobile-notroaming
|
||||
TimeZone = Europe/Moscow
|
||||
CellOperator = 310260
|
||||
GSF.version = 10548448
|
||||
Vending.version = 80798000
|
||||
SimOperator = 310260
|
||||
Client = android-google
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
UserReadableName = Samsung Galaxy S3 (api25)
|
||||
Build.FINGERPRINT = samsung/m3xx/m3:4.1.2/JZO54K/I9305XXBMA6:user/release-keys
|
||||
Build.HARDWARE = smdk4x12
|
||||
Build.BRAND = samsung
|
||||
Build.RADIO = I9305XXUFOI1
|
||||
Build.BOOTLOADER = I9305XXUEML9
|
||||
Build.DEVICE = m3
|
||||
Build.VERSION.SDK_INT = 25
|
||||
Build.MODEL = GT-I9305
|
||||
Build.MANUFACTURER = samsung
|
||||
Build.PRODUCT = m3xx
|
||||
TouchScreen = 3
|
||||
Keyboard = 1
|
||||
Navigation = 1
|
||||
ScreenLayout = 2
|
||||
HasHardKeyboard = false
|
||||
HasFiveWayNavigation = false
|
||||
Screen.Density = 320
|
||||
Screen.Width = 720
|
||||
Screen.Height = 1280
|
||||
Platforms = armeabi-v7a,armeabi
|
||||
SharedLibraries = org.cyanogenmod.platform,com.android.location.provider,com.android.future.usb.accessory,android.ext.shared,javax.obex,android.ext.services,org.cyanogenmod.hardware,android.test.runner,org.apache.http.legacy,com.android.nfc_extras,com.android.media.remotedisplay,com.android.mediadrm.signer
|
||||
Features = android.hardware.sensor.proximity,android.hardware.sensor.accelerometer,android.hardware.faketouch,org.cyanogenmod.appsuggest,android.hardware.usb.accessory,android.hardware.telephony.cdma,android.software.backup,android.hardware.touchscreen,android.hardware.touchscreen.multitouch,android.software.print,android.hardware.consumerir,org.cyanogenmod.partner,org.cyanogenmod.telephony,android.software.voice_recognizers,android.hardware.fingerprint,android.hardware.sensor.gyroscope,android.hardware.audio.low_latency,android.hardware.opengles.aep,android.hardware.bluetooth,android.hardware.camera.autofocus,com.google.android.feature.GOOGLE_BUILD,android.hardware.telephony.gsm,android.software.sip.voip,org.cyanogenmod.profiles,android.hardware.usb.host,com.cyanogenmod.android,android.hardware.audio.output,android.hardware.camera.flash,android.hardware.camera.front,android.hardware.sensor.hifi_sensors,android.hardware.screen.portrait,android.hardware.nfc,com.nxp.mifare,android.hardware.sensor.stepdetector,org.cyanogenmod.audio,org.cyanogenmod.theme,android.software.home_screen,android.hardware.microphone,org.cyanogenmod.statusbar,android.hardware.bluetooth_le,android.hardware.sensor.compass,android.hardware.touchscreen.multitouch.jazzhand,android.hardware.sensor.barometer,android.software.app_widgets,android.software.input_methods,android.hardware.sensor.light,android.software.device_admin,android.hardware.camera,org.cyanogenmod.hardware,android.hardware.screen.landscape,org.cyanogenmod.weather,org.cyanogenmod.performance,android.software.managed_users,android.software.webview,android.hardware.sensor.stepcounter,android.hardware.camera.capability.manual_post_processing,org.cyanogenmod.livedisplay,android.hardware.camera.any,android.hardware.camera.capability.raw,android.software.connectionservice,android.hardware.touchscreen.multitouch.distinct,android.hardware.location.network,android.software.sip,android.hardware.camera.capability.manual_sensor,android.hardware.camera.level.full,android.hardware.wifi.direct,android.software.live_wallpaper,com.google.android.feature.GOOGLE_EXPERIENCE,com.google.android.feature.EXCHANGE_6_2,org.cyanogenmod.theme.v1,org.cyanogenmod.livelockscreen,android.hardware.location.gps,android.software.midi,android.hardware.nfc.hce,android.hardware.wifi,android.hardware.location,android.hardware.telephony
|
||||
Locales = hi,so_ET,ro_MD,in,sn_ZW,sw_UG,es_BO,dyo,ru_KZ,en_JE,zu,en_JM,pt_BR,en_MS,ar_SD,en_ZM,es_PA,en_GG,es_SV,en_SE,es,rof,fr_SC,fr_GA,en_CM,ta,en_SX,fr_MC,fy,to,fr_RW,en_SD,qu,en_KE,rw_RW,gv_IM,sv_FI,cgg,pt_GW,fr_CF,sv_SE,dje,en_SS,ar_DZ,si,es_UY,ar_SA,tr_TR,dua,fr_BL,nb_SJ,fr_CA,ff,es_PE,om,en_FK,cs_CZ,zu_ZA,sl_SI,es_NI,en_GY,fr_ML,fr_MF,nmg,fo_DK,en_LR,el_CY,nus,mt,en_NU,en_UG,ta_MY,pt_ST,ha_NE,ca_FR,ru,es_IC,ar_KW,it_IT,en_GI,ji,hr,ka_GE,pt_PT,nl,en_TV,ru_RU,pa,mgh,es_ES,km,ee_TG,ca_AD,twq,ar_YE,eo,ne,as_IN,es_GT,vi_VN,de_CH,ig_NG,or_IN,mua,pl_PL,lv,fr_DZ,lb,hr_HR,haw,sw_KE,shi,mn,om_ET,fr_LU,es_PR,lo_LA,es_HN,kl_GL,bo_IN,et_EE,en_ZA,fr_TG,br_FR,yo_NG,tr_CY,sr,bem,fr_PF,ti_ET,hu,mk,de_LI,so_SO,nb_NO,luo,en_ZW,sk_SK,ksh,sk,nyn,fa,zgh,fr_HT,en_CY,uz,rm,en_MH,sn,to_TO,te,sq_MK,ha_GH,ta_IN,en_MW,da,en_BS,ms_SG,ps_AF,lt_LT,br,it_CH,fr_NE,en_LC,bm_ML,kk_KZ,qu_BO,tr,nl_SR,ln,sw,luy,en,fo,en_GD,asa,lag,fr_GQ,fr,fr_GN,dz,ar_SO,dz_BT,ca,es_CL,rn_BI,sq_XK,en_CC,en_SI,el_GR,yo_BJ,vi,my,de_LU,mk_MK,ak_GH,fr_GF,en_PK,my_MM,fr_CG,cy,es_PH,en_IN,ksf,en_LS,fy_NL,ce,ff_MR,af_ZA,fa_IR,bn_BD,vun,ks,bg,sq_AL,fr_BF,rw,af_NA,dsb,qu_PE,en_DM,ar_TN,nd,en_UM,en_FM,en_NR,ro,uk,se_SE,ln_CF,pt_MZ,am_ET,kl,pt,ta_SG,th,se_NO,ff_GN,ky,en_NG,ur_PK,af,en_DE,so,sah,fr_SN,ar_EH,vai,gu_IN,en_WS,es_EA,ms,fr_MG,th_TH,fr_RE,ru_BY,nl_SX,lv_LV,ki_KE,fr_CI,en_BB,ja,kde,am,nl_BQ,bo_CN,ga_IE,sl,bn_IN,mer,en_SZ,fr_CM,dav,ti_ER,da_GL,kw_GB,ga,mfe,it,it_SM,fo_FO,en_BW,en_SG,en_KN,cs,chr,km_KH,en_SC,mr_IN,el,en_PN,mg_MG,ru_KG,en_PW,en_SB,fur,en_BZ,ka,bm,de_DE,te_IN,ml_IN,hy,sw_TZ,kw,kn,ru_UA,ln_CD,et,fr_CH,en_DG,bn,ps,qu_EC,lt,ii_CN,en_FJ,eu,en_TC,ksb,pt_CV,gl_ES,en_VU,en_MP,ee,ar_PS,wae,nl_BE,xog,is,fr_PM,saq,iw_IL,om_KE,en_FI,nn_NO,pt_MO,mgo,en_US,fr_BE,ar,gd,kok,de,kln,kam,mt_MT,be,ce_RU,en_BE,fr_SY,es_MX,sv_AX,agq,sq,hr_BA,tzm,de_AT,os_RU,es_DO,en_BI,mg,ar_SY,yav,ks_IN,ro_RO,lu_CD,en_PG,jgo,is_IS,es_CU,ff_CM,en_VG,az,en_GU,fr_MR,ug_CN,in_ID,en_AU,nl_CW,ru_MD,naq,gd_GB,en_CK,ml,ja_JP,sw_CD,uk_UA,ta_LK,pl,es_VE,da_DK,be_BY,fa_AF,pt_AO,fr_MQ,bs,mas,ar_QA,en_IO,en_SH,en_NL,es_GQ,lg,hu_HU,fr_BJ,en_MO,brx,fr_WF,ar_OM,ca_ES,en_GB,ug,ha,en_NA,en_NF,sv,as,ig,en_KI,en_CX,en_TO,sbp,bo,ne_NP,bg_BG,jmc,en_GM,ar_JO,en_HK,ar_IQ,fr_DJ,fr_GP,lkt,kn_IN,ha_NG,en_IL,en_KY,en_TT,fil,fr_BI,sg,hsb,ca_IT,teo,fr_TN,en_AS,kk,guz,fr_VU,mr,es_EC,en_TZ,ko_KR,ar_MA,ar_LB,fr_CD,en_DK,es_CO,ur_IN,rwk,es_PY,ms_MY,cy_GB,en_PH,seh,ar_BH,en_TK,en_RW,eu_ES,ki,fr_TD,smn,ses,so_KE,es_CR,en_MY,en_AI,lo,en_MG,en_PR,gsw,en_VI,en_BM,se,en_IE,en_SL,khq,en_CH,ee_GH,ko,lb_LU,en_AT,nn,ar_ER,lrc,ar_TD,ar_MR,fr_YT,en_GH,en_MU,si_LK,gv,ky_KG,nl_NL,rm_CH,ar_IL,ti,iw,hy_AM,se_FI,pt_TL,en_AG,or,bez,ff_SN,en_IM,fr_MA,en_MT,nd_ZW,fi_FI,en_NZ,de_BE,fr_KM,bas,ak,nl_AW,ar_AE,kab,ar_EG,ur,es_AR,ar_DJ,ar_KM,kkj,fi,lu,fr_FR,ebu,os,ne_IN,ln_AO,gu,zh,os_GE,sg_CF,mn_MN,gl,lg_UG,ko_KP,rn,mzn,es_US,hi_IN,ar_LY,ms_BN,fr_NC,so_DJ,ii,en_ER,ar_SS,kea,ln_CG,fr_MU,nb,yo,nnh,en_VC,ewo,en_CA
|
||||
Client = android-google
|
||||
GSF.version = 10548448
|
||||
Vending.version = 80798000
|
||||
CellOperator = 310260
|
||||
SimOperator = 310260
|
||||
Roaming = mobile-notroaming
|
||||
TimeZone = Europe/Moscow
|
||||
GL.Version = 131072
|
||||
GL.Extensions = GL_AMD_compressed_ATC_texture,GL_AMD_performance_monitor,GL_ANDROID_extension_pack_es31a,GL_APPLE_texture_2D_limited_npot,GL_ARB_vertex_buffer_object,GL_ARM_shader_framebuffer_fetch_depth_stencil,GL_EXT_YUV_target,GL_EXT_blit_framebuffer_params,GL_EXT_buffer_storage,GL_EXT_color_buffer_float,GL_EXT_color_buffer_half_float,GL_EXT_copy_image,GL_EXT_debug_label,GL_EXT_debug_marker,GL_EXT_discard_framebuffer,GL_EXT_disjoint_timer_query,GL_EXT_draw_buffers_indexed,GL_EXT_geometry_shader,GL_EXT_gpu_shader5,GL_EXT_multisampled_render_to_texture,GL_EXT_primitive_bounding_box,GL_EXT_robustness,GL_EXT_sRGB,GL_EXT_sRGB_write_control,GL_EXT_shader_framebuffer_fetch,GL_EXT_shader_io_blocks,GL_EXT_tessellation_shader,GL_EXT_texture_border_clamp,GL_EXT_texture_buffer,GL_EXT_texture_cube_map_array,GL_EXT_texture_filter_anisotropic,GL_EXT_texture_format_BGRA8888,GL_EXT_texture_norm16,GL_EXT_texture_sRGB_R8,GL_EXT_texture_sRGB_decode,GL_EXT_texture_type_2_10_10_10_REV,GL_KHR_blend_equation_advanced,GL_KHR_blend_equation_advanced_coherent,GL_KHR_debug,GL_KHR_no_error,GL_KHR_texture_compression_astc_hdr,GL_KHR_texture_compression_astc_ldr,GL_OES_EGL_image,GL_OES_EGL_image_external,GL_OES_EGL_sync,GL_OES_blend_equation_separate,GL_OES_blend_func_separate,GL_OES_blend_subtract,GL_OES_compressed_ETC1_RGB8_texture,GL_OES_compressed_paletted_texture,GL_OES_depth24,GL_OES_depth_texture,GL_OES_depth_texture_cube_map,GL_OES_draw_texture,GL_OES_element_index_uint,GL_OES_framebuffer_object,GL_OES_get_program_binary,GL_OES_matrix_palette,GL_OES_packed_depth_stencil,GL_OES_point_size_array,GL_OES_point_sprite,GL_OES_read_format,GL_OES_rgb8_rgba8,GL_OES_sample_shading,GL_OES_sample_variables,GL_OES_shader_image_atomic,GL_OES_shader_multisample_interpolation,GL_OES_standard_derivatives,GL_OES_stencil_wrap,GL_OES_surfaceless_context,GL_OES_texture_3D,GL_OES_texture_compression_astc,GL_OES_texture_cube_map,GL_OES_texture_env_crossbar,GL_OES_texture_float,GL_OES_texture_float_linear,GL_OES_texture_half_float,GL_OES_texture_half_float_linear,GL_OES_texture_mirrored_repeat,GL_OES_texture_npot,GL_OES_texture_stencil8,GL_OES_texture_storage_multisample_2d_array,GL_OES_vertex_array_object,GL_OES_vertex_half_float,GL_OVR_multiview,GL_OVR_multiview2,GL_OVR_multiview_multisampled_render_to_texture,GL_QCOM_alpha_test,GL_QCOM_extended_get,GL_QCOM_tiled_rendering,GL_EXT_multi_draw_arrays,GL_EXT_shader_texture_lod,GL_IMG_multisampled_render_to_texture,GL_IMG_program_binary,GL_IMG_read_format,GL_IMG_shader_binary,GL_IMG_texture_compression_pvrtc,GL_IMG_texture_format_BGRA8888,GL_IMG_texture_npot,GL_IMG_vertex_array_object,GL_OES_byte_coordinates,GL_OES_extended_matrix_palette,GL_OES_fixed_point,GL_OES_fragment_precision_high,GL_OES_mapbuffer,GL_OES_matrix_get,GL_OES_query_matrix,GL_OES_required_internalformat,GL_OES_single_precision,GL_OES_stencil8
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
UserReadableName = Samsung Galaxy Nexus (api16)
|
||||
Build.FINGERPRINT = google/yakju/maguro:4.1.1/JRO03C/398337:user/release-keys
|
||||
Build.HARDWARE = tuna
|
||||
Build.BRAND = Google
|
||||
Build.RADIO = I9250XXLA2
|
||||
Build.BOOTLOADER = PRIMELA03
|
||||
Build.DEVICE = maguro
|
||||
Build.VERSION.SDK_INT = 16
|
||||
Build.MODEL = Galaxy Nexus
|
||||
Build.MANUFACTURER = Samsung
|
||||
Build.PRODUCT = yakju
|
||||
Client = android-google
|
||||
GSF.version = 10548448
|
||||
Vending.version = 80798000
|
||||
CellOperator = 310260
|
||||
SimOperator = 310260
|
||||
Roaming = mobile-notroaming
|
||||
TimeZone = Europe/Moscow
|
||||
TouchScreen = 3
|
||||
Keyboard = 1
|
||||
Navigation = 1
|
||||
ScreenLayout = 2
|
||||
HasHardKeyboard = false
|
||||
HasFiveWayNavigation = false
|
||||
Screen.Density = 320
|
||||
Screen.Width = 720
|
||||
Screen.Height = 1184
|
||||
Platforms = armeabi-v7a,armeabi
|
||||
SharedLibraries = ConnectivityExt,activation.jar,android-support-v13.jar,android-support-v4.jar,android-support-v7-recyclerview.jar,cloud-common.jar,com.android.media.remotedisplay,com.android.mediadrm.signer,android.test.runner,com.android.future.usb.accessory,com.android.location.provider,com.android.nfc_extras,com.google.android.maps,com.google.android.media.effects,com.google.widevine.software.drm,javax.obex
|
||||
Features = android.hardware.wifi,android.hardware.location.network,android.hardware.telephony,android.hardware.location,android.software.sip,android.hardware.touchscreen.multitouch,android.hardware.sensor.compass,android.hardware.camera,android.hardware.usb.accessory,android.hardware.bluetooth,com.tmobile.software.themes,android.hardware.sensor.proximity,android.software.sip.voip,android.hardware.sensor.light,android.hardware.microphone,android.hardware.location.gps,android.hardware.camera.autofocus,android.hardware.telephony.gsm,android.software.live_wallpaper,android.hardware.touchscreen,android.hardware.sensor.accelerometer,android.hardware.camera.flash
|
||||
Locales = ar,bg,bg_BG,ca,ca_ES,cs,cs_CZ,da,da_DK,de,de_AT,de_BE,de_CH,de_DE,de_LI,de_LU,el,el_GR,en,en_AU,en_BE,en_BW,en_BZ,en_CA,en_GB,en_HK,en_IE,en_IN,en_JM,en_MH,en_MT,en_NA,en_NZ,en_PH,en_PK,en_SG,en_TT,en_US,en_US_POSIX,en_VI,en_ZA,en_ZW,es,es_ES,es_US,fa,fa_AF,fa_IR,fi,fil,fil_PH,fr,fr_BE,fr_CA,fr_CH,fr_FR,fr_LU,fr_MC,iw,hi,hi_IN,hr,hu,in,it,it_CH,it_IT,ja,ja_JP,ko,ko_KR,lt,lt_LT,lv,lv_LV,nb,nb_NO,nl,nl_BE,nl_NL,pl,pl_PL,pt,pt_BR,pt_PT,ro,ru,ru_RU,sk,sl,sl_SI,sr,sv,sv_SE,th,tr,tr_TR,uk,vi,vi_VN,zh,zh_CN,zh_HANS,zh_HANS_CN,zh_HANT,zh_HANT_TW,zh_TW
|
||||
GL.Version = 131072
|
||||
GL.Extensions = GL_AMD_compressed_ATC_texture,GL_AMD_performance_monitor,GL_ANDROID_extension_pack_es31a,GL_APPLE_texture_2D_limited_npot,GL_ARB_vertex_buffer_object,GL_ARM_shader_framebuffer_fetch_depth_stencil,GL_EXT_YUV_target,GL_EXT_blit_framebuffer_params,GL_EXT_buffer_storage,GL_EXT_color_buffer_float,GL_EXT_color_buffer_half_float,GL_EXT_copy_image,GL_EXT_debug_label,GL_EXT_debug_marker,GL_EXT_discard_framebuffer,GL_EXT_disjoint_timer_query,GL_EXT_draw_buffers_indexed,GL_EXT_geometry_shader,GL_EXT_gpu_shader5,GL_EXT_multisampled_render_to_texture,GL_EXT_primitive_bounding_box,GL_EXT_robustness,GL_EXT_sRGB,GL_EXT_sRGB_write_control,GL_EXT_shader_framebuffer_fetch,GL_EXT_shader_io_blocks,GL_EXT_tessellation_shader,GL_EXT_texture_border_clamp,GL_EXT_texture_buffer,GL_EXT_texture_cube_map_array,GL_EXT_texture_filter_anisotropic,GL_EXT_texture_format_BGRA8888,GL_EXT_texture_norm16,GL_EXT_texture_sRGB_R8,GL_EXT_texture_sRGB_decode,GL_EXT_texture_type_2_10_10_10_REV,GL_KHR_blend_equation_advanced,GL_KHR_blend_equation_advanced_coherent,GL_KHR_debug,GL_KHR_no_error,GL_KHR_texture_compression_astc_hdr,GL_KHR_texture_compression_astc_ldr,GL_OES_EGL_image,GL_OES_EGL_image_external,GL_OES_EGL_sync,GL_OES_blend_equation_separate,GL_OES_blend_func_separate,GL_OES_blend_subtract,GL_OES_compressed_ETC1_RGB8_texture,GL_OES_compressed_paletted_texture,GL_OES_depth24,GL_OES_depth_texture,GL_OES_depth_texture_cube_map,GL_OES_draw_texture,GL_OES_element_index_uint,GL_OES_framebuffer_object,GL_OES_get_program_binary,GL_OES_matrix_palette,GL_OES_packed_depth_stencil,GL_OES_point_size_array,GL_OES_point_sprite,GL_OES_read_format,GL_OES_rgb8_rgba8,GL_OES_sample_shading,GL_OES_sample_variables,GL_OES_shader_image_atomic,GL_OES_shader_multisample_interpolation,GL_OES_standard_derivatives,GL_OES_stencil_wrap,GL_OES_surfaceless_context,GL_OES_texture_3D,GL_OES_texture_compression_astc,GL_OES_texture_cube_map,GL_OES_texture_env_crossbar,GL_OES_texture_float,GL_OES_texture_float_linear,GL_OES_texture_half_float,GL_OES_texture_half_float_linear,GL_OES_texture_mirrored_repeat,GL_OES_texture_npot,GL_OES_texture_stencil8,GL_OES_texture_storage_multisample_2d_array,GL_OES_vertex_array_object,GL_OES_vertex_half_float,GL_OVR_multiview,GL_OVR_multiview2,GL_OVR_multiview_multisampled_render_to_texture,GL_QCOM_alpha_test,GL_QCOM_extended_get,GL_QCOM_tiled_rendering,GL_EXT_multi_draw_arrays,GL_EXT_shader_texture_lod,GL_IMG_multisampled_render_to_texture,GL_IMG_program_binary,GL_IMG_read_format,GL_IMG_shader_binary,GL_IMG_texture_compression_pvrtc,GL_IMG_texture_format_BGRA8888,GL_IMG_texture_npot,GL_IMG_vertex_array_object,GL_OES_byte_coordinates,GL_OES_extended_matrix_palette,GL_OES_fixed_point,GL_OES_fragment_precision_high,GL_OES_mapbuffer,GL_OES_matrix_get,GL_OES_query_matrix,GL_OES_required_internalformat,GL_OES_single_precision,GL_OES_stencil8
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
UserReadableName = Nexus 4 (api25)
|
||||
Build.HARDWARE = mako
|
||||
Build.RADIO = unknown
|
||||
Build.BOOTLOADER = MAKOZ30d
|
||||
Build.FINGERPRINT = google/occam/mako:5.1.1/LMY48M/2167285:user/release-keys
|
||||
Build.BRAND = google
|
||||
Build.DEVICE = mako
|
||||
Build.VERSION.SDK_INT = 25
|
||||
Build.MODEL = Nexus 4
|
||||
Build.MANUFACTURER = LGE
|
||||
Build.PRODUCT = occam
|
||||
Build.ID = N2G47O
|
||||
Build.VERSION.RELEASE = 7.1.2
|
||||
TouchScreen = 3
|
||||
Keyboard = 1
|
||||
Navigation = 1
|
||||
ScreenLayout = 2
|
||||
HasHardKeyboard = false
|
||||
HasFiveWayNavigation = false
|
||||
GL.Version = 196608
|
||||
Screen.Density = 288
|
||||
Screen.Width = 768
|
||||
Screen.Height = 1207
|
||||
Platforms = armeabi-v7a,armeabi
|
||||
SharedLibraries = android.ext.services,android.ext.shared,android.test.runner,com.android.future.usb.accessory,com.android.location.provider,com.android.media.remotedisplay,com.android.mediadrm.signer,com.google.android.dialer.support,com.google.android.gms,com.google.android.maps,com.google.android.media.effects,com.google.widevine.software.drm,javax.obex,org.apache.http.legacy,org.cyanogenmod.hardware,org.cyanogenmod.platform
|
||||
Features = android.hardware.audio.low_latency,android.hardware.audio.output,android.hardware.bluetooth,android.hardware.bluetooth_le,android.hardware.camera,android.hardware.camera.any,android.hardware.camera.autofocus,android.hardware.camera.flash,android.hardware.camera.front,android.hardware.ethernet,android.hardware.faketouch,android.hardware.location,android.hardware.location.gps,android.hardware.location.network,android.hardware.microphone,android.hardware.nfc,android.hardware.nfc.hce,android.hardware.screen.landscape,android.hardware.screen.portrait,android.hardware.sensor.accelerometer,android.hardware.sensor.barometer,android.hardware.sensor.compass,android.hardware.sensor.gyroscope,android.hardware.sensor.light,android.hardware.sensor.proximity,android.hardware.telephony,android.hardware.telephony.gsm,android.hardware.touchscreen,android.hardware.touchscreen.multitouch,android.hardware.touchscreen.multitouch.distinct,android.hardware.touchscreen.multitouch.jazzhand,android.hardware.usb.accessory,android.hardware.wifi,android.hardware.wifi.direct,android.software.app_widgets,android.software.backup,android.software.connectionservice,android.software.device_admin,android.software.home_screen,android.software.input_methods,android.software.live_wallpaper,android.software.managed_users,android.software.print,android.software.sip,android.software.sip.voip,android.software.voice_recognizers,android.software.webview,com.cyanogenmod.android,com.google.android.feature.EXCHANGE_6_2,com.google.android.feature.GOOGLE_BUILD,com.google.android.feature.GOOGLE_EXPERIENCE,org.cyanogenmod.appsuggest,org.cyanogenmod.audio,org.cyanogenmod.hardware,org.cyanogenmod.livedisplay,org.cyanogenmod.livelockscreen,org.cyanogenmod.partner,org.cyanogenmod.performance,org.cyanogenmod.profiles,org.cyanogenmod.statusbar,org.cyanogenmod.telephony,org.cyanogenmod.weather,projekt.substratum.theme
|
||||
Locales = af,af_ZA,am,am_ET,ar,ar_EG,ar_XB,ast,ast_ES,az_AZ,be,be_BY,bg,bg_BG,bn_BD,bs_BA,ca,ca_ES,cs,cs_CZ,da,da_DK,de,de_AT,de_CH,de_DE,de_LI,el,el_GR,en,en_AU,en_CA,en_GB,en_IN,en_NZ,en_SG,en_US,en_XA,eo,es,es_ES,es_US,et_EE,eu,eu_ES,fa,fa_IR,fi,fi_FI,fil,fil_PH,fr,fr_BE,fr_CA,fr_CH,fr_FR,gl_ES,gu_IN,hi,hi_IN,hr,hr_HR,hu,hu_HU,hy_AM,in,in_ID,is_IS,it,it_CH,it_IT,iw,iw_IL,ja,ja_JP,ka_GE,kk_KZ,km_KH,kn_IN,ko,ko_KR,ku,ky_KG,lb,lo_LA,lt,lt_LT,lv,lv_LV,mk_MK,ml_IN,mn_MN,mr_IN,ms_MY,my_MM,nb,nb_NO,ne_NP,nl,nl_BE,nl_NL,pa_IN,pl,pl_PL,pt,pt_BR,pt_PT,ro,ro_RO,ru,ru_RU,si_LK,sk,sk_SK,sl,sl_SI,sq_AL,sr,sr_RS,sv,sv_SE,sw,sw_TZ,ta_IN,te_IN,th,th_TH,tr,tr_TR,uk,uk_UA,ur_PK,uz_UZ,vi,vi_VN,zh,zh_CN,zh_HK,zh_TW,zu,zu_ZA
|
||||
GSF.version = 11746436
|
||||
Vending.version = 80841900
|
||||
Vending.versionString = 8.4.19.V-all [0] [FP] 175058788
|
||||
CellOperator = 21403
|
||||
SimOperator = 21403
|
||||
Roaming = mobile-notroaming
|
||||
Client = android-google
|
||||
TimeZone = Europe/Madrid
|
||||
GL.Extensions = GL_AMD_compressed_ATC_texture,GL_AMD_performance_monitor,GL_AMD_program_binary_Z400,GL_APPLE_texture_2D_limited_npot,GL_ARB_vertex_buffer_object,GL_EXT_color_buffer_float,GL_EXT_color_buffer_half_float,GL_EXT_debug_label,GL_EXT_debug_marker,GL_EXT_discard_framebuffer,GL_EXT_disjoint_timer_query,GL_EXT_multisampled_render_to_texture,GL_EXT_robustness,GL_EXT_sRGB,GL_EXT_sRGB_write_control,GL_EXT_texture_filter_anisotropic,GL_EXT_texture_format_BGRA8888,GL_EXT_texture_sRGB_decode,GL_EXT_texture_type_2_10_10_10_REV,GL_NV_fence,GL_OES_EGL_image,GL_OES_EGL_image_external,GL_OES_EGL_sync,GL_OES_blend_equation_separate,GL_OES_blend_func_separate,GL_OES_blend_subtract,GL_OES_compressed_ETC1_RGB8_texture,GL_OES_compressed_paletted_texture,GL_OES_depth24,GL_OES_depth_texture,GL_OES_depth_texture_cube_map,GL_OES_draw_texture,GL_OES_element_index_uint,GL_OES_fbo_render_mipmap,GL_OES_fragment_precision_high,GL_OES_framebuffer_object,GL_OES_get_program_binary,GL_OES_matrix_palette,GL_OES_packed_depth_stencil,GL_OES_point_size_array,GL_OES_point_sprite,GL_OES_read_format,GL_OES_rgb8_rgba8,GL_OES_standard_derivatives,GL_OES_stencil_wrap,GL_OES_texture_3D,GL_OES_texture_cube_map,GL_OES_texture_env_crossbar,GL_OES_texture_float,GL_OES_texture_half_float,GL_OES_texture_half_float_linear,GL_OES_texture_mirrored_repeat,GL_OES_texture_npot,GL_OES_vertex_array_object,GL_OES_vertex_half_float,GL_OES_vertex_type_10_10_10_2,GL_QCOM_alpha_test,GL_QCOM_binning_control,GL_QCOM_driver_control,GL_QCOM_extended_get,GL_QCOM_extended_get2,GL_QCOM_perfmon_global_mode,GL_QCOM_tiled_rendering,GL_QCOM_writeonly_rendering
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
UserReadableName = Nexus 10 (api23)
|
||||
Build.HARDWARE = manta
|
||||
Build.RADIO = unknown
|
||||
Build.BOOTLOADER = MANTAMF01
|
||||
Build.FINGERPRINT = google/mantaray/manta:5.1.1/LMY49J/2640980:user/release-keys
|
||||
Build.BRAND = Google
|
||||
Build.DEVICE = manta
|
||||
Build.VERSION.SDK_INT = 23
|
||||
Build.MODEL = Nexus 10
|
||||
Build.MANUFACTURER = samsung
|
||||
Build.PRODUCT = mantaray
|
||||
TouchScreen = 3
|
||||
Keyboard = 1
|
||||
Navigation = 1
|
||||
ScreenLayout = 4
|
||||
HasHardKeyboard = false
|
||||
HasFiveWayNavigation = false
|
||||
GL.Version = 196609
|
||||
GSF.version = 10548448
|
||||
Vending.version = 80798000
|
||||
Screen.Density = 320
|
||||
Screen.Width = 2560
|
||||
Screen.Height = 1504
|
||||
Platforms = armeabi-v7a,armeabi
|
||||
SharedLibraries = android.test.runner,com.android.future.usb.accessory,com.android.location.provider,com.android.media.remotedisplay,com.android.mediadrm.signer,javax.obex,org.apache.http.legacy,org.cyanogenmod.hardware,org.cyanogenmod.platform
|
||||
Features = android.hardware.audio.low_latency,android.hardware.audio.output,android.hardware.bluetooth,android.hardware.bluetooth_le,android.hardware.camera,android.hardware.camera.any,android.hardware.camera.autofocus,android.hardware.camera.flash,android.hardware.camera.front,android.hardware.faketouch,android.hardware.location,android.hardware.location.gps,android.hardware.location.network,android.hardware.microphone,android.hardware.nfc,android.hardware.nfc.hce,android.hardware.screen.landscape,android.hardware.screen.portrait,android.hardware.sensor.accelerometer,android.hardware.sensor.barometer,android.hardware.sensor.compass,android.hardware.sensor.gyroscope,android.hardware.sensor.light,android.hardware.touchscreen,android.hardware.touchscreen.multitouch,android.hardware.touchscreen.multitouch.distinct,android.hardware.touchscreen.multitouch.jazzhand,android.hardware.usb.accessory,android.hardware.usb.host,android.hardware.wifi,android.hardware.wifi.direct,android.software.app_widgets,android.software.backup,android.software.device_admin,android.software.home_screen,android.software.input_methods,android.software.live_wallpaper,android.software.managed_users,android.software.print,android.software.sip,android.software.sip.voip,android.software.voice_recognizers,android.software.webview,com.cyanogenmod.android,com.cyanogenmod.nfc.enhanced,org.cyanogenmod.appsuggest,org.cyanogenmod.audio,org.cyanogenmod.hardware,org.cyanogenmod.livedisplay,org.cyanogenmod.livelockscreen,org.cyanogenmod.partner,org.cyanogenmod.performance,org.cyanogenmod.profiles,org.cyanogenmod.statusbar,org.cyanogenmod.telephony,org.cyanogenmod.theme,org.cyanogenmod.theme.v1,org.cyanogenmod.weather
|
||||
Locales = af,af_ZA,am,am_ET,ar,ar_EG,ar_XB,ast_ES,az_AZ,bg,bg_BG,bn_BD,ca,ca_ES,cs,cs_CZ,da,da_DK,de,de_AT,de_CH,de_DE,de_LI,el,el_GR,en,en_AU,en_CA,en_GB,en_IN,en_NZ,en_SG,en_US,en_XA,eo,es,es_ES,es_US,et_EE,eu_ES,fa,fa_IR,fi,fi_FI,fil,fil_PH,fr,fr_BE,fr_CA,fr_CH,fr_FR,gl_ES,gu_IN,hi,hi_IN,hr,hr_HR,hu,hu_HU,hy_AM,in,in_ID,is_IS,it,it_CH,it_IT,iw,iw_IL,ja,ja_JP,ka_GE,kk_KZ,km_KH,kn_IN,ko,ko_KR,ku,ku_IQ,ky_KG,lb,lb_LU,lo_LA,lt,lt_LT,lv,lv_LV,mk_MK,ml_IN,mn_MN,mr_IN,ms_MY,my_MM,nb,nb_NO,ne_NP,nl,nl_BE,nl_NL,pa_IN,pl,pl_PL,pt,pt_BR,pt_PT,rm,rm_CH,ro,ro_RO,ru,ru_RU,si_LK,sk,sk_SK,sl,sl_SI,sq_AL,sr,sr_RS,sv,sv_SE,sw,sw_TZ,ta_IN,te_IN,th,th_TH,tr,tr_TR,uk,uk_UA,ur_PK,uz_UZ,vi,vi_VN,zh,zh_CN,zh_HK,zh_TW,zu,zu_ZA
|
||||
CellOperator =
|
||||
SimOperator =
|
||||
Client = android-google
|
||||
TimeZone = America/New_York
|
||||
GL.Extensions = GL_ARM_mali_program_binary,GL_ARM_mali_shader_binary,GL_ARM_rgba8,GL_ARM_shader_framebuffer_fetch,GL_ARM_shader_framebuffer_fetch_depth_stencil,GL_EXT_blend_minmax,GL_EXT_debug_marker,GL_EXT_discard_framebuffer,GL_EXT_disjoint_timer_query,GL_EXT_multisampled_render_to_texture,GL_EXT_occlusion_query_boolean,GL_EXT_read_format_bgra,GL_EXT_sRGB,GL_EXT_sRGB_write_control,GL_EXT_shader_pixel_local_storage,GL_EXT_shadow_samplers,GL_EXT_texture_format_BGRA8888,GL_EXT_texture_rg,GL_EXT_texture_sRGB_decode,GL_EXT_texture_storage,GL_EXT_texture_type_2_10_10_10_REV,GL_KHR_blend_equation_advanced,GL_KHR_debug,GL_OES_EGL_image,GL_OES_EGL_image_external,GL_OES_EGL_sync,GL_OES_blend_equation_separate,GL_OES_blend_func_separate,GL_OES_blend_subtract,GL_OES_byte_coordinates,GL_OES_compressed_ETC1_RGB8_texture,GL_OES_compressed_paletted_texture,GL_OES_depth24,GL_OES_depth_texture,GL_OES_depth_texture_cube_map,GL_OES_draw_texture,GL_OES_element_index_uint,GL_OES_extended_matrix_palette,GL_OES_fbo_render_mipmap,GL_OES_fixed_point,GL_OES_framebuffer_object,GL_OES_get_program_binary,GL_OES_mapbuffer,GL_OES_matrix_get,GL_OES_matrix_palette,GL_OES_packed_depth_stencil,GL_OES_point_size_array,GL_OES_point_sprite,GL_OES_query_matrix,GL_OES_read_format,GL_OES_required_internalformat,GL_OES_rgb8_rgba8,GL_OES_shader_image_atomic,GL_OES_single_precision,GL_OES_standard_derivatives,GL_OES_stencil8,GL_OES_stencil_wrap,GL_OES_surfaceless_context,GL_OES_texture_3D,GL_OES_texture_cube_map,GL_OES_texture_mirrored_repeat,GL_OES_texture_npot,GL_OES_texture_stencil8,GL_OES_texture_storage_multisample_2d_array,GL_OES_vertex_array_object,GL_OES_vertex_half_float
|
||||
Roaming = mobile-notroaming
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
UserReadableName = Huawei Mate 8 (api23)
|
||||
Build.FINGERPRINT = HUAWEI/NXT-L09/HWNXT:6.0/HUAWEINXT-L09/C576B193:user/release-keys
|
||||
Build.HARDWARE = hi3650
|
||||
Build.BRAND = HUAWEI
|
||||
Build.RADIO = unknown
|
||||
Build.BOOTLOADER = unknown
|
||||
Build.DEVICE = HWNXT
|
||||
Build.VERSION.SDK_INT = 23
|
||||
Build.MODEL = HUAWEI NXT-L09
|
||||
Build.MANUFACTURER = HUAWEI
|
||||
Build.PRODUCT = NXT-L09
|
||||
TouchScreen = 3
|
||||
Keyboard = 1
|
||||
Navigation = 1
|
||||
ScreenLayout = 2
|
||||
HasHardKeyboard = false
|
||||
HasFiveWayNavigation = false
|
||||
Screen.Density = 400
|
||||
Screen.Width = 1080
|
||||
Screen.Height = 1830
|
||||
Platforms = arm64-v8a,armeabi-v7a,armeabi
|
||||
SharedLibraries = com.huawei.hwpostcamera,com.google.widevine.software.drm,com.google.android.media.effects,com.gsma.services.nfc,com.android.location.provider,hwcustframework,com.android.future.usb.accessory,com.android.contacts.separated,javax.obex,com.google.android.gms,com.huawei.audioalgo,hwframework,com.huawei.systemmanager.separated,org.simalliance.openmobileapi,android.test.runner,com.google.android.maps,org.apache.http.legacy,com.android.nfc_extras,com.android.media.remotedisplay,com.android.mediadrm.signer,com.hisi.perfhub
|
||||
Features = android.hardware.sensor.proximity,android.hardware.sensor.accelerometer,android.hardware.faketouch,org.cyanogenmod.appsuggest,android.hardware.usb.accessory,android.hardware.telephony.cdma,android.software.backup,android.hardware.touchscreen,android.hardware.touchscreen.multitouch,android.software.print,android.hardware.consumerir,org.cyanogenmod.partner,org.cyanogenmod.telephony,android.software.voice_recognizers,android.hardware.fingerprint,android.hardware.sensor.gyroscope,android.hardware.audio.low_latency,android.hardware.opengles.aep,android.hardware.bluetooth,android.hardware.camera.autofocus,com.google.android.feature.GOOGLE_BUILD,android.hardware.telephony.gsm,android.software.sip.voip,org.cyanogenmod.profiles,android.hardware.usb.host,com.cyanogenmod.android,android.hardware.audio.output,android.hardware.camera.flash,android.hardware.camera.front,android.hardware.sensor.hifi_sensors,android.hardware.screen.portrait,android.hardware.nfc,com.nxp.mifare,android.hardware.sensor.stepdetector,org.cyanogenmod.audio,org.cyanogenmod.theme,android.software.home_screen,android.hardware.microphone,org.cyanogenmod.statusbar,android.hardware.bluetooth_le,android.hardware.sensor.compass,android.hardware.touchscreen.multitouch.jazzhand,android.hardware.sensor.barometer,android.software.app_widgets,android.software.input_methods,android.hardware.sensor.light,android.software.device_admin,android.hardware.camera,org.cyanogenmod.hardware,android.hardware.screen.landscape,org.cyanogenmod.weather,org.cyanogenmod.performance,android.software.managed_users,android.software.webview,android.hardware.sensor.stepcounter,android.hardware.camera.capability.manual_post_processing,org.cyanogenmod.livedisplay,android.hardware.camera.any,android.hardware.camera.capability.raw,android.software.connectionservice,android.hardware.touchscreen.multitouch.distinct,android.hardware.location.network,android.software.sip,android.hardware.camera.capability.manual_sensor,android.hardware.camera.level.full,android.hardware.wifi.direct,android.software.live_wallpaper,com.google.android.feature.GOOGLE_EXPERIENCE,com.google.android.feature.EXCHANGE_6_2,org.cyanogenmod.theme.v1,org.cyanogenmod.livelockscreen,android.hardware.location.gps,android.software.midi,android.hardware.nfc.hce,android.hardware.wifi,android.hardware.location,android.hardware.telephony
|
||||
Locales = af,af_NA,af_ZA,agq,ak,ak_GH,am,am_ET,ar,ar_AE,ar_BH,ar_DJ,ar_DZ,ar_EG,ar_EH,ar_ER,ar_IL,ar_IQ,ar_JO,ar_KM,ar_KW,ar_LB,ar_LY,ar_MA,ar_MR,ar_OM,ar_PS,ar_QA,ar_SA,ar_SD,ar_SO,ar_SS,ar_SY,ar_TD,ar_TN,ar_YE,as,as_IN,asa,az,bas,be,be_BY,bem,bez,bg,bg_BG,bm,bn,bn_BD,bn_IN,bo,bo_CN,bo_IN,br,br_FR,brx,bs,ca,ca_AD,ca_ES,ca_FR,ca_IT,cgg,chr,cs,cs_CZ,cy,cy_GB,da,da_DK,da_GL,dav,de,de_AT,de_BE,de_CH,de_DE,de_LI,de_LU,dje,dsb,dua,dyo,dz,dz_BT,ebu,ee,ee_GH,ee_TG,el,el_CY,el_GR,en,en_AG,en_AI,en_AS,en_AU,en_BB,en_BE,en_BM,en_BS,en_BW,en_BZ,en_CA,en_CC,en_CK,en_CM,en_CX,en_DG,en_DM,en_ER,en_FJ,en_FK,en_FM,en_GB,en_GD,en_GG,en_GH,en_GI,en_GM,en_GU,en_GY,en_HK,en_IE,en_IM,en_IN,en_IO,en_JE,en_JM,en_KE,en_KI,en_KN,en_KY,en_LC,en_LR,en_LS,en_MG,en_MH,en_MO,en_MP,en_MS,en_MT,en_MU,en_MW,en_MY,en_NA,en_NF,en_NG,en_NR,en_NU,en_NZ,en_PG,en_PH,en_PK,en_PN,en_PR,en_PW,en_RW,en_SB,en_SC,en_SD,en_SG,en_SH,en_SL,en_SS,en_SX,en_SZ,en_TC,en_TK,en_TO,en_TT,en_TV,en_TZ,en_UG,en_UM,en_US,en_VC,en_VG,en_VI,en_VU,en_WS,en_ZA,en_ZM,en_ZW,eo,es,es_AR,es_BO,es_CL,es_CO,es_CR,es_CU,es_DO,es_EA,es_EC,es_ES,es_GQ,es_GT,es_HN,es_IC,es_MX,es_NI,es_PA,es_PE,es_PH,es_PR,es_PY,es_SV,es_US,es_UY,es_VE,et,et_EE,eu,eu_ES,ewo,fa,fa_AF,fa_IR,ff,ff_CM,ff_GN,ff_MR,ff_SN,fi,fi_FI,fil,fo,fo_FO,fr,fr_BE,fr_BF,fr_BI,fr_BJ,fr_BL,fr_CA,fr_CD,fr_CF,fr_CG,fr_CH,fr_CI,fr_CM,fr_DJ,fr_DZ,fr_FR,fr_GA,fr_GF,fr_GN,fr_GP,fr_GQ,fr_HT,fr_KM,fr_LU,fr_MA,fr_MC,fr_MF,fr_MG,fr_ML,fr_MQ,fr_MR,fr_MU,fr_NC,fr_NE,fr_PF,fr_PM,fr_RE,fr_RW,fr_SC,fr_SN,fr_SY,fr_TD,fr_TG,fr_TN,fr_VU,fr_WF,fr_YT,fur,fy,fy_NL,ga,ga_IE,gd,gd_GB,gl,gl_ES,gsw,gu,gu_IN,guz,gv,gv_IM,ha,haw,iw,iw_IL,hi,hi_IN,hr,hr_BA,hr_HR,hsb,hu,hu_HU,hy,hy_AM,in,in_ID,ig,ig_NG,ii,ii_CN,is,is_IS,it,it_CH,it_IT,it_SM,ja,ja_JP,jgo,jmc,ka,ka_GE,kab,kam,kde,kea,khq,ki,ki_KE,kk,kkj,kl,kl_GL,kln,km,km_KH,kn,kn_IN,ko,ko_KP,ko_KR,kok,ks,ksb,ksf,ksh,kw,kw_GB,ky,lag,lb,lb_LU,lg,lg_UG,lkt,ln,ln_AO,ln_CD,ln_CF,ln_CG,lo,lo_LA,lt,lt_LT,lu,lu_CD,luo,luy,lv,lv_LV,mas,mer,mfe,mg,mg_MG,mgh,mgo,mk,mk_MK,ml,ml_IN,mn,mr,mr_IN,ms,mt,mt_MT,mua,my,my_MM,my_ZG,naq,nb,nb_NO,nb_SJ,nd,nd_ZW,ne,ne_IN,ne_NP,nl,nl_AW,nl_BE,nl_BQ,nl_CW,nl_NL,nl_SR,nl_SX,nmg,nn,nn_NO,nnh,nus,nyn,om,om_ET,om_KE,or,or_IN,os,os_GE,os_RU,pa,pl,pl_PL,ps,ps_AF,pt,pt_AO,pt_BR,pt_CV,pt_GW,pt_MO,pt_MZ,pt_PT,pt_ST,pt_TL,qu,qu_BO,qu_EC,qu_PE,rm,rm_CH,rn,rn_BI,ro,ro_MD,ro_RO,rof,ru,ru_BY,ru_KG,ru_KZ,ru_MD,ru_RU,ru_UA,rw,rw_RW,rwk,sah,saq,sbp,se,se_FI,se_NO,se_SE,seh,ses,sg,sg_CF,shi,si,si_LK,sk,sk_SK,sl,sl_SI,smn,sn,sn_ZW,so,so_DJ,so_ET,so_KE,so_SO,sq,sq_AL,sq_MK,sq_XK,sr,sv,sv_AX,sv_FI,sv_SE,sw,sw_CD,sw_KE,sw_TZ,sw_UG,ta,ta_IN,ta_LK,ta_MY,ta_SG,te,te_IN,teo,th,th_TH,ti,ti_ER,ti_ET,to,to_TO,tr,tr_CY,tr_TR,twq,tzm,ug,uk,uk_UA,ur,ur_IN,ur_PK,uz,vai,vi,vi_VN,vun,wae,xog,yav,ji,yo,yo_BJ,yo_NG,zgh,zh,zu,zu_ZA
|
||||
Client = android-google
|
||||
GSF.version = 10548448
|
||||
Vending.version = 80798000
|
||||
CellOperator = 310260
|
||||
SimOperator = 310260
|
||||
Roaming = mobile-notroaming
|
||||
TimeZone = Europe/Moscow
|
||||
GL.Version = 131072
|
||||
GL.Extensions = GL_AMD_compressed_ATC_texture,GL_AMD_performance_monitor,GL_ANDROID_extension_pack_es31a,GL_APPLE_texture_2D_limited_npot,GL_ARB_vertex_buffer_object,GL_ARM_shader_framebuffer_fetch_depth_stencil,GL_EXT_YUV_target,GL_EXT_blit_framebuffer_params,GL_EXT_buffer_storage,GL_EXT_color_buffer_float,GL_EXT_color_buffer_half_float,GL_EXT_copy_image,GL_EXT_debug_label,GL_EXT_debug_marker,GL_EXT_discard_framebuffer,GL_EXT_disjoint_timer_query,GL_EXT_draw_buffers_indexed,GL_EXT_geometry_shader,GL_EXT_gpu_shader5,GL_EXT_multisampled_render_to_texture,GL_EXT_primitive_bounding_box,GL_EXT_robustness,GL_EXT_sRGB,GL_EXT_sRGB_write_control,GL_EXT_shader_framebuffer_fetch,GL_EXT_shader_io_blocks,GL_EXT_tessellation_shader,GL_EXT_texture_border_clamp,GL_EXT_texture_buffer,GL_EXT_texture_cube_map_array,GL_EXT_texture_filter_anisotropic,GL_EXT_texture_format_BGRA8888,GL_EXT_texture_norm16,GL_EXT_texture_sRGB_R8,GL_EXT_texture_sRGB_decode,GL_EXT_texture_type_2_10_10_10_REV,GL_KHR_blend_equation_advanced,GL_KHR_blend_equation_advanced_coherent,GL_KHR_debug,GL_KHR_no_error,GL_KHR_texture_compression_astc_hdr,GL_KHR_texture_compression_astc_ldr,GL_OES_EGL_image,GL_OES_EGL_image_external,GL_OES_EGL_sync,GL_OES_blend_equation_separate,GL_OES_blend_func_separate,GL_OES_blend_subtract,GL_OES_compressed_ETC1_RGB8_texture,GL_OES_compressed_paletted_texture,GL_OES_depth24,GL_OES_depth_texture,GL_OES_depth_texture_cube_map,GL_OES_draw_texture,GL_OES_element_index_uint,GL_OES_framebuffer_object,GL_OES_get_program_binary,GL_OES_matrix_palette,GL_OES_packed_depth_stencil,GL_OES_point_size_array,GL_OES_point_sprite,GL_OES_read_format,GL_OES_rgb8_rgba8,GL_OES_sample_shading,GL_OES_sample_variables,GL_OES_shader_image_atomic,GL_OES_shader_multisample_interpolation,GL_OES_standard_derivatives,GL_OES_stencil_wrap,GL_OES_surfaceless_context,GL_OES_texture_3D,GL_OES_texture_compression_astc,GL_OES_texture_cube_map,GL_OES_texture_env_crossbar,GL_OES_texture_float,GL_OES_texture_float_linear,GL_OES_texture_half_float,GL_OES_texture_half_float_linear,GL_OES_texture_mirrored_repeat,GL_OES_texture_npot,GL_OES_texture_stencil8,GL_OES_texture_storage_multisample_2d_array,GL_OES_vertex_array_object,GL_OES_vertex_half_float,GL_OVR_multiview,GL_OVR_multiview2,GL_OVR_multiview_multisampled_render_to_texture,GL_QCOM_alpha_test,GL_QCOM_extended_get,GL_QCOM_tiled_rendering,GL_EXT_multi_draw_arrays,GL_EXT_shader_texture_lod,GL_IMG_multisampled_render_to_texture,GL_IMG_program_binary,GL_IMG_read_format,GL_IMG_shader_binary,GL_IMG_texture_compression_pvrtc,GL_IMG_texture_format_BGRA8888,GL_IMG_texture_npot,GL_IMG_vertex_array_object,GL_OES_byte_coordinates,GL_OES_extended_matrix_palette,GL_OES_fixed_point,GL_OES_fragment_precision_high,GL_OES_mapbuffer,GL_OES_matrix_get,GL_OES_query_matrix,GL_OES_required_internalformat,GL_OES_single_precision,GL_OES_stencil8
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
UserReadableName = OnePlus 3 (api26)
|
||||
Build.HARDWARE = qcom
|
||||
Build.RADIO = unknown
|
||||
Build.BOOTLOADER = unknown
|
||||
Build.FINGERPRINT = OnePlus/OnePlus3/OnePlus3:8.0.0/OPR6.170623.013/10250816:user/release-keys
|
||||
Build.BRAND = OnePlus
|
||||
Build.DEVICE = OnePlus3
|
||||
Build.VERSION.SDK_INT = 26
|
||||
Build.MODEL = ONEPLUS A3000
|
||||
Build.MANUFACTURER = OnePlus
|
||||
Build.PRODUCT = OnePlus3
|
||||
Build.ID = OPR6.170623.013
|
||||
Build.VERSION.RELEASE = 8.0.0
|
||||
TouchScreen = 3
|
||||
Keyboard = 1
|
||||
Navigation = 1
|
||||
ScreenLayout = 2
|
||||
HasHardKeyboard = false
|
||||
HasFiveWayNavigation = false
|
||||
GL.Version = 196610
|
||||
Screen.Density = 480
|
||||
Screen.Width = 1080
|
||||
Screen.Height = 1920
|
||||
Platforms = arm64-v8a,armeabi-v7a,armeabi
|
||||
SharedLibraries = android.ext.services,android.ext.shared,android.hardware.light-V2.0,android.hidl.manager-V1.0-java,android.test.runner,com.android.future.usb.accessory,com.android.location.provider,com.android.media.remotedisplay,com.android.mediadrm.signer,com.android.nfc_extras,com.google.android.gms,com.google.android.maps,com.google.android.media.effects,com.google.widevine.software.drm,com.nxp.nfc,com.qti.dpmapi,com.qti.dpmframework,com.qti.location.sdk,com.qti.snapdragon.sdk.display,com.qualcomm.embmslibrary,com.qualcomm.qcnvitems,com.qualcomm.qcrilhook,com.qualcomm.qti.QtiTelephonyServicelibrary,com.qualcomm.qti.audiosphere,com.qualcomm.qti.lpa.uimlpalibrary,com.quicinc.cne,com.quicinc.cneapiclient,com.suntek.mway.rcs.client.aidl,com.suntek.mway.rcs.client.api,com.wapi.wapicertstore,izat.xt.srv,javax.obex,oneplus_sdk_utils,oneplus_sdk_wrapper,org.apache.http.legacy,org.codeaurora.btmultisimlibrary,org.simalliance.openmobileapi
|
||||
Features = android.hardware.audio.output,android.hardware.bluetooth,android.hardware.bluetooth_le,android.hardware.camera,android.hardware.camera.any,android.hardware.camera.autofocus,android.hardware.camera.capability.manual_post_processing,android.hardware.camera.capability.manual_sensor,android.hardware.camera.capability.raw,android.hardware.camera.flash,android.hardware.camera.front,android.hardware.camera.level.full,android.hardware.faketouch,android.hardware.fingerprint,android.hardware.location,android.hardware.location.gps,android.hardware.location.network,android.hardware.microphone,android.hardware.nfc,android.hardware.nfc.any,android.hardware.nfc.hce,android.hardware.nfc.hcef,android.hardware.opengles.aep,android.hardware.screen.landscape,android.hardware.screen.portrait,android.hardware.sensor.accelerometer,android.hardware.sensor.compass,android.hardware.sensor.gyroscope,android.hardware.sensor.light,android.hardware.sensor.proximity,android.hardware.sensor.stepcounter,android.hardware.sensor.stepdetector,android.hardware.telephony,android.hardware.telephony.cdma,android.hardware.telephony.gsm,android.hardware.touchscreen,android.hardware.touchscreen.multitouch,android.hardware.touchscreen.multitouch.distinct,android.hardware.touchscreen.multitouch.jazzhand,android.hardware.usb.accessory,android.hardware.usb.host,android.hardware.vulkan.level,android.hardware.vulkan.version,android.hardware.wifi,android.hardware.wifi.direct,android.software.activities_on_secondary_displays,android.software.app_widgets,android.software.autofill,android.software.backup,android.software.companion_device_setup,android.software.connectionservice,android.software.cts,android.software.device_admin,android.software.home_screen,android.software.input_methods,android.software.live_wallpaper,android.software.managed_users,android.software.midi,android.software.picture_in_picture,android.software.print,android.software.sip,android.software.sip.voip,android.software.verified_boot,android.software.voice_recognizers,android.software.webview,com.nxp.mifare,com.oneplus.software.oos,com.oneplus.software.oos.n_theme_ready,oem.ambient.support,oem.audiotuner.support,oem.authentication_information.support,oem.autobrightctl.animation.support,oem.background.control,oem.blackScreenGesture.support,oem.breathLight.support,oem.button.light.support,oem.direct.support,oem.dualsim.support,oem.finger.print.support,oem.gyroscope.support,oem.hapticsService.support,oem.hw.manufacturer.qualcomm,oem.inexact.alarm,oem.keyDefine.support,oem.lift_up_display.support,oem.op_dark_mode.support,oem.op_intelligent_background_management.support,oem.op_legal_information.support,oem.opcamera_manual_zsl.support,oem.optical.stabilizer.support,oem.otg.positive.negative.plug.support,oem.otgSwitch.support,oem.picture.color.mode.srgb,oem.prox.calibration.support,oem.qcom.fastchager.support,oem.serial_cdev.support,oem.sim_contacts.autosync.support,oem.threeScreenshot.support,oem.threeStageKey.support,oem.timePoweroffWakeup.support,oem.vooc.fastchager.support
|
||||
Locales = ar,ar_EG,ast,bn,bn_BD,ca,ca_ES,cs,cs_CZ,da,da_DK,de,de_AT,de_CH,de_DE,de_LI,el,el_GR,en,en_AU,en_CA,en_GB,en_IN,en_NZ,en_SG,en_US,es,es_ES,eu,fa,fa_IR,fi,fi_FI,fil,fil_PH,fr,fr_BE,fr_CA,fr_CH,fr_FR,gu,gu_IN,hi,hi_IN,hr,hu,hu_HU,it,it_CH,it_IT,iw,iw_IL,ja,ja_JP,kn,ko,ko_KR,ml,mr,mr_IN,ms,ms_MY,nb,nb_NO,nl,nl_BE,nl_NL,pa,pa_IN,pl,pl_PL,pt,pt_BR,pt_PT,ro,ro_RO,ru,ru_RU,sk,sk_SK,sl,sl_SI,sv,sv_SE,ta,ta_IN,te,th,th_TH,tr,tr_TR,uk,uk_UA,vi,vi_VN,zh,zh_CN,zh_HK,zh_TW
|
||||
GSF.version = 11951440
|
||||
Vending.version = 80841900
|
||||
Vending.versionString = 8.4.19.V-all [0] [FP] 175058788
|
||||
CellOperator = 20201
|
||||
SimOperator = 20201
|
||||
TimeZone = Europe/Athens
|
||||
GL.Extensions = GL_AMD_compressed_ATC_texture,GL_AMD_performance_monitor,GL_ANDROID_extension_pack_es31a,GL_APPLE_texture_2D_limited_npot,GL_ARB_vertex_buffer_object,GL_ARM_shader_framebuffer_fetch_depth_stencil,GL_EXT_EGL_image_array,GL_EXT_YUV_target,GL_EXT_blit_framebuffer_params,GL_EXT_buffer_storage,GL_EXT_clip_cull_distance,GL_EXT_color_buffer_float,GL_EXT_color_buffer_half_float,GL_EXT_copy_image,GL_EXT_debug_label,GL_EXT_debug_marker,GL_EXT_discard_framebuffer,GL_EXT_disjoint_timer_query,GL_EXT_draw_buffers_indexed,GL_EXT_external_buffer,GL_EXT_geometry_shader,GL_EXT_gpu_shader5,GL_EXT_multisampled_render_to_texture,GL_EXT_multisampled_render_to_texture2,GL_EXT_primitive_bounding_box,GL_EXT_protected_textures,GL_EXT_robustness,GL_EXT_sRGB,GL_EXT_sRGB_write_control,GL_EXT_shader_framebuffer_fetch,GL_EXT_shader_io_blocks,GL_EXT_shader_non_constant_global_initializers,GL_EXT_tessellation_shader,GL_EXT_texture_border_clamp,GL_EXT_texture_buffer,GL_EXT_texture_cube_map_array,GL_EXT_texture_filter_anisotropic,GL_EXT_texture_format_BGRA8888,GL_EXT_texture_norm16,GL_EXT_texture_sRGB_R8,GL_EXT_texture_sRGB_decode,GL_EXT_texture_type_2_10_10_10_REV,GL_KHR_blend_equation_advanced,GL_KHR_blend_equation_advanced_coherent,GL_KHR_debug,GL_KHR_no_error,GL_KHR_texture_compression_astc_hdr,GL_KHR_texture_compression_astc_ldr,GL_NV_shader_noperspective_interpolation,GL_OES_EGL_image,GL_OES_EGL_image_external,GL_OES_EGL_image_external_essl3,GL_OES_EGL_sync,GL_OES_blend_equation_separate,GL_OES_blend_func_separate,GL_OES_blend_subtract,GL_OES_compressed_ETC1_RGB8_texture,GL_OES_compressed_paletted_texture,GL_OES_depth24,GL_OES_depth_texture,GL_OES_depth_texture_cube_map,GL_OES_draw_texture,GL_OES_element_index_uint,GL_OES_framebuffer_object,GL_OES_get_program_binary,GL_OES_matrix_palette,GL_OES_packed_depth_stencil,GL_OES_point_size_array,GL_OES_point_sprite,GL_OES_read_format,GL_OES_rgb8_rgba8,GL_OES_sample_shading,GL_OES_sample_variables,GL_OES_shader_image_atomic,GL_OES_shader_multisample_interpolation,GL_OES_standard_derivatives,GL_OES_stencil_wrap,GL_OES_surfaceless_context,GL_OES_texture_3D,GL_OES_texture_compression_astc,GL_OES_texture_cube_map,GL_OES_texture_env_crossbar,GL_OES_texture_float,GL_OES_texture_float_linear,GL_OES_texture_half_float,GL_OES_texture_half_float_linear,GL_OES_texture_mirrored_repeat,GL_OES_texture_npot,GL_OES_texture_stencil8,GL_OES_texture_storage_multisample_2d_array,GL_OES_vertex_array_object,GL_OES_vertex_half_float,GL_OVR_multiview,GL_OVR_multiview2,GL_OVR_multiview_multisampled_render_to_texture,GL_QCOM_alpha_test,GL_QCOM_extended_get,GL_QCOM_framebuffer_foveated,GL_QCOM_shader_framebuffer_fetch_noncoherent,GL_QCOM_tiled_rendering
|
||||
Roaming = mobile-notroaming
|
||||
Client = android-google
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
UserReadableName = OnePlus 3T (api26)
|
||||
Build.HARDWARE = qcom
|
||||
Build.RADIO = unknown
|
||||
Build.BOOTLOADER = unknown
|
||||
Build.FINGERPRINT = OnePlus/OnePlus3/OnePlus3T:8.0.0/OPR6.170623.013/10250816:user/release-keys
|
||||
Build.BRAND = OnePlus
|
||||
Build.DEVICE = OnePlus3T
|
||||
Build.VERSION.SDK_INT = 26
|
||||
Build.MODEL = ONEPLUS A3000
|
||||
Build.MANUFACTURER = OnePlus
|
||||
Build.PRODUCT = OnePlus3
|
||||
Build.ID = OPR6.170623.013
|
||||
Build.VERSION.RELEASE = 8.0.0
|
||||
TouchScreen = 3
|
||||
Keyboard = 1
|
||||
Navigation = 1
|
||||
ScreenLayout = 2
|
||||
HasHardKeyboard = false
|
||||
HasFiveWayNavigation = false
|
||||
GL.Version = 196610
|
||||
Screen.Density = 380
|
||||
Screen.Width = 1080
|
||||
Screen.Height = 1920
|
||||
Platforms = arm64-v8a,armeabi-v7a,armeabi
|
||||
SharedLibraries = android.ext.services,android.ext.shared,android.hardware.light-V2.0,android.hidl.manager-V1.0-java,android.test.runner,com.android.future.usb.accessory,com.android.location.provider,com.android.media.remotedisplay,com.android.mediadrm.signer,com.android.nfc_extras,com.google.android.dialer.support,com.google.android.gms,com.google.android.maps,com.google.android.media.effects,com.google.widevine.software.drm,com.nxp.nfc,com.qti.dpmapi,com.qti.dpmframework,com.qti.location.sdk,com.qti.snapdragon.sdk.display,com.qualcomm.embmslibrary,com.qualcomm.qcnvitems,com.qualcomm.qcrilhook,com.qualcomm.qti.QtiTelephonyServicelibrary,com.qualcomm.qti.audiosphere,com.qualcomm.qti.lpa.uimlpalibrary,com.quicinc.cne,com.quicinc.cneapiclient,com.suntek.mway.rcs.client.aidl,com.suntek.mway.rcs.client.api,com.wapi.wapicertstore,izat.xt.srv,javax.obex,oneplus_sdk_utils,oneplus_sdk_wrapper,org.apache.http.legacy,org.codeaurora.btmultisimlibrary,org.simalliance.openmobileapi
|
||||
Features = android.hardware.audio.output,android.hardware.bluetooth,android.hardware.bluetooth_le,android.hardware.camera,android.hardware.camera.any,android.hardware.camera.autofocus,android.hardware.camera.capability.manual_post_processing,android.hardware.camera.capability.manual_sensor,android.hardware.camera.capability.raw,android.hardware.camera.flash,android.hardware.camera.front,android.hardware.camera.level.full,android.hardware.faketouch,android.hardware.fingerprint,android.hardware.location,android.hardware.location.gps,android.hardware.location.network,android.hardware.microphone,android.hardware.nfc,android.hardware.nfc.any,android.hardware.nfc.hce,android.hardware.nfc.hcef,android.hardware.opengles.aep,android.hardware.screen.landscape,android.hardware.screen.portrait,android.hardware.sensor.accelerometer,android.hardware.sensor.compass,android.hardware.sensor.gyroscope,android.hardware.sensor.light,android.hardware.sensor.proximity,android.hardware.sensor.stepcounter,android.hardware.sensor.stepdetector,android.hardware.telephony,android.hardware.telephony.cdma,android.hardware.telephony.gsm,android.hardware.touchscreen,android.hardware.touchscreen.multitouch,android.hardware.touchscreen.multitouch.distinct,android.hardware.touchscreen.multitouch.jazzhand,android.hardware.usb.accessory,android.hardware.usb.host,android.hardware.vulkan.level,android.hardware.vulkan.version,android.hardware.wifi,android.hardware.wifi.direct,android.software.activities_on_secondary_displays,android.software.app_widgets,android.software.autofill,android.software.backup,android.software.companion_device_setup,android.software.connectionservice,android.software.cts,android.software.device_admin,android.software.home_screen,android.software.input_methods,android.software.live_wallpaper,android.software.managed_users,android.software.midi,android.software.picture_in_picture,android.software.print,android.software.sip,android.software.sip.voip,android.software.verified_boot,android.software.voice_recognizers,android.software.webview,com.google.android.apps.dialer.SUPPORTED,com.google.android.feature.EXCHANGE_6_2,com.google.android.feature.GOOGLE_BUILD,com.google.android.feature.GOOGLE_EXPERIENCE,com.nxp.mifare,com.oneplus.software.oos,com.oneplus.software.oos.n_theme_ready,oem.ambient.support,oem.audiotuner.support,oem.authentication_information.support,oem.autobrightctl.animation.support,oem.background.control,oem.blackScreenGesture.support,oem.breathLight.support,oem.button.light.support,oem.direct.support,oem.dualsim.support,oem.finger.print.support,oem.gyroscope.support,oem.hapticsService.support,oem.hw.manufacturer.qualcomm,oem.inexact.alarm,oem.keyDefine.support,oem.lift_up_display.support,oem.op_dark_mode.support,oem.op_intelligent_background_management.support,oem.op_legal_information.support,oem.opcamera_manual_zsl.support,oem.optical.stabilizer.support,oem.otg.positive.negative.plug.support,oem.otgSwitch.support,oem.picture.color.mode.srgb,oem.prox.calibration.support,oem.qcom.fastchager.support,oem.serial_cdev.support,oem.sim_contacts.autosync.support,oem.threeScreenshot.support,oem.threeStageKey.support,oem.timePoweroffWakeup.support,oem.vooc.fastchager.support
|
||||
Locales = ar,ar_EG,ast,bn,bn_BD,ca,ca_ES,cs,cs_CZ,da,da_DK,de,de_AT,de_CH,de_DE,de_LI,el,el_GR,en,en_AU,en_CA,en_GB,en_IN,en_NZ,en_SG,en_US,es,es_ES,eu,fa,fa_IR,fi,fi_FI,fil,fil_PH,fr,fr_BE,fr_CA,fr_CH,fr_FR,gu,gu_IN,hi,hi_IN,hr,hu,hu_HU,it,it_CH,it_IT,iw,iw_IL,ja,ja_JP,kn,ko,ko_KR,ml,mr,mr_IN,ms,ms_MY,nb,nb_NO,nl,nl_BE,nl_NL,pa,pa_IN,pl,pl_PL,pt,pt_BR,pt_PT,ro,ro_RO,ru,ru_RU,sk,sk_SK,sl,sl_SI,sv,sv_SE,ta,ta_IN,te,th,th_TH,tr,tr_TR,uk,uk_UA,vi,vi_VN,zh,zh_CN,zh_HK,zh_TW
|
||||
GSF.version = 11951440
|
||||
Vending.version = 80841900
|
||||
Vending.versionString = 8.4.19.V-all [0] [FP] 175058788
|
||||
CellOperator = 310260
|
||||
SimOperator = 310260
|
||||
TimeZone = America/New_York
|
||||
GL.Extensions = GL_AMD_compressed_ATC_texture,GL_AMD_performance_monitor,GL_ANDROID_extension_pack_es31a,GL_APPLE_texture_2D_limited_npot,GL_ARB_vertex_buffer_object,GL_ARM_shader_framebuffer_fetch_depth_stencil,GL_EXT_EGL_image_array,GL_EXT_YUV_target,GL_EXT_blit_framebuffer_params,GL_EXT_buffer_storage,GL_EXT_clip_cull_distance,GL_EXT_color_buffer_float,GL_EXT_color_buffer_half_float,GL_EXT_copy_image,GL_EXT_debug_label,GL_EXT_debug_marker,GL_EXT_discard_framebuffer,GL_EXT_disjoint_timer_query,GL_EXT_draw_buffers_indexed,GL_EXT_external_buffer,GL_EXT_geometry_shader,GL_EXT_gpu_shader5,GL_EXT_multisampled_render_to_texture,GL_EXT_multisampled_render_to_texture2,GL_EXT_primitive_bounding_box,GL_EXT_protected_textures,GL_EXT_robustness,GL_EXT_sRGB,GL_EXT_sRGB_write_control,GL_EXT_shader_framebuffer_fetch,GL_EXT_shader_io_blocks,GL_EXT_shader_non_constant_global_initializers,GL_EXT_tessellation_shader,GL_EXT_texture_border_clamp,GL_EXT_texture_buffer,GL_EXT_texture_cube_map_array,GL_EXT_texture_filter_anisotropic,GL_EXT_texture_format_BGRA8888,GL_EXT_texture_norm16,GL_EXT_texture_sRGB_R8,GL_EXT_texture_sRGB_decode,GL_EXT_texture_type_2_10_10_10_REV,GL_KHR_blend_equation_advanced,GL_KHR_blend_equation_advanced_coherent,GL_KHR_debug,GL_KHR_no_error,GL_KHR_texture_compression_astc_hdr,GL_KHR_texture_compression_astc_ldr,GL_NV_shader_noperspective_interpolation,GL_OES_EGL_image,GL_OES_EGL_image_external,GL_OES_EGL_image_external_essl3,GL_OES_EGL_sync,GL_OES_blend_equation_separate,GL_OES_blend_func_separate,GL_OES_blend_subtract,GL_OES_compressed_ETC1_RGB8_texture,GL_OES_compressed_paletted_texture,GL_OES_depth24,GL_OES_depth_texture,GL_OES_depth_texture_cube_map,GL_OES_draw_texture,GL_OES_element_index_uint,GL_OES_framebuffer_object,GL_OES_get_program_binary,GL_OES_matrix_palette,GL_OES_packed_depth_stencil,GL_OES_point_size_array,GL_OES_point_sprite,GL_OES_read_format,GL_OES_rgb8_rgba8,GL_OES_sample_shading,GL_OES_sample_variables,GL_OES_shader_image_atomic,GL_OES_shader_multisample_interpolation,GL_OES_standard_derivatives,GL_OES_stencil_wrap,GL_OES_surfaceless_context,GL_OES_texture_3D,GL_OES_texture_compression_astc,GL_OES_texture_cube_map,GL_OES_texture_env_crossbar,GL_OES_texture_float,GL_OES_texture_float_linear,GL_OES_texture_half_float,GL_OES_texture_half_float_linear,GL_OES_texture_mirrored_repeat,GL_OES_texture_npot,GL_OES_texture_stencil8,GL_OES_texture_storage_multisample_2d_array,GL_OES_vertex_array_object,GL_OES_vertex_half_float,GL_OVR_multiview,GL_OVR_multiview2,GL_OVR_multiview_multisampled_render_to_texture,GL_QCOM_alpha_test,GL_QCOM_extended_get,GL_QCOM_framebuffer_foveated,GL_QCOM_shader_framebuffer_fetch_noncoherent,GL_QCOM_tiled_rendering
|
||||
Roaming = mobile-notroaming
|
||||
Client = android-google
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
UserReadableName = OnePlus X (api25)
|
||||
Build.FINGERPRINT = OnePlus/OnePlus/OnePlus:5.1.1/LMY47V/1441677661:user/release-keys
|
||||
Build.HARDWARE = qcom
|
||||
Build.BRAND = OnePlus
|
||||
Build.RADIO = unknown
|
||||
Build.BOOTLOADER = unknown
|
||||
Build.DEVICE = OnePlus
|
||||
Build.VERSION.SDK_INT = 25
|
||||
Build.MODEL = ONE E1003
|
||||
Build.MANUFACTURER = OnePlus
|
||||
Build.PRODUCT = onyx
|
||||
TouchScreen = 3
|
||||
Keyboard = 1
|
||||
Navigation = 1
|
||||
ScreenLayout = 2
|
||||
HasHardKeyboard = false
|
||||
HasFiveWayNavigation = false
|
||||
Screen.Density = 432
|
||||
Screen.Width = 1080
|
||||
Screen.Height = 1790
|
||||
Platforms = armeabi-v7a,armeabi
|
||||
SharedLibraries = org.cyanogenmod.platform,com.qualcomm.qcnvitems,com.google.widevine.software.drm,com.qti.dpmapi,com.google.android.media.effects,com.android.location.provider,com.quicinc.cneapiclient,com.android.future.usb.accessory,com.qti.dpmframework,android.ext.shared,javax.obex,com.google.android.gms,android.ext.services,org.cyanogenmod.hardware,com.dsi.ant.antradio_library,com.qualcomm.qcrilhook,android.test.runner,com.google.android.dialer.support,com.google.android.maps,ConnectivityExt,org.apache.http.legacy,com.android.media.remotedisplay,com.quicinc.cne,com.android.mediadrm.signer
|
||||
Features = android.hardware.sensor.proximity,android.hardware.sensor.accelerometer,android.hardware.faketouch,org.cyanogenmod.appsuggest,android.hardware.usb.accessory,android.hardware.telephony.cdma,android.software.backup,android.hardware.touchscreen,android.hardware.touchscreen.multitouch,android.software.print,android.hardware.consumerir,org.cyanogenmod.partner,org.cyanogenmod.telephony,android.software.voice_recognizers,android.hardware.fingerprint,android.hardware.sensor.gyroscope,android.hardware.audio.low_latency,android.hardware.opengles.aep,android.hardware.bluetooth,android.hardware.camera.autofocus,com.google.android.feature.GOOGLE_BUILD,android.hardware.telephony.gsm,android.software.sip.voip,org.cyanogenmod.profiles,android.hardware.usb.host,com.cyanogenmod.android,android.hardware.audio.output,android.hardware.camera.flash,android.hardware.camera.front,android.hardware.sensor.hifi_sensors,android.hardware.screen.portrait,android.hardware.nfc,com.nxp.mifare,android.hardware.sensor.stepdetector,org.cyanogenmod.audio,org.cyanogenmod.theme,android.software.home_screen,android.hardware.microphone,org.cyanogenmod.statusbar,android.hardware.bluetooth_le,android.hardware.sensor.compass,android.hardware.touchscreen.multitouch.jazzhand,android.hardware.sensor.barometer,android.software.app_widgets,android.software.input_methods,android.hardware.sensor.light,android.software.device_admin,android.hardware.camera,org.cyanogenmod.hardware,android.hardware.screen.landscape,org.cyanogenmod.weather,org.cyanogenmod.performance,android.software.managed_users,android.software.webview,android.hardware.sensor.stepcounter,android.hardware.camera.capability.manual_post_processing,org.cyanogenmod.livedisplay,android.hardware.camera.any,android.hardware.camera.capability.raw,android.software.connectionservice,android.hardware.touchscreen.multitouch.distinct,android.hardware.location.network,android.software.sip,android.hardware.camera.capability.manual_sensor,android.hardware.camera.level.full,android.hardware.wifi.direct,android.software.live_wallpaper,com.google.android.feature.GOOGLE_EXPERIENCE,com.google.android.feature.EXCHANGE_6_2,org.cyanogenmod.theme.v1,org.cyanogenmod.livelockscreen,android.hardware.location.gps,android.software.midi,android.hardware.nfc.hce,android.hardware.wifi,android.hardware.location,android.hardware.telephony
|
||||
Locales = hi,so_ET,ro_MD,in,sn_ZW,sw_UG,es_BO,dyo,ru_KZ,en_JE,zu,en_JM,pt_BR,en_MS,ar_SD,en_ZM,es_PA,en_GG,es_SV,en_SE,es,rof,fr_SC,fr_GA,en_CM,ta,en_SX,fr_MC,fy,to,fr_RW,en_SD,qu,en_KE,rw_RW,gv_IM,sv_FI,cgg,pt_GW,fr_CF,sv_SE,dje,en_SS,ar_DZ,si,es_UY,ar_SA,tr_TR,dua,fr_BL,nb_SJ,fr_CA,ff,es_PE,om,en_FK,cs_CZ,zu_ZA,sl_SI,es_NI,en_GY,fr_ML,fr_MF,nmg,fo_DK,en_LR,el_CY,nus,mt,en_NU,en_UG,ta_MY,pt_ST,ha_NE,ca_FR,ru,es_IC,ar_KW,it_IT,en_GI,ji,hr,ka_GE,pt_PT,nl,en_TV,ru_RU,pa,mgh,es_ES,km,ee_TG,ca_AD,twq,ar_YE,eo,ne,as_IN,es_GT,vi_VN,de_CH,ig_NG,or_IN,mua,pl_PL,lv,fr_DZ,lb,hr_HR,haw,sw_KE,shi,mn,om_ET,fr_LU,es_PR,lo_LA,es_HN,kl_GL,bo_IN,et_EE,en_ZA,fr_TG,br_FR,yo_NG,tr_CY,sr,bem,fr_PF,ti_ET,hu,mk,de_LI,so_SO,nb_NO,luo,en_ZW,sk_SK,ksh,sk,nyn,fa,zgh,fr_HT,en_CY,uz,rm,en_MH,sn,to_TO,te,sq_MK,ha_GH,ta_IN,en_MW,da,en_BS,ms_SG,ps_AF,lt_LT,br,it_CH,fr_NE,en_LC,bm_ML,kk_KZ,qu_BO,tr,nl_SR,ln,sw,luy,en,fo,en_GD,asa,lag,fr_GQ,fr,fr_GN,dz,ar_SO,dz_BT,ca,es_CL,rn_BI,sq_XK,en_CC,en_SI,el_GR,yo_BJ,vi,my,de_LU,mk_MK,ak_GH,fr_GF,en_PK,my_MM,fr_CG,cy,es_PH,en_IN,ksf,en_LS,fy_NL,ce,ff_MR,af_ZA,fa_IR,bn_BD,vun,ks,bg,sq_AL,fr_BF,rw,af_NA,dsb,qu_PE,en_DM,ar_TN,nd,en_UM,en_FM,en_NR,ro,uk,se_SE,ln_CF,pt_MZ,am_ET,kl,pt,ta_SG,th,se_NO,ff_GN,ky,en_NG,ur_PK,af,en_DE,so,sah,fr_SN,ar_EH,vai,gu_IN,en_WS,es_EA,ms,fr_MG,th_TH,fr_RE,ru_BY,nl_SX,lv_LV,ki_KE,fr_CI,en_BB,ja,kde,am,nl_BQ,bo_CN,ga_IE,sl,bn_IN,mer,en_SZ,fr_CM,dav,ti_ER,da_GL,kw_GB,ga,mfe,it,it_SM,fo_FO,en_BW,en_SG,en_KN,cs,chr,km_KH,en_SC,mr_IN,el,en_PN,mg_MG,ru_KG,en_PW,en_SB,fur,en_BZ,ka,bm,de_DE,te_IN,ml_IN,hy,sw_TZ,kw,kn,ru_UA,ln_CD,et,fr_CH,en_DG,bn,ps,qu_EC,lt,ii_CN,en_FJ,eu,en_TC,ksb,pt_CV,gl_ES,en_VU,en_MP,ee,ar_PS,wae,nl_BE,xog,is,fr_PM,saq,iw_IL,om_KE,en_FI,nn_NO,pt_MO,mgo,en_US,fr_BE,ar,gd,kok,de,kln,kam,mt_MT,be,ce_RU,en_BE,fr_SY,es_MX,sv_AX,agq,sq,hr_BA,tzm,de_AT,os_RU,es_DO,en_BI,mg,ar_SY,yav,ks_IN,ro_RO,lu_CD,en_PG,jgo,is_IS,es_CU,ff_CM,en_VG,az,en_GU,fr_MR,ug_CN,in_ID,en_AU,nl_CW,ru_MD,naq,gd_GB,en_CK,ml,ja_JP,sw_CD,uk_UA,ta_LK,pl,es_VE,da_DK,be_BY,fa_AF,pt_AO,fr_MQ,bs,mas,ar_QA,en_IO,en_SH,en_NL,es_GQ,lg,hu_HU,fr_BJ,en_MO,brx,fr_WF,ar_OM,ca_ES,en_GB,ug,ha,en_NA,en_NF,sv,as,ig,en_KI,en_CX,en_TO,sbp,bo,ne_NP,bg_BG,jmc,en_GM,ar_JO,en_HK,ar_IQ,fr_DJ,fr_GP,lkt,kn_IN,ha_NG,en_IL,en_KY,en_TT,fil,fr_BI,sg,hsb,ca_IT,teo,fr_TN,en_AS,kk,guz,fr_VU,mr,es_EC,en_TZ,ko_KR,ar_MA,ar_LB,fr_CD,en_DK,es_CO,ur_IN,rwk,es_PY,ms_MY,cy_GB,en_PH,seh,ar_BH,en_TK,en_RW,eu_ES,ki,fr_TD,smn,ses,so_KE,es_CR,en_MY,en_AI,lo,en_MG,en_PR,gsw,en_VI,en_BM,se,en_IE,en_SL,khq,en_CH,ee_GH,ko,lb_LU,en_AT,nn,ar_ER,lrc,ar_TD,ar_MR,fr_YT,en_GH,en_MU,si_LK,gv,ky_KG,nl_NL,rm_CH,ar_IL,ti,iw,hy_AM,se_FI,pt_TL,en_AG,or,bez,ff_SN,en_IM,fr_MA,en_MT,nd_ZW,fi_FI,en_NZ,de_BE,fr_KM,bas,ak,nl_AW,ar_AE,kab,ar_EG,ur,es_AR,ar_DJ,ar_KM,kkj,fi,lu,fr_FR,ebu,os,ne_IN,ln_AO,gu,zh,os_GE,sg_CF,mn_MN,gl,lg_UG,ko_KP,rn,mzn,es_US,hi_IN,ar_LY,ms_BN,fr_NC,so_DJ,ii,en_ER,ar_SS,kea,ln_CG,fr_MU,nb,yo,nnh,en_VC,ewo,en_CA
|
||||
Client = android-google
|
||||
GSF.version = 10548448
|
||||
Vending.version = 80798000
|
||||
CellOperator = 310260
|
||||
SimOperator = 310260
|
||||
Roaming = mobile-notroaming
|
||||
TimeZone = Europe/Moscow
|
||||
GL.Version = 131072
|
||||
GL.Extensions = GL_AMD_compressed_ATC_texture,GL_AMD_performance_monitor,GL_ANDROID_extension_pack_es31a,GL_APPLE_texture_2D_limited_npot,GL_ARB_vertex_buffer_object,GL_ARM_shader_framebuffer_fetch_depth_stencil,GL_EXT_YUV_target,GL_EXT_blit_framebuffer_params,GL_EXT_buffer_storage,GL_EXT_color_buffer_float,GL_EXT_color_buffer_half_float,GL_EXT_copy_image,GL_EXT_debug_label,GL_EXT_debug_marker,GL_EXT_discard_framebuffer,GL_EXT_disjoint_timer_query,GL_EXT_draw_buffers_indexed,GL_EXT_geometry_shader,GL_EXT_gpu_shader5,GL_EXT_multisampled_render_to_texture,GL_EXT_primitive_bounding_box,GL_EXT_robustness,GL_EXT_sRGB,GL_EXT_sRGB_write_control,GL_EXT_shader_framebuffer_fetch,GL_EXT_shader_io_blocks,GL_EXT_tessellation_shader,GL_EXT_texture_border_clamp,GL_EXT_texture_buffer,GL_EXT_texture_cube_map_array,GL_EXT_texture_filter_anisotropic,GL_EXT_texture_format_BGRA8888,GL_EXT_texture_norm16,GL_EXT_texture_sRGB_R8,GL_EXT_texture_sRGB_decode,GL_EXT_texture_type_2_10_10_10_REV,GL_KHR_blend_equation_advanced,GL_KHR_blend_equation_advanced_coherent,GL_KHR_debug,GL_KHR_no_error,GL_KHR_texture_compression_astc_hdr,GL_KHR_texture_compression_astc_ldr,GL_OES_EGL_image,GL_OES_EGL_image_external,GL_OES_EGL_sync,GL_OES_blend_equation_separate,GL_OES_blend_func_separate,GL_OES_blend_subtract,GL_OES_compressed_ETC1_RGB8_texture,GL_OES_compressed_paletted_texture,GL_OES_depth24,GL_OES_depth_texture,GL_OES_depth_texture_cube_map,GL_OES_draw_texture,GL_OES_element_index_uint,GL_OES_framebuffer_object,GL_OES_get_program_binary,GL_OES_matrix_palette,GL_OES_packed_depth_stencil,GL_OES_point_size_array,GL_OES_point_sprite,GL_OES_read_format,GL_OES_rgb8_rgba8,GL_OES_sample_shading,GL_OES_sample_variables,GL_OES_shader_image_atomic,GL_OES_shader_multisample_interpolation,GL_OES_standard_derivatives,GL_OES_stencil_wrap,GL_OES_surfaceless_context,GL_OES_texture_3D,GL_OES_texture_compression_astc,GL_OES_texture_cube_map,GL_OES_texture_env_crossbar,GL_OES_texture_float,GL_OES_texture_float_linear,GL_OES_texture_half_float,GL_OES_texture_half_float_linear,GL_OES_texture_mirrored_repeat,GL_OES_texture_npot,GL_OES_texture_stencil8,GL_OES_texture_storage_multisample_2d_array,GL_OES_vertex_array_object,GL_OES_vertex_half_float,GL_OVR_multiview,GL_OVR_multiview2,GL_OVR_multiview_multisampled_render_to_texture,GL_QCOM_alpha_test,GL_QCOM_extended_get,GL_QCOM_tiled_rendering,GL_EXT_multi_draw_arrays,GL_EXT_shader_texture_lod,GL_IMG_multisampled_render_to_texture,GL_IMG_program_binary,GL_IMG_read_format,GL_IMG_shader_binary,GL_IMG_texture_compression_pvrtc,GL_IMG_texture_format_BGRA8888,GL_IMG_texture_npot,GL_IMG_vertex_array_object,GL_OES_byte_coordinates,GL_OES_extended_matrix_palette,GL_OES_fixed_point,GL_OES_fragment_precision_high,GL_OES_mapbuffer,GL_OES_matrix_get,GL_OES_query_matrix,GL_OES_required_internalformat,GL_OES_single_precision,GL_OES_stencil8
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
UserReadableName = HTC Explorer A310e (api15)
|
||||
Build.FINGERPRINT = htc_asia_india/htc_pico/pico:2.3.5/GRJ90/171430.1:user/release-keys
|
||||
Build.HARDWARE = pico
|
||||
Build.BRAND = htc_europe
|
||||
Build.RADIO = unknown
|
||||
Build.BOOTLOADER = 1.02.0000
|
||||
Build.DEVICE = pico
|
||||
Build.VERSION.SDK_INT = 15
|
||||
Build.MODEL = HTC Explorer A310e
|
||||
Build.MANUFACTURER = HTC
|
||||
Build.PRODUCT = pico
|
||||
TouchScreen = 3
|
||||
Keyboard = 1
|
||||
Navigation = 1
|
||||
ScreenLayout = 2
|
||||
HasHardKeyboard = false
|
||||
HasFiveWayNavigation = false
|
||||
Screen.Density = 160
|
||||
Screen.Width = 320
|
||||
Screen.Height = 480
|
||||
Platforms = armeabi-v7a,armeabi
|
||||
SharedLibraries = com.sonyericsson.privateapis_2,com.sonyericsson.privateapis_1,com.sonymobile.musicslideshow.api,com.android.future.usb.accessory,com.sonyericsson.privateapis_6,com.sony.walkman.fseries,com.sonyericsson.privateapis_5,com.sonyericsson.privateapis_4,com.sonyericsson.privateapis_3,semc_audioeffectif,com.sonyericsson.autopoweroff,com.sonyericsson.renren.proxy,com.sonyericsson.system,SemcGenericUxpRes,semc_cdfinfoaccessorif,com.android.qualcomm.qcnvitems,com.sonyericsson.colorextraction,com.android.location.provider,com.sonyericsson.uxp,com.sonyericsson.musicvisualizer.api,javax.obex,semc_bootinfoif,com.sonyericsson.mimetype,semcrilextension,com.sonyericsson.idd,com.sony.walkman.media.player,com.sonyericsson.facebook.proxy_1,com.sony.walkman,com.sonymobile.audioeffect,com.sonyericsson.android.media.sols,com.sonyericsson.eventstream_3,com.sonyericsson.privateapis_7,com.sony.walkman.f800series,com.sonyericsson.eventstream_1,com.sonyericsson.eventstream_2,com.sonyericsson.nfc.handover,com.sonyericsson.smartslider,miui-framework,com.sonyericsson.dtcpctrl_protected.api,com.sonyericsson.metadatacleanup.api_4,com.sonyericsson.dlna.dtcpplayer.api,com.sonyericsson.music.like_1,com.sonymobile.nfc,com.sony.walkman.media.client,android.test.runner,com.sonyericsson.themeapis_ed6,com.android.qualcomm.qcrilhook,com.sonyericsson.metadatacleanup.api,com.sonyericsson.dtcpctrl_private.api,com.sonyericsson.android.omacp.api,com.sonyericsson.dlna.api,com.sonyericsson.android.snp.video,com.sony.walkman.wm,com.sonyericsson.illumination,com.sonyericsson.media.infinite.extension_1,qcsemcserviceif,com.sonyericsson.appextensions,com.sonyericsson.privateapis_1p,com.sony.walkman.database.media.client,com.sonyericsson.sysmon,com.sonyericsson.uxpres
|
||||
Features = android.hardware.sensor.proximity,android.hardware.sensor.accelerometer,android.hardware.faketouch,org.cyanogenmod.appsuggest,android.hardware.usb.accessory,android.hardware.telephony.cdma,android.software.backup,android.hardware.touchscreen,android.hardware.touchscreen.multitouch,android.software.print,android.hardware.consumerir,org.cyanogenmod.partner,org.cyanogenmod.telephony,android.software.voice_recognizers,android.hardware.fingerprint,android.hardware.sensor.gyroscope,android.hardware.audio.low_latency,android.hardware.opengles.aep,android.hardware.bluetooth,android.hardware.camera.autofocus,com.google.android.feature.GOOGLE_BUILD,android.hardware.telephony.gsm,android.software.sip.voip,org.cyanogenmod.profiles,android.hardware.usb.host,com.cyanogenmod.android,android.hardware.audio.output,android.hardware.camera.flash,android.hardware.camera.front,android.hardware.sensor.hifi_sensors,android.hardware.screen.portrait,android.hardware.nfc,com.nxp.mifare,android.hardware.sensor.stepdetector,org.cyanogenmod.audio,org.cyanogenmod.theme,android.software.home_screen,android.hardware.microphone,org.cyanogenmod.statusbar,android.hardware.bluetooth_le,android.hardware.sensor.compass,android.hardware.touchscreen.multitouch.jazzhand,android.hardware.sensor.barometer,android.software.app_widgets,android.software.input_methods,android.hardware.sensor.light,android.software.device_admin,android.hardware.camera,org.cyanogenmod.hardware,android.hardware.screen.landscape,org.cyanogenmod.weather,org.cyanogenmod.performance,android.software.managed_users,android.software.webview,android.hardware.sensor.stepcounter,android.hardware.camera.capability.manual_post_processing,org.cyanogenmod.livedisplay,android.hardware.camera.any,android.hardware.camera.capability.raw,android.software.connectionservice,android.hardware.touchscreen.multitouch.distinct,android.hardware.location.network,android.software.sip,android.hardware.camera.capability.manual_sensor,android.hardware.camera.level.full,android.hardware.wifi.direct,android.software.live_wallpaper,com.google.android.feature.GOOGLE_EXPERIENCE,com.google.android.feature.EXCHANGE_6_2,org.cyanogenmod.theme.v1,org.cyanogenmod.livelockscreen,android.hardware.location.gps,android.software.midi,android.hardware.nfc.hce,android.hardware.wifi,android.hardware.location,android.hardware.telephony
|
||||
Locales = ar,ar_AE,ar_BH,ar_DZ,ar_EG,ar_IQ,ar_JO,ar_KW,ar_LB,ar_LY,ar_MA,ar_OM,ar_QA,ar_SA,ar_SD,ar_SY,ar_TN,ar_YE,bg,bg_BG,ca,ca_ES,cs,cs_CZ,da,da_DK,de,de_AT,de_BE,de_CH,de_DE,de_LI,de_LU,el,el_GR,en,en_AU,en_BE,en_BW,en_BZ,en_CA,en_GB,en_HK,en_IE,en_IN,en_JM,en_MH,en_MT,en_NA,en_NZ,en_PH,en_PK,en_RH,en_SG,en_TT,en_US,en_VI,en_ZA,en_ZW,es,es_AR,es_BO,es_CL,es_CO,es_CR,es_DO,es_EC,es_ES,es_GT,es_HN,es_MX,es_NI,es_PA,es_PE,es_PR,es_PY,es_SV,es_US,es_UY,es_VE,fa,fa_AF,fa_IR,fi,fi_FI,fil,fr,fr_BE,fr_CA,fr_CH,fr_FR,fr_LU,fr_MC,iw,iw_IL,hi,hi_IN,hr,hr_HR,hu,hu_HU,in,in_ID,it,it_CH,it_IT,ja,ja_JP,ko,ko_KR,lt,lt_LT,lv,lv_LV,nb,nb_NO,nl,nl_BE,nl_NL,pl,pl_PL,ps,pt,pt_BR,pt_PT,rm,ro,ro_RO,ru,ru_RU,ru_UA,sk,sk_SK,sl,sl_SI,sr,sv,sv_FI,sv_SE,th,th_TH,tr,tr_TR,uk,uk_UA,vi,vi_VN,zh,zh_CN,zh_HK,zh_MO,zh_SG,zh_TW
|
||||
Client = android-google
|
||||
GSF.version = 10548448
|
||||
Vending.version = 80798000
|
||||
CellOperator = 310260
|
||||
SimOperator = 310260
|
||||
Roaming = mobile-notroaming
|
||||
TimeZone = Europe/Moscow
|
||||
GL.Version = 131072
|
||||
GL.Extensions = GL_AMD_compressed_ATC_texture,GL_AMD_performance_monitor,GL_ANDROID_extension_pack_es31a,GL_APPLE_texture_2D_limited_npot,GL_ARB_vertex_buffer_object,GL_ARM_shader_framebuffer_fetch_depth_stencil,GL_EXT_YUV_target,GL_EXT_blit_framebuffer_params,GL_EXT_buffer_storage,GL_EXT_color_buffer_float,GL_EXT_color_buffer_half_float,GL_EXT_copy_image,GL_EXT_debug_label,GL_EXT_debug_marker,GL_EXT_discard_framebuffer,GL_EXT_disjoint_timer_query,GL_EXT_draw_buffers_indexed,GL_EXT_geometry_shader,GL_EXT_gpu_shader5,GL_EXT_multisampled_render_to_texture,GL_EXT_primitive_bounding_box,GL_EXT_robustness,GL_EXT_sRGB,GL_EXT_sRGB_write_control,GL_EXT_shader_framebuffer_fetch,GL_EXT_shader_io_blocks,GL_EXT_tessellation_shader,GL_EXT_texture_border_clamp,GL_EXT_texture_buffer,GL_EXT_texture_cube_map_array,GL_EXT_texture_filter_anisotropic,GL_EXT_texture_format_BGRA8888,GL_EXT_texture_norm16,GL_EXT_texture_sRGB_R8,GL_EXT_texture_sRGB_decode,GL_EXT_texture_type_2_10_10_10_REV,GL_KHR_blend_equation_advanced,GL_KHR_blend_equation_advanced_coherent,GL_KHR_debug,GL_KHR_no_error,GL_KHR_texture_compression_astc_hdr,GL_KHR_texture_compression_astc_ldr,GL_OES_EGL_image,GL_OES_EGL_image_external,GL_OES_EGL_sync,GL_OES_blend_equation_separate,GL_OES_blend_func_separate,GL_OES_blend_subtract,GL_OES_compressed_ETC1_RGB8_texture,GL_OES_compressed_paletted_texture,GL_OES_depth24,GL_OES_depth_texture,GL_OES_depth_texture_cube_map,GL_OES_draw_texture,GL_OES_element_index_uint,GL_OES_framebuffer_object,GL_OES_get_program_binary,GL_OES_matrix_palette,GL_OES_packed_depth_stencil,GL_OES_point_size_array,GL_OES_point_sprite,GL_OES_read_format,GL_OES_rgb8_rgba8,GL_OES_sample_shading,GL_OES_sample_variables,GL_OES_shader_image_atomic,GL_OES_shader_multisample_interpolation,GL_OES_standard_derivatives,GL_OES_stencil_wrap,GL_OES_surfaceless_context,GL_OES_texture_3D,GL_OES_texture_compression_astc,GL_OES_texture_cube_map,GL_OES_texture_env_crossbar,GL_OES_texture_float,GL_OES_texture_float_linear,GL_OES_texture_half_float,GL_OES_texture_half_float_linear,GL_OES_texture_mirrored_repeat,GL_OES_texture_npot,GL_OES_texture_stencil8,GL_OES_texture_storage_multisample_2d_array,GL_OES_vertex_array_object,GL_OES_vertex_half_float,GL_OVR_multiview,GL_OVR_multiview2,GL_OVR_multiview_multisampled_render_to_texture,GL_QCOM_alpha_test,GL_QCOM_extended_get,GL_QCOM_tiled_rendering,GL_EXT_multi_draw_arrays,GL_EXT_shader_texture_lod,GL_IMG_multisampled_render_to_texture,GL_IMG_program_binary,GL_IMG_read_format,GL_IMG_shader_binary,GL_IMG_texture_compression_pvrtc,GL_IMG_texture_format_BGRA8888,GL_IMG_texture_npot,GL_IMG_vertex_array_object,GL_OES_byte_coordinates,GL_OES_extended_matrix_palette,GL_OES_fixed_point,GL_OES_fragment_precision_high,GL_OES_mapbuffer,GL_OES_matrix_get,GL_OES_query_matrix,GL_OES_required_internalformat,GL_OES_single_precision,GL_OES_stencil8
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
UserReadableName = Google Pixel (api27)
|
||||
Build.HARDWARE = sailfish
|
||||
Build.RADIO = unknown
|
||||
Build.BOOTLOADER = 8996-012001-1710040120
|
||||
Build.FINGERPRINT = google/sailfish/sailfish:8.1.0/OPM1.171019.011/4448085:user/release-keys
|
||||
Build.BRAND = google
|
||||
Build.DEVICE = sailfish
|
||||
Build.VERSION.SDK_INT = 27
|
||||
Build.MODEL = Pixel
|
||||
Build.MANUFACTURER = Google
|
||||
Build.PRODUCT = sailfish
|
||||
Build.ID = OPM1.171019.011
|
||||
Build.VERSION.RELEASE = 8.1.0
|
||||
TouchScreen = 3
|
||||
Keyboard = 1
|
||||
Navigation = 1
|
||||
ScreenLayout = 2
|
||||
HasHardKeyboard = false
|
||||
HasFiveWayNavigation = false
|
||||
GL.Version = 196610
|
||||
Screen.Density = 420
|
||||
Screen.Width = 1080
|
||||
Screen.Height = 1794
|
||||
Platforms = arm64-v8a,armeabi-v7a,armeabi
|
||||
SharedLibraries = android.ext.services,android.ext.shared,android.test.mock,android.test.runner,com.android.future.usb.accessory,com.android.ims.rcsmanager,com.android.location.provider,com.android.media.remotedisplay,com.android.mediadrm.signer,com.google.android.camera.experimental2016,com.google.android.dialer.support,com.google.android.gms,com.google.android.maps,com.google.android.media.effects,com.google.vr.platform,com.qti.vzw.ims.internal,com.qualcomm.embmslibrary,com.qualcomm.qcrilhook,com.qualcomm.qti.QtiTelephonyServicelibrary,com.qualcomm.qti.rcsservice,com.verizon.embms,com.verizon.provider,com.vzw.apnlib,javax.obex,org.apache.http.legacy
|
||||
Features = android.hardware.audio.low_latency,android.hardware.audio.output,android.hardware.audio.pro,android.hardware.bluetooth,android.hardware.bluetooth_le,android.hardware.camera,android.hardware.camera.any,android.hardware.camera.autofocus,android.hardware.camera.capability.manual_post_processing,android.hardware.camera.capability.manual_sensor,android.hardware.camera.capability.raw,android.hardware.camera.flash,android.hardware.camera.front,android.hardware.camera.level.full,android.hardware.faketouch,android.hardware.fingerprint,android.hardware.location,android.hardware.location.gps,android.hardware.location.network,android.hardware.microphone,android.hardware.nfc,android.hardware.nfc.any,android.hardware.nfc.hce,android.hardware.nfc.hcef,android.hardware.opengles.aep,android.hardware.ram.normal,android.hardware.screen.landscape,android.hardware.screen.portrait,android.hardware.sensor.accelerometer,android.hardware.sensor.barometer,android.hardware.sensor.compass,android.hardware.sensor.gyroscope,android.hardware.sensor.hifi_sensors,android.hardware.sensor.light,android.hardware.sensor.proximity,android.hardware.sensor.stepcounter,android.hardware.sensor.stepdetector,android.hardware.telephony,android.hardware.telephony.carrierlock,android.hardware.telephony.cdma,android.hardware.telephony.gsm,android.hardware.touchscreen,android.hardware.touchscreen.multitouch,android.hardware.touchscreen.multitouch.distinct,android.hardware.touchscreen.multitouch.jazzhand,android.hardware.usb.accessory,android.hardware.usb.host,android.hardware.vr.headtracking,android.hardware.vr.high_performance,android.hardware.vulkan.compute,android.hardware.vulkan.level,android.hardware.vulkan.version,android.hardware.wifi,android.hardware.wifi.direct,android.hardware.wifi.passpoint,android.software.activities_on_secondary_displays,android.software.app_widgets,android.software.autofill,android.software.backup,android.software.companion_device_setup,android.software.connectionservice,android.software.cts,android.software.device_admin,android.software.file_based_encryption,android.software.home_screen,android.software.input_methods,android.software.live_wallpaper,android.software.managed_users,android.software.midi,android.software.picture_in_picture,android.software.print,android.software.securely_removes_users,android.software.sip,android.software.sip.voip,android.software.voice_recognizers,android.software.vr.mode,android.software.webview,com.google.android.apps.dialer.SUPPORTED,com.google.android.apps.photos.NEXUS_PRELOAD,com.google.android.apps.photos.nexus_preload,com.google.android.feature.EXCHANGE_6_2,com.google.android.feature.GOOGLE_BUILD,com.google.android.feature.GOOGLE_EXPERIENCE,com.google.android.feature.PIXEL_EXPERIENCE,com.google.android.feature.ZERO_TOUCH,com.nxp.mifare,com.verizon.hardware.telephony.ehrpd,com.verizon.hardware.telephony.lte
|
||||
Locales = af,af_ZA,am,am_ET,ar,ar_EG,ar_XB,ast,az,be,bg,bg_BG,bn,bs,ca,ca_ES,cs,cs_CZ,da,da_DK,de,de_DE,el,el_GR,en,en_AU,en_CA,en_GB,en_IN,en_US,en_XA,es,es_ES,es_US,et,eu,fa,fa_IR,fi,fi_FI,fil,fil_PH,fr,fr_BE,fr_CA,fr_FR,gl,gu,hi,hi_IN,hr,hr_HR,hu,hu_HU,hy,in,in_ID,is,it,it_IT,iw,iw_IL,ja,ja_JP,ka,kk,km,kn,ko,ko_KR,ky,lo,lt,lt_LT,lv,lv_LV,mk,ml,mn,mr,ms,ms_MY,my,nb,nb_NO,ne,nl,nl_NL,pa,pl,pl_PL,pt,pt_BR,pt_PT,ro,ro_RO,ru,ru_RU,si,sk,sk_SK,sl,sl_SI,sq,sr,sr_RS,sv,sv_SE,sw,sw_TZ,ta,te,th,th_TH,tr,tr_TR,uk,uk_UA,ur,uz,vi,vi_VN,zh,zh_CN,zh_HK,zh_TW,zu,zu_ZA
|
||||
GSF.version = 11951940
|
||||
Vending.version = 80853900
|
||||
Vending.versionString = 8.5.39.W-all [0] [PR] 178322352
|
||||
CellOperator = 311480
|
||||
SimOperator = 311480
|
||||
TimeZone = America/Denver
|
||||
GL.Extensions = GL_AMD_compressed_ATC_texture,GL_AMD_performance_monitor,GL_ANDROID_extension_pack_es31a,GL_APPLE_texture_2D_limited_npot,GL_ARB_vertex_buffer_object,GL_ARM_shader_framebuffer_fetch_depth_stencil,GL_EXT_EGL_image_array,GL_EXT_YUV_target,GL_EXT_blit_framebuffer_params,GL_EXT_buffer_storage,GL_EXT_clip_cull_distance,GL_EXT_color_buffer_float,GL_EXT_color_buffer_half_float,GL_EXT_copy_image,GL_EXT_debug_label,GL_EXT_debug_marker,GL_EXT_discard_framebuffer,GL_EXT_disjoint_timer_query,GL_EXT_draw_buffers_indexed,GL_EXT_external_buffer,GL_EXT_geometry_shader,GL_EXT_gpu_shader5,GL_EXT_multisampled_render_to_texture,GL_EXT_multisampled_render_to_texture2,GL_EXT_primitive_bounding_box,GL_EXT_protected_textures,GL_EXT_robustness,GL_EXT_sRGB,GL_EXT_sRGB_write_control,GL_EXT_shader_framebuffer_fetch,GL_EXT_shader_io_blocks,GL_EXT_shader_non_constant_global_initializers,GL_EXT_tessellation_shader,GL_EXT_texture_border_clamp,GL_EXT_texture_buffer,GL_EXT_texture_cube_map_array,GL_EXT_texture_filter_anisotropic,GL_EXT_texture_format_BGRA8888,GL_EXT_texture_norm16,GL_EXT_texture_sRGB_R8,GL_EXT_texture_sRGB_decode,GL_EXT_texture_type_2_10_10_10_REV,GL_KHR_blend_equation_advanced,GL_KHR_blend_equation_advanced_coherent,GL_KHR_debug,GL_KHR_no_error,GL_KHR_texture_compression_astc_hdr,GL_KHR_texture_compression_astc_ldr,GL_NV_shader_noperspective_interpolation,GL_OES_EGL_image,GL_OES_EGL_image_external,GL_OES_EGL_image_external_essl3,GL_OES_EGL_sync,GL_OES_blend_equation_separate,GL_OES_blend_func_separate,GL_OES_blend_subtract,GL_OES_compressed_ETC1_RGB8_texture,GL_OES_compressed_paletted_texture,GL_OES_depth24,GL_OES_depth_texture,GL_OES_depth_texture_cube_map,GL_OES_draw_texture,GL_OES_element_index_uint,GL_OES_framebuffer_object,GL_OES_get_program_binary,GL_OES_matrix_palette,GL_OES_packed_depth_stencil,GL_OES_point_size_array,GL_OES_point_sprite,GL_OES_read_format,GL_OES_rgb8_rgba8,GL_OES_sample_shading,GL_OES_sample_variables,GL_OES_shader_image_atomic,GL_OES_shader_multisample_interpolation,GL_OES_standard_derivatives,GL_OES_stencil_wrap,GL_OES_surfaceless_context,GL_OES_texture_3D,GL_OES_texture_compression_astc,GL_OES_texture_cube_map,GL_OES_texture_env_crossbar,GL_OES_texture_float,GL_OES_texture_float_linear,GL_OES_texture_half_float,GL_OES_texture_half_float_linear,GL_OES_texture_mirrored_repeat,GL_OES_texture_npot,GL_OES_texture_stencil8,GL_OES_texture_storage_multisample_2d_array,GL_OES_vertex_array_object,GL_OES_vertex_half_float,GL_OVR_multiview,GL_OVR_multiview2,GL_OVR_multiview_multisampled_render_to_texture,GL_QCOM_alpha_test,GL_QCOM_extended_get,GL_QCOM_framebuffer_foveated,GL_QCOM_shader_framebuffer_fetch_noncoherent,GL_QCOM_tiled_rendering
|
||||
Roaming = mobile-notroaming
|
||||
Client = android-google
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
UserReadableName = Nexus 6 (api25)
|
||||
Build.HARDWARE = shamu
|
||||
Build.RADIO = unknown
|
||||
Build.BOOTLOADER = moto-apq8084-72.04
|
||||
Build.FINGERPRINT = google/shamu/shamu:7.1.1/N6F27M/4299435:user/release-keys
|
||||
Build.BRAND = google
|
||||
Build.DEVICE = shamu
|
||||
Build.VERSION.SDK_INT = 25
|
||||
Build.MODEL = Nexus 6
|
||||
Build.MANUFACTURER = motorola
|
||||
Build.PRODUCT = shamu
|
||||
Build.ID = N6F27M
|
||||
Build.VERSION.RELEASE = 7.1.1
|
||||
TouchScreen = 3
|
||||
Keyboard = 1
|
||||
Navigation = 1
|
||||
ScreenLayout = 2
|
||||
HasHardKeyboard = false
|
||||
HasFiveWayNavigation = false
|
||||
GL.Version = 196610
|
||||
Screen.Density = 560
|
||||
Screen.Width = 1440
|
||||
Screen.Height = 2392
|
||||
Platforms = armeabi-v7a,armeabi
|
||||
SharedLibraries = android.ext.services,android.ext.shared,android.test.runner,com.android.future.usb.accessory,com.android.location.provider,com.android.media.remotedisplay,com.android.mediadrm.signer,com.google.android.camera.experimental2016,com.google.android.dialer.support,com.google.android.gms,com.google.android.maps,com.google.android.media.effects,com.google.widevine.software.drm,com.qualcomm.qti.rcsimssettings,com.qualcomm.qti.rcsservice,com.verizon.ims,com.vzw.apnlib,javax.obex,org.apache.http.legacy
|
||||
Features = android.hardware.audio.low_latency,android.hardware.audio.output,android.hardware.bluetooth,android.hardware.bluetooth_le,android.hardware.camera,android.hardware.camera.any,android.hardware.camera.autofocus,android.hardware.camera.capability.manual_post_processing,android.hardware.camera.capability.manual_sensor,android.hardware.camera.capability.raw,android.hardware.camera.flash,android.hardware.camera.front,android.hardware.camera.level.full,android.hardware.faketouch,android.hardware.location,android.hardware.location.gps,android.hardware.location.network,android.hardware.microphone,android.hardware.nfc,android.hardware.nfc.hce,android.hardware.nfc.hcef,android.hardware.opengles.aep,android.hardware.screen.landscape,android.hardware.screen.portrait,android.hardware.sensor.accelerometer,android.hardware.sensor.barometer,android.hardware.sensor.compass,android.hardware.sensor.gyroscope,android.hardware.sensor.light,android.hardware.sensor.proximity,android.hardware.sensor.stepcounter,android.hardware.sensor.stepdetector,android.hardware.telephony,android.hardware.telephony.cdma,android.hardware.telephony.gsm,android.hardware.touchscreen,android.hardware.touchscreen.multitouch,android.hardware.touchscreen.multitouch.distinct,android.hardware.touchscreen.multitouch.jazzhand,android.hardware.usb.accessory,android.hardware.usb.host,android.hardware.wifi,android.hardware.wifi.direct,android.software.app_widgets,android.software.backup,android.software.connectionservice,android.software.device_admin,android.software.home_screen,android.software.input_methods,android.software.live_wallpaper,android.software.managed_users,android.software.midi,android.software.print,android.software.sip,android.software.sip.voip,android.software.voice_recognizers,android.software.webview,com.google.android.feature.EXCHANGE_6_2,com.google.android.feature.GOOGLE_BUILD,com.google.android.feature.GOOGLE_EXPERIENCE,com.motorola.software.DirectedSMSProxy,com.motorola.triggerenroll.ap_v1,com.motorola.triggerenroll.dsp_v1,com.verizon.hardware.telephony.ehrpd,com.verizon.hardware.telephony.lte
|
||||
Locales = af,af_ZA,am,am_ET,ar,ar_EG,ar_XB,ast,bg,bg_BG,bn_BD,ca,ca_ES,cs,cs_CZ,da,da_DK,de,de_DE,el,el_GR,en,en_AU,en_GB,en_IN,en_US,en_XA,es,es_ES,es_US,et_EE,eu,eu_ES,fa,fa_IR,fi,fi_FI,fil,fil_PH,fr,fr_BE,fr_CA,fr_FR,gl_ES,hi,hi_IN,hr,hr_HR,hu,hu_HU,hy_AM,in,in_ID,is_IS,it,it_IT,iw,iw_IL,ja,ja_JP,ka_GE,km_KH,kn_IN,ko,ko_KR,ky_KG,lo_LA,lt,lt_LT,lv,lv_LV,mk_MK,ml_IN,mn_MN,mr_IN,ms_MY,my_MM,nb,nb_NO,ne_NP,nl,nl_NL,pl,pl_PL,pt,pt_BR,pt_PT,ro,ro_RO,ru,ru_RU,si_LK,sk,sk_SK,sl,sl_SI,sr,sr_RS,sv,sv_SE,sw,sw_TZ,ta_IN,te_IN,th,th_TH,tr,tr_TR,uk,uk_UA,vi,vi_VN,zh,zh_CN,zh_HK,zh_TW,zu,zu_ZA
|
||||
GSF.version = 11951430
|
||||
Vending.version = 80841900
|
||||
Vending.versionString = 8.4.19.V-all [0] [FP] 175058788
|
||||
CellOperator = 26003
|
||||
SimOperator = 26003
|
||||
Roaming = mobile-notroaming
|
||||
Client = android-google
|
||||
TimeZone = Europe/Warsaw
|
||||
GL.Extensions = GL_AMD_compressed_ATC_texture,GL_AMD_performance_monitor,GL_ANDROID_extension_pack_es31a,GL_APPLE_texture_2D_limited_npot,GL_ARB_vertex_buffer_object,GL_EXT_YUV_target,GL_EXT_blit_framebuffer_params,GL_EXT_buffer_storage,GL_EXT_color_buffer_float,GL_EXT_color_buffer_half_float,GL_EXT_copy_image,GL_EXT_debug_label,GL_EXT_debug_marker,GL_EXT_discard_framebuffer,GL_EXT_disjoint_timer_query,GL_EXT_draw_buffers_indexed,GL_EXT_geometry_shader,GL_EXT_gpu_shader5,GL_EXT_multisampled_render_to_texture,GL_EXT_primitive_bounding_box,GL_EXT_robustness,GL_EXT_sRGB,GL_EXT_sRGB_write_control,GL_EXT_shader_io_blocks,GL_EXT_tessellation_shader,GL_EXT_texture_border_clamp,GL_EXT_texture_buffer,GL_EXT_texture_cube_map_array,GL_EXT_texture_filter_anisotropic,GL_EXT_texture_format_BGRA8888,GL_EXT_texture_norm16,GL_EXT_texture_sRGB_R8,GL_EXT_texture_sRGB_decode,GL_EXT_texture_type_2_10_10_10_REV,GL_KHR_blend_equation_advanced,GL_KHR_blend_equation_advanced_coherent,GL_KHR_debug,GL_KHR_no_error,GL_KHR_texture_compression_astc_ldr,GL_OES_EGL_image,GL_OES_EGL_image_external,GL_OES_EGL_image_external_essl3,GL_OES_EGL_sync,GL_OES_blend_equation_separate,GL_OES_blend_func_separate,GL_OES_blend_subtract,GL_OES_compressed_ETC1_RGB8_texture,GL_OES_compressed_paletted_texture,GL_OES_depth24,GL_OES_depth_texture,GL_OES_depth_texture_cube_map,GL_OES_draw_texture,GL_OES_element_index_uint,GL_OES_framebuffer_object,GL_OES_get_program_binary,GL_OES_matrix_palette,GL_OES_packed_depth_stencil,GL_OES_point_size_array,GL_OES_point_sprite,GL_OES_read_format,GL_OES_rgb8_rgba8,GL_OES_sample_shading,GL_OES_sample_variables,GL_OES_shader_image_atomic,GL_OES_shader_multisample_interpolation,GL_OES_standard_derivatives,GL_OES_stencil_wrap,GL_OES_surfaceless_context,GL_OES_texture_3D,GL_OES_texture_cube_map,GL_OES_texture_env_crossbar,GL_OES_texture_float,GL_OES_texture_float_linear,GL_OES_texture_half_float,GL_OES_texture_half_float_linear,GL_OES_texture_mirrored_repeat,GL_OES_texture_npot,GL_OES_texture_stencil8,GL_OES_texture_storage_multisample_2d_array,GL_OES_vertex_array_object,GL_OES_vertex_half_float,GL_OVR_multiview,GL_OVR_multiview2,GL_OVR_multiview_multisampled_render_to_texture,GL_QCOM_alpha_test,GL_QCOM_extended_get,GL_QCOM_tiled_rendering
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
UserReadableName = Asus Zenfone 4 (api21)
|
||||
Build.FINGERPRINT = asus/WW_ZenFone/ASUS_T00Q:5.0/LRX21V/WW_ZenFone-V5.4.2-20150922:user/release-keys
|
||||
Build.HARDWARE = redhookbay
|
||||
Build.BRAND = asus
|
||||
Build.RADIO = unknown
|
||||
Build.BOOTLOADER = unknown
|
||||
Build.DEVICE = ASUS_T00Q
|
||||
Build.VERSION.SDK_INT = 21
|
||||
Build.MODEL = ASUS_T00Q
|
||||
Build.MANUFACTURER = asus
|
||||
Build.PRODUCT = WW_ZenFone
|
||||
TouchScreen = 3
|
||||
Keyboard = 1
|
||||
Navigation = 1
|
||||
ScreenLayout = 2
|
||||
HasHardKeyboard = false
|
||||
HasFiveWayNavigation = false
|
||||
Screen.Density = 240
|
||||
Screen.Width = 480
|
||||
Screen.Height = 854
|
||||
Platforms = x86,armeabi-v7a,armeabi
|
||||
SharedLibraries = com.visionobjects.myscript.shape,com.android.future.usb.accessory,com.intel.security.lib.sepdrmjni,com.android.media.remotedisplay,com.visionobjects.myscript.hwr,com.visionobjects.im,com.google.android.media.effects,com.google.android.maps,com.intel.config,android.test.runner,com.visionobjects.myscript.inksearch,com.broadcom.bt,com.android.location.provider,com.google.widevine.software.drm,javax.obex,com.intel.camera.extensions,com.visionobjects.myscript.engine,com.intel.multidisplay,com.asus.fm,com.intel.security.service.sepmanager,com.android.mediadrm.signer,com.asus.draw
|
||||
Features = android.hardware.sensor.proximity,android.hardware.sensor.accelerometer,android.hardware.faketouch,org.cyanogenmod.appsuggest,android.hardware.usb.accessory,android.hardware.telephony.cdma,android.software.backup,android.hardware.touchscreen,android.hardware.touchscreen.multitouch,android.software.print,android.hardware.consumerir,org.cyanogenmod.partner,org.cyanogenmod.telephony,android.software.voice_recognizers,android.hardware.fingerprint,android.hardware.sensor.gyroscope,android.hardware.audio.low_latency,android.hardware.opengles.aep,android.hardware.bluetooth,android.hardware.camera.autofocus,com.google.android.feature.GOOGLE_BUILD,android.hardware.telephony.gsm,android.software.sip.voip,org.cyanogenmod.profiles,android.hardware.usb.host,com.cyanogenmod.android,android.hardware.audio.output,android.hardware.camera.flash,android.hardware.camera.front,android.hardware.sensor.hifi_sensors,android.hardware.screen.portrait,android.hardware.nfc,com.nxp.mifare,android.hardware.sensor.stepdetector,org.cyanogenmod.audio,org.cyanogenmod.theme,android.software.home_screen,android.hardware.microphone,org.cyanogenmod.statusbar,android.hardware.bluetooth_le,android.hardware.sensor.compass,android.hardware.touchscreen.multitouch.jazzhand,android.hardware.sensor.barometer,android.software.app_widgets,android.software.input_methods,android.hardware.sensor.light,android.software.device_admin,android.hardware.camera,org.cyanogenmod.hardware,android.hardware.screen.landscape,org.cyanogenmod.weather,org.cyanogenmod.performance,android.software.managed_users,android.software.webview,android.hardware.sensor.stepcounter,android.hardware.camera.capability.manual_post_processing,org.cyanogenmod.livedisplay,android.hardware.camera.any,android.hardware.camera.capability.raw,android.software.connectionservice,android.hardware.touchscreen.multitouch.distinct,android.hardware.location.network,android.software.sip,android.hardware.camera.capability.manual_sensor,android.hardware.camera.level.full,android.hardware.wifi.direct,android.software.live_wallpaper,com.google.android.feature.GOOGLE_EXPERIENCE,com.google.android.feature.EXCHANGE_6_2,org.cyanogenmod.theme.v1,org.cyanogenmod.livelockscreen,android.hardware.location.gps,android.software.midi,android.hardware.nfc.hce,android.hardware.wifi,android.hardware.location,android.hardware.telephony
|
||||
Locales = af,af_NA,af_ZA,agq,ak,ak_GH,am,am_ET,ar,ar_AE,ar_BH,ar_DJ,ar_DZ,ar_EG,ar_EH,ar_ER,ar_IL,ar_IQ,ar_JO,ar_KM,ar_KW,ar_LB,ar_LY,ar_MA,ar_MR,ar_OM,ar_PS,ar_QA,ar_SA,ar_SD,ar_SO,ar_SS,ar_SY,ar_TD,ar_TN,ar_YE,as,as_IN,asa,az,bas,be,be_BY,bem,bez,bg,bg_BG,bm,bm_ML,bn,bn_BD,bn_IN,bo,bo_CN,bo_IN,br,br_FR,brx,bs,ca,ca_AD,ca_ES,ca_FR,ca_IT,cgg,chr,cs,cs_CZ,cy,cy_GB,da,da_DK,da_GL,dav,de,de_AT,de_BE,de_CH,de_DE,de_LI,de_LU,dje,dua,dyo,dz,dz_BT,ebu,ee,ee_GH,ee_TG,el,el_CY,el_GR,en,en_AG,en_AI,en_AS,en_AU,en_BB,en_BE,en_BM,en_BS,en_BW,en_BZ,en_CA,en_CC,en_CK,en_CM,en_CX,en_DG,en_DM,en_ER,en_FJ,en_FK,en_FM,en_GB,en_GD,en_GG,en_GH,en_GI,en_GM,en_GU,en_GY,en_HK,en_IE,en_IM,en_IN,en_IO,en_JE,en_JM,en_KE,en_KI,en_KN,en_KY,en_LC,en_LR,en_LS,en_MG,en_MH,en_MO,en_MP,en_MS,en_MT,en_MU,en_MW,en_NA,en_NF,en_NG,en_NR,en_NU,en_NZ,en_PG,en_PH,en_PK,en_PN,en_PR,en_PW,en_RW,en_SB,en_SC,en_SD,en_SG,en_SH,en_SL,en_SS,en_SX,en_SZ,en_TC,en_TK,en_TO,en_TT,en_TV,en_TZ,en_UG,en_UM,en_US,en_VC,en_VG,en_VI,en_VU,en_WS,en_ZA,en_ZM,en_ZW,eo,es,es_AR,es_BO,es_CL,es_CO,es_CR,es_CU,es_DO,es_EA,es_EC,es_ES,es_GQ,es_GT,es_HN,es_IC,es_MX,es_NI,es_PA,es_PE,es_PH,es_PR,es_PY,es_SV,es_US,es_UY,es_VE,et,et_EE,eu,eu_ES,ewo,fa,fa_AF,fa_IR,ff,ff_SN,fi,fi_FI,fil,fo,fo_FO,fr,fr_BE,fr_BF,fr_BI,fr_BJ,fr_BL,fr_CA,fr_CD,fr_CF,fr_CG,fr_CH,fr_CI,fr_CM,fr_DJ,fr_DZ,fr_FR,fr_GA,fr_GF,fr_GN,fr_GP,fr_GQ,fr_HT,fr_KM,fr_LU,fr_MA,fr_MC,fr_MF,fr_MG,fr_ML,fr_MQ,fr_MR,fr_MU,fr_NC,fr_NE,fr_PF,fr_PM,fr_RE,fr_RW,fr_SC,fr_SN,fr_SY,fr_TD,fr_TG,fr_TN,fr_VU,fr_WF,fr_YT,ga,ga_IE,gl,gl_ES,gsw,gu,gu_IN,guz,gv,gv_IM,ha,haw,iw,iw_IL,hi,hi_IN,hr,hr_BA,hr_HR,hu,hu_HU,hy,hy_AM,in,in_ID,ig,ig_NG,ii,ii_CN,is,is_IS,it,it_CH,it_IT,it_SM,ja,ja_JP,jgo,jmc,ka,ka_GE,kab,kam,kde,kea,khq,ki,ki_KE,kk,kkj,kl,kl_GL,kln,km,km_KH,kn,kn_IN,ko,ko_KP,ko_KR,kok,ks,ksb,ksf,kw,kw_GB,ky,lag,lg,lg_UG,lkt,ln,ln_AO,ln_CD,ln_CF,ln_CG,lo,lo_LA,lt,lt_LT,lu,lu_CD,luo,luy,lv,lv_LV,mas,mer,mfe,mg,mg_MG,mgh,mgo,mk,mk_MK,ml,ml_IN,mn,mr,mr_IN,ms,mt,mt_MT,mua,my,my_MM,naq,nb,nb_NO,nb_SJ,nd,nd_ZW,ne,ne_IN,ne_NP,nl,nl_AW,nl_BE,nl_BQ,nl_CW,nl_NL,nl_SR,nl_SX,nmg,nn,nn_NO,nnh,nus,nyn,om,om_ET,om_KE,or,or_IN,pa,pl,pl_PL,ps,ps_AF,pt,pt_AO,pt_BR,pt_CV,pt_GW,pt_MO,pt_MZ,pt_PT,pt_ST,pt_TL,rm,rm_CH,rn,rn_BI,ro,ro_MD,ro_RO,rof,ru,ru_BY,ru_KG,ru_KZ,ru_MD,ru_RU,ru_UA,rw,rw_RW,rwk,saq,sbp,seh,ses,sg,sg_CF,shi,si,si_LK,sk,sk_SK,sl,sl_SI,sn,sn_ZW,so,so_DJ,so_ET,so_KE,so_SO,sq,sq_AL,sq_MK,sq_XK,sr,sv,sv_AX,sv_FI,sv_SE,sw,sw_KE,sw_TZ,sw_UG,swc,ta,ta_IN,ta_LK,ta_MY,ta_SG,te,te_IN,teo,th,th_TH,ti,ti_ER,ti_ET,to,to_TO,tr,tr_CY,tr_TR,twq,tzm,ug,uk,uk_UA,ur,ur_IN,ur_PK,uz,vai,vi,vi_VN,vun,xog,yav,yo,yo_BJ,yo_NG,zgh,zh,zu,zu_ZA
|
||||
Client = android-google
|
||||
GSF.version = 10548448
|
||||
Vending.version = 80798000
|
||||
CellOperator = 310260
|
||||
SimOperator = 310260
|
||||
Roaming = mobile-notroaming
|
||||
TimeZone = Europe/Moscow
|
||||
GL.Version = 131072
|
||||
GL.Extensions = GL_AMD_compressed_ATC_texture,GL_AMD_performance_monitor,GL_ANDROID_extension_pack_es31a,GL_APPLE_texture_2D_limited_npot,GL_ARB_vertex_buffer_object,GL_ARM_shader_framebuffer_fetch_depth_stencil,GL_EXT_YUV_target,GL_EXT_blit_framebuffer_params,GL_EXT_buffer_storage,GL_EXT_color_buffer_float,GL_EXT_color_buffer_half_float,GL_EXT_copy_image,GL_EXT_debug_label,GL_EXT_debug_marker,GL_EXT_discard_framebuffer,GL_EXT_disjoint_timer_query,GL_EXT_draw_buffers_indexed,GL_EXT_geometry_shader,GL_EXT_gpu_shader5,GL_EXT_multisampled_render_to_texture,GL_EXT_primitive_bounding_box,GL_EXT_robustness,GL_EXT_sRGB,GL_EXT_sRGB_write_control,GL_EXT_shader_framebuffer_fetch,GL_EXT_shader_io_blocks,GL_EXT_tessellation_shader,GL_EXT_texture_border_clamp,GL_EXT_texture_buffer,GL_EXT_texture_cube_map_array,GL_EXT_texture_filter_anisotropic,GL_EXT_texture_format_BGRA8888,GL_EXT_texture_norm16,GL_EXT_texture_sRGB_R8,GL_EXT_texture_sRGB_decode,GL_EXT_texture_type_2_10_10_10_REV,GL_KHR_blend_equation_advanced,GL_KHR_blend_equation_advanced_coherent,GL_KHR_debug,GL_KHR_no_error,GL_KHR_texture_compression_astc_hdr,GL_KHR_texture_compression_astc_ldr,GL_OES_EGL_image,GL_OES_EGL_image_external,GL_OES_EGL_sync,GL_OES_blend_equation_separate,GL_OES_blend_func_separate,GL_OES_blend_subtract,GL_OES_compressed_ETC1_RGB8_texture,GL_OES_compressed_paletted_texture,GL_OES_depth24,GL_OES_depth_texture,GL_OES_depth_texture_cube_map,GL_OES_draw_texture,GL_OES_element_index_uint,GL_OES_framebuffer_object,GL_OES_get_program_binary,GL_OES_matrix_palette,GL_OES_packed_depth_stencil,GL_OES_point_size_array,GL_OES_point_sprite,GL_OES_read_format,GL_OES_rgb8_rgba8,GL_OES_sample_shading,GL_OES_sample_variables,GL_OES_shader_image_atomic,GL_OES_shader_multisample_interpolation,GL_OES_standard_derivatives,GL_OES_stencil_wrap,GL_OES_surfaceless_context,GL_OES_texture_3D,GL_OES_texture_compression_astc,GL_OES_texture_cube_map,GL_OES_texture_env_crossbar,GL_OES_texture_float,GL_OES_texture_float_linear,GL_OES_texture_half_float,GL_OES_texture_half_float_linear,GL_OES_texture_mirrored_repeat,GL_OES_texture_npot,GL_OES_texture_stencil8,GL_OES_texture_storage_multisample_2d_array,GL_OES_vertex_array_object,GL_OES_vertex_half_float,GL_OVR_multiview,GL_OVR_multiview2,GL_OVR_multiview_multisampled_render_to_texture,GL_QCOM_alpha_test,GL_QCOM_extended_get,GL_QCOM_tiled_rendering,GL_EXT_multi_draw_arrays,GL_EXT_shader_texture_lod,GL_IMG_multisampled_render_to_texture,GL_IMG_program_binary,GL_IMG_read_format,GL_IMG_shader_binary,GL_IMG_texture_compression_pvrtc,GL_IMG_texture_format_BGRA8888,GL_IMG_texture_npot,GL_IMG_vertex_array_object,GL_OES_byte_coordinates,GL_OES_extended_matrix_palette,GL_OES_fixed_point,GL_OES_fragment_precision_high,GL_OES_mapbuffer,GL_OES_matrix_get,GL_OES_query_matrix,GL_OES_required_internalformat,GL_OES_single_precision,GL_OES_stencil8
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
UserReadableName = Google Pixel 2 (api27)
|
||||
Build.HARDWARE = walleye
|
||||
Build.RADIO = unknown
|
||||
Build.BOOTLOADER = mw8998-002.0066.00
|
||||
Build.FINGERPRINT = google/walleye/walleye:8.1.0/OPM1.171019.011/4448085:user/release-keys
|
||||
Build.BRAND = google
|
||||
Build.DEVICE = walleye
|
||||
Build.VERSION.SDK_INT = 27
|
||||
Build.MODEL = Pixel 2
|
||||
Build.MANUFACTURER = Google
|
||||
Build.PRODUCT = walleye
|
||||
Build.ID = OPM1.171019.011
|
||||
Build.VERSION.RELEASE = 8.1.0
|
||||
TouchScreen = 3
|
||||
Keyboard = 1
|
||||
Navigation = 1
|
||||
ScreenLayout = 2
|
||||
HasHardKeyboard = false
|
||||
HasFiveWayNavigation = false
|
||||
GL.Version = 196610
|
||||
Screen.Density = 420
|
||||
Screen.Width = 1080
|
||||
Screen.Height = 1794
|
||||
Platforms = arm64-v8a,armeabi-v7a,armeabi
|
||||
SharedLibraries = android.ext.services,android.ext.shared,android.test.mock,android.test.runner,com.android.future.usb.accessory,com.android.ims.rcsmanager,com.android.location.provider,com.android.media.remotedisplay,com.android.mediadrm.signer,com.google.android.camera.experimental2017,com.google.android.dialer.support,com.google.android.gms,com.google.android.hardwareinfo,com.google.android.maps,com.google.android.media.effects,com.google.libletango_device,com.google.vr.platform,com.qti.vzw.ims.internal,com.qualcomm.embmslibrary,com.qualcomm.qcrilhook,com.qualcomm.qti.QtiTelephonyServicelibrary,com.quicinc.cne,com.quicinc.cneapiclient,com.verizon.embms,com.verizon.provider,com.vzw.apnlib,javax.obex,org.apache.http.legacy
|
||||
Features = android.hardware.audio.low_latency,android.hardware.audio.output,android.hardware.audio.pro,android.hardware.bluetooth,android.hardware.bluetooth_le,android.hardware.camera,android.hardware.camera.any,android.hardware.camera.autofocus,android.hardware.camera.capability.manual_post_processing,android.hardware.camera.capability.manual_sensor,android.hardware.camera.capability.raw,android.hardware.camera.flash,android.hardware.camera.front,android.hardware.camera.level.full,android.hardware.faketouch,android.hardware.fingerprint,android.hardware.location,android.hardware.location.gps,android.hardware.location.network,android.hardware.microphone,android.hardware.nfc,android.hardware.nfc.any,android.hardware.nfc.hce,android.hardware.nfc.hcef,android.hardware.opengles.aep,android.hardware.ram.normal,android.hardware.screen.landscape,android.hardware.screen.portrait,android.hardware.sensor.accelerometer,android.hardware.sensor.barometer,android.hardware.sensor.compass,android.hardware.sensor.gyroscope,android.hardware.sensor.hifi_sensors,android.hardware.sensor.light,android.hardware.sensor.proximity,android.hardware.sensor.stepcounter,android.hardware.sensor.stepdetector,android.hardware.telephony,android.hardware.telephony.carrierlock,android.hardware.telephony.cdma,android.hardware.telephony.euicc,android.hardware.telephony.gsm,android.hardware.touchscreen,android.hardware.touchscreen.multitouch,android.hardware.touchscreen.multitouch.distinct,android.hardware.touchscreen.multitouch.jazzhand,android.hardware.usb.accessory,android.hardware.usb.host,android.hardware.vr.headtracking,android.hardware.vr.high_performance,android.hardware.vulkan.compute,android.hardware.vulkan.level,android.hardware.vulkan.version,android.hardware.wifi,android.hardware.wifi.aware,android.hardware.wifi.direct,android.hardware.wifi.passpoint,android.software.activities_on_secondary_displays,android.software.app_widgets,android.software.autofill,android.software.backup,android.software.companion_device_setup,android.software.connectionservice,android.software.cts,android.software.device_admin,android.software.file_based_encryption,android.software.home_screen,android.software.input_methods,android.software.live_wallpaper,android.software.managed_users,android.software.midi,android.software.picture_in_picture,android.software.print,android.software.securely_removes_users,android.software.sip,android.software.sip.voip,android.software.voice_recognizers,android.software.vr.mode,android.software.webview,com.google.android.apps.dialer.SUPPORTED,com.google.android.apps.photos.NEXUS_PRELOAD,com.google.android.apps.photos.PIXEL_2017_PRELOAD,com.google.android.apps.photos.nexus_preload,com.google.android.feature.EXCHANGE_6_2,com.google.android.feature.GOOGLE_BUILD,com.google.android.feature.GOOGLE_EXPERIENCE,com.google.android.feature.PIXEL_2017_EXPERIENCE,com.google.android.feature.PIXEL_EXPERIENCE,com.google.android.feature.ZERO_TOUCH,com.google.hardware.camera.easel,com.verizon.hardware.telephony.ehrpd,com.verizon.hardware.telephony.lte
|
||||
Locales = af,af_ZA,am,am_ET,ar,ar_EG,ar_XB,ast,az,be,bg,bg_BG,bn,bs,ca,ca_ES,cs,cs_CZ,da,da_DK,de,de_DE,el,el_GR,en,en_AU,en_CA,en_GB,en_IN,en_US,en_XA,es,es_ES,es_US,et,eu,fa,fa_IR,fi,fi_FI,fil,fil_PH,fr,fr_BE,fr_CA,fr_FR,gl,gu,hi,hi_IN,hr,hr_HR,hu,hu_HU,hy,in,in_ID,is,it,it_IT,iw,iw_IL,ja,ja_JP,ka,kk,km,kn,ko,ko_KR,ky,lo,lt,lt_LT,lv,lv_LV,mk,ml,mn,mr,ms,ms_MY,my,nb,nb_NO,ne,nl,nl_NL,pa,pl,pl_PL,pt,pt_BR,pt_PT,ro,ro_RO,ru,ru_RU,si,sk,sk_SK,sl,sl_SI,sq,sr,sr_Latn,sr_RS,sv,sv_SE,sw,sw_TZ,ta,te,th,th_TH,tr,tr_TR,uk,uk_UA,ur,uz,vi,vi_VN,zh,zh_CN,zh_HK,zh_TW,zu,zu_ZA
|
||||
GSF.version = 11951940
|
||||
Vending.version = 80853900
|
||||
Vending.versionString = 8.5.39.W-all [0] [PR] 178322352
|
||||
CellOperator = 310260
|
||||
SimOperator = 310260
|
||||
TimeZone = America/New_York
|
||||
GL.Extensions = GL_AMD_compressed_ATC_texture,GL_AMD_performance_monitor,GL_ANDROID_extension_pack_es31a,GL_APPLE_texture_2D_limited_npot,GL_ARB_vertex_buffer_object,GL_ARM_shader_framebuffer_fetch_depth_stencil,GL_EXT_EGL_image_array,GL_EXT_YUV_target,GL_EXT_blit_framebuffer_params,GL_EXT_buffer_storage,GL_EXT_clip_cull_distance,GL_EXT_color_buffer_float,GL_EXT_color_buffer_half_float,GL_EXT_copy_image,GL_EXT_debug_label,GL_EXT_debug_marker,GL_EXT_discard_framebuffer,GL_EXT_disjoint_timer_query,GL_EXT_draw_buffers_indexed,GL_EXT_external_buffer,GL_EXT_geometry_shader,GL_EXT_gpu_shader5,GL_EXT_multisampled_render_to_texture,GL_EXT_multisampled_render_to_texture2,GL_EXT_primitive_bounding_box,GL_EXT_protected_textures,GL_EXT_robustness,GL_EXT_sRGB,GL_EXT_sRGB_write_control,GL_EXT_shader_framebuffer_fetch,GL_EXT_shader_io_blocks,GL_EXT_shader_non_constant_global_initializers,GL_EXT_tessellation_shader,GL_EXT_texture_border_clamp,GL_EXT_texture_buffer,GL_EXT_texture_cube_map_array,GL_EXT_texture_filter_anisotropic,GL_EXT_texture_format_BGRA8888,GL_EXT_texture_norm16,GL_EXT_texture_sRGB_R8,GL_EXT_texture_sRGB_decode,GL_EXT_texture_type_2_10_10_10_REV,GL_KHR_blend_equation_advanced,GL_KHR_blend_equation_advanced_coherent,GL_KHR_debug,GL_KHR_no_error,GL_KHR_texture_compression_astc_hdr,GL_KHR_texture_compression_astc_ldr,GL_NV_shader_noperspective_interpolation,GL_OES_EGL_image,GL_OES_EGL_image_external,GL_OES_EGL_image_external_essl3,GL_OES_EGL_sync,GL_OES_blend_equation_separate,GL_OES_blend_func_separate,GL_OES_blend_subtract,GL_OES_compressed_ETC1_RGB8_texture,GL_OES_compressed_paletted_texture,GL_OES_depth24,GL_OES_depth_texture,GL_OES_depth_texture_cube_map,GL_OES_draw_texture,GL_OES_element_index_uint,GL_OES_framebuffer_object,GL_OES_get_program_binary,GL_OES_matrix_palette,GL_OES_packed_depth_stencil,GL_OES_point_size_array,GL_OES_point_sprite,GL_OES_read_format,GL_OES_rgb8_rgba8,GL_OES_sample_shading,GL_OES_sample_variables,GL_OES_shader_image_atomic,GL_OES_shader_multisample_interpolation,GL_OES_standard_derivatives,GL_OES_stencil_wrap,GL_OES_surfaceless_context,GL_OES_texture_3D,GL_OES_texture_compression_astc,GL_OES_texture_cube_map,GL_OES_texture_env_crossbar,GL_OES_texture_float,GL_OES_texture_float_linear,GL_OES_texture_half_float,GL_OES_texture_half_float_linear,GL_OES_texture_mirrored_repeat,GL_OES_texture_npot,GL_OES_texture_stencil8,GL_OES_texture_storage_multisample_2d_array,GL_OES_vertex_array_object,GL_OES_vertex_half_float,GL_OVR_multiview,GL_OVR_multiview2,GL_OVR_multiview_multisampled_render_to_texture,GL_QCOM_alpha_test,GL_QCOM_extended_get,GL_QCOM_framebuffer_foveated,GL_QCOM_shader_framebuffer_fetch_noncoherent,GL_QCOM_tiled_rendering
|
||||
Roaming = mobile-notroaming
|
||||
Client = android-google
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
UserReadableName = WeTek Play 2 Smart TV (api 22)
|
||||
Build.HARDWARE = amlogic
|
||||
Build.RADIO = unknown
|
||||
Build.BOOTLOADER = unknown
|
||||
Build.FINGERPRINT = WeTek/wetekplay2/wetekplay2:5.1.1/LMY47V/20170119:user/release-keys
|
||||
Build.BRAND = WeTek
|
||||
Build.DEVICE = wetekplay2
|
||||
Build.VERSION.SDK_INT = 22
|
||||
Build.MODEL = Play 2
|
||||
Build.MANUFACTURER = WeTek
|
||||
Build.PRODUCT = wetekplay2
|
||||
TouchScreen = 1
|
||||
Keyboard = 1
|
||||
Navigation = 2
|
||||
ScreenLayout = 4
|
||||
HasHardKeyboard = false
|
||||
HasFiveWayNavigation = true
|
||||
Screen.Density = 240
|
||||
Screen.Width = 1920
|
||||
Screen.Height = 1080
|
||||
Platforms = armeabi-v7a,armeabi
|
||||
SharedLibraries = com.google.widevine.software.drm,com.google.android.media.effects,com.android.location.provider,AmlogicPPPoE,com.android.future.usb.accessory,javax.obex,com.google.android.gms,android.test.runner,com.google.android.maps,com.android.media.remotedisplay,com.android.mediadrm.signer
|
||||
Features = android.hardware.sensor.proximity,android.hardware.sensor.accelerometer,android.hardware.faketouch,org.cyanogenmod.appsuggest,android.hardware.usb.accessory,android.hardware.telephony.cdma,android.software.backup,android.hardware.touchscreen,android.hardware.touchscreen.multitouch,android.software.print,android.hardware.consumerir,org.cyanogenmod.partner,org.cyanogenmod.telephony,android.software.voice_recognizers,android.hardware.fingerprint,android.hardware.sensor.gyroscope,android.hardware.audio.low_latency,android.hardware.opengles.aep,android.hardware.bluetooth,android.hardware.camera.autofocus,com.google.android.feature.GOOGLE_BUILD,android.hardware.telephony.gsm,android.software.sip.voip,org.cyanogenmod.profiles,android.hardware.usb.host,com.cyanogenmod.android,android.hardware.audio.output,android.hardware.camera.flash,android.hardware.camera.front,android.hardware.sensor.hifi_sensors,android.hardware.screen.portrait,android.hardware.nfc,com.nxp.mifare,android.hardware.sensor.stepdetector,org.cyanogenmod.audio,org.cyanogenmod.theme,android.software.home_screen,android.hardware.microphone,org.cyanogenmod.statusbar,android.hardware.bluetooth_le,android.hardware.sensor.compass,android.hardware.touchscreen.multitouch.jazzhand,android.hardware.sensor.barometer,android.software.app_widgets,android.software.input_methods,android.hardware.sensor.light,android.software.device_admin,android.hardware.camera,org.cyanogenmod.hardware,android.hardware.screen.landscape,org.cyanogenmod.weather,org.cyanogenmod.performance,android.software.managed_users,android.software.webview,android.hardware.sensor.stepcounter,android.hardware.camera.capability.manual_post_processing,org.cyanogenmod.livedisplay,android.hardware.camera.any,android.hardware.camera.capability.raw,android.software.connectionservice,android.hardware.touchscreen.multitouch.distinct,android.hardware.location.network,android.software.sip,android.hardware.camera.capability.manual_sensor,android.hardware.camera.level.full,android.hardware.wifi.direct,android.software.live_wallpaper,com.google.android.feature.GOOGLE_EXPERIENCE,com.google.android.feature.EXCHANGE_6_2,org.cyanogenmod.theme.v1,org.cyanogenmod.livelockscreen,android.hardware.location.gps,android.software.midi,android.hardware.nfc.hce,android.hardware.wifi,android.hardware.location,android.hardware.telephony
|
||||
Locales = af,af_NA,af_ZA,agq,ak,ak_GH,am,am_ET,ar,ar_AE,ar_BH,ar_DJ,ar_DZ,ar_EG,ar_EH,ar_ER,ar_IL,ar_IQ,ar_JO,ar_KM,ar_KW,ar_LB,ar_LY,ar_MA,ar_MR,ar_OM,ar_PS,ar_QA,ar_SA,ar_SD,ar_SO,ar_SS,ar_SY,ar_TD,ar_TN,ar_YE,as,as_IN,asa,az,bas,be,be_BY,bem,bez,bg,bg_BG,bm,bm_ML,bn,bn_BD,bn_IN,bo,bo_CN,bo_IN,br,br_FR,brx,bs,ca,ca_AD,ca_ES,ca_FR,ca_IT,cgg,chr,cs,cs_CZ,cy,cy_GB,da,da_DK,da_GL,dav,de,de_AT,de_BE,de_CH,de_DE,de_LI,de_LU,dje,dua,dyo,dz,dz_BT,ebu,ee,ee_GH,ee_TG,el,el_CY,el_GR,en,en_AG,en_AI,en_AS,en_AU,en_BB,en_BE,en_BM,en_BS,en_BW,en_BZ,en_CA,en_CC,en_CK,en_CM,en_CX,en_DG,en_DM,en_ER,en_FJ,en_FK,en_FM,en_GB,en_GD,en_GG,en_GH,en_GI,en_GM,en_GU,en_GY,en_HK,en_IE,en_IM,en_IN,en_IO,en_JE,en_JM,en_KE,en_KI,en_KN,en_KY,en_LC,en_LR,en_LS,en_MG,en_MH,en_MO,en_MP,en_MS,en_MT,en_MU,en_MW,en_NA,en_NF,en_NG,en_NR,en_NU,en_NZ,en_PG,en_PH,en_PK,en_PN,en_PR,en_PW,en_RW,en_SB,en_SC,en_SD,en_SG,en_SH,en_SL,en_SS,en_SX,en_SZ,en_TC,en_TK,en_TO,en_TT,en_TV,en_TZ,en_UG,en_UM,en_US,en_VC,en_VG,en_VI,en_VU,en_WS,en_ZA,en_ZM,en_ZW,eo,es,es_AR,es_BO,es_CL,es_CO,es_CR,es_CU,es_DO,es_EA,es_EC,es_ES,es_GQ,es_GT,es_HN,es_IC,es_MX,es_NI,es_PA,es_PE,es_PH,es_PR,es_PY,es_SV,es_US,es_UY,es_VE,et,et_EE,eu,eu_ES,ewo,fa,fa_AF,fa_IR,ff,ff_SN,fi,fi_FI,fil,fo,fo_FO,fr,fr_BE,fr_BF,fr_BI,fr_BJ,fr_BL,fr_CA,fr_CD,fr_CF,fr_CG,fr_CH,fr_CI,fr_CM,fr_DJ,fr_DZ,fr_FR,fr_GA,fr_GF,fr_GN,fr_GP,fr_GQ,fr_HT,fr_KM,fr_LU,fr_MA,fr_MC,fr_MF,fr_MG,fr_ML,fr_MQ,fr_MR,fr_MU,fr_NC,fr_NE,fr_PF,fr_PM,fr_RE,fr_RW,fr_SC,fr_SN,fr_SY,fr_TD,fr_TG,fr_TN,fr_VU,fr_WF,fr_YT,ga,ga_IE,gl,gl_ES,gsw,gu,gu_IN,guz,gv,gv_IM,ha,haw,iw,iw_IL,hi,hi_IN,hr,hr_BA,hr_HR,hu,hu_HU,hy,hy_AM,in,in_ID,ig,ig_NG,ii,ii_CN,is,is_IS,it,it_CH,it_IT,it_SM,ja,ja_JP,jgo,jmc,ka,ka_GE,kab,kam,kde,kea,khq,ki,ki_KE,kk,kkj,kl,kl_GL,kln,km,km_KH,kn,kn_IN,ko,ko_KP,ko_KR,kok,ks,ksb,ksf,kw,kw_GB,ky,lag,lg,lg_UG,lkt,ln,ln_AO,ln_CD,ln_CF,ln_CG,lo,lo_LA,lt,lt_LT,lu,lu_CD,luo,luy,lv,lv_LV,mas,mer,mfe,mg,mg_MG,mgh,mgo,mk,mk_MK,ml,ml_IN,mn,mr,mr_IN,ms,mt,mt_MT,mua,my,my_MM,naq,nb,nb_NO,nb_SJ,nd,nd_ZW,ne,ne_IN,ne_NP,nl,nl_AW,nl_BE,nl_BQ,nl_CW,nl_NL,nl_SR,nl_SX,nmg,nn,nn_NO,nnh,nus,nyn,om,om_ET,om_KE,or,or_IN,pa,pl,pl_PL,ps,ps_AF,pt,pt_AO,pt_BR,pt_CV,pt_GW,pt_MO,pt_MZ,pt_PT,pt_ST,pt_TL,rm,rm_CH,rn,rn_BI,ro,ro_MD,ro_RO,rof,ru,ru_BY,ru_KG,ru_KZ,ru_MD,ru_RU,ru_UA,rw,rw_RW,rwk,saq,sbp,seh,ses,sg,sg_CF,shi,si,si_LK,sk,sk_SK,sl,sl_SI,sn,sn_ZW,so,so_DJ,so_ET,so_KE,so_SO,sq,sq_AL,sq_MK,sq_XK,sr,sv,sv_AX,sv_FI,sv_SE,sw,sw_KE,sw_TZ,sw_UG,swc,ta,ta_IN,ta_LK,ta_MY,ta_SG,te,te_IN,teo,th,th_TH,ti,ti_ER,ti_ET,to,to_TO,tr,tr_CY,tr_TR,twq,tzm,ug,uk,uk_UA,ur,ur_IN,ur_PK,uz,vai,vi,vi_VN,vun,xog,yav,yo,yo_BJ,yo_NG,zgh,zh,zu,zu_ZA
|
||||
Roaming = mobile-notroaming
|
||||
TimeZone = Europe/Berlin
|
||||
GSF.version = 11055448
|
||||
Vending.version = 80798000
|
||||
GL.Extensions = GL_AMD_compressed_ATC_texture,GL_AMD_performance_monitor,GL_ANDROID_extension_pack_es31a,GL_APPLE_texture_2D_limited_npot,GL_ARB_vertex_buffer_object,GL_ARM_shader_framebuffer_fetch_depth_stencil,GL_EXT_YUV_target,GL_EXT_blit_framebuffer_params,GL_EXT_buffer_storage,GL_EXT_color_buffer_float,GL_EXT_color_buffer_half_float,GL_EXT_copy_image,GL_EXT_debug_label,GL_EXT_debug_marker,GL_EXT_discard_framebuffer,GL_EXT_disjoint_timer_query,GL_EXT_draw_buffers_indexed,GL_EXT_geometry_shader,GL_EXT_gpu_shader5,GL_EXT_multisampled_render_to_texture,GL_EXT_primitive_bounding_box,GL_EXT_robustness,GL_EXT_sRGB,GL_EXT_sRGB_write_control,GL_EXT_shader_framebuffer_fetch,GL_EXT_shader_io_blocks,GL_EXT_tessellation_shader,GL_EXT_texture_border_clamp,GL_EXT_texture_buffer,GL_EXT_texture_cube_map_array,GL_EXT_texture_filter_anisotropic,GL_EXT_texture_format_BGRA8888,GL_EXT_texture_norm16,GL_EXT_texture_sRGB_R8,GL_EXT_texture_sRGB_decode,GL_EXT_texture_type_2_10_10_10_REV,GL_KHR_blend_equation_advanced,GL_KHR_blend_equation_advanced_coherent,GL_KHR_debug,GL_KHR_no_error,GL_KHR_texture_compression_astc_hdr,GL_KHR_texture_compression_astc_ldr,GL_OES_EGL_image,GL_OES_EGL_image_external,GL_OES_EGL_sync,GL_OES_blend_equation_separate,GL_OES_blend_func_separate,GL_OES_blend_subtract,GL_OES_compressed_ETC1_RGB8_texture,GL_OES_compressed_paletted_texture,GL_OES_depth24,GL_OES_depth_texture,GL_OES_depth_texture_cube_map,GL_OES_draw_texture,GL_OES_element_index_uint,GL_OES_framebuffer_object,GL_OES_get_program_binary,GL_OES_matrix_palette,GL_OES_packed_depth_stencil,GL_OES_point_size_array,GL_OES_point_sprite,GL_OES_read_format,GL_OES_rgb8_rgba8,GL_OES_sample_shading,GL_OES_sample_variables,GL_OES_shader_image_atomic,GL_OES_shader_multisample_interpolation,GL_OES_standard_derivatives,GL_OES_stencil_wrap,GL_OES_surfaceless_context,GL_OES_texture_3D,GL_OES_texture_compression_astc,GL_OES_texture_cube_map,GL_OES_texture_env_crossbar,GL_OES_texture_float,GL_OES_texture_float_linear,GL_OES_texture_half_float,GL_OES_texture_half_float_linear,GL_OES_texture_mirrored_repeat,GL_OES_texture_npot,GL_OES_texture_stencil8,GL_OES_texture_storage_multisample_2d_array,GL_OES_vertex_array_object,GL_OES_vertex_half_float,GL_OVR_multiview,GL_OVR_multiview2,GL_OVR_multiview_multisampled_render_to_texture,GL_QCOM_alpha_test,GL_QCOM_extended_get,GL_QCOM_tiled_rendering,GL_EXT_multi_draw_arrays,GL_EXT_shader_texture_lod,GL_IMG_multisampled_render_to_texture,GL_IMG_program_binary,GL_IMG_read_format,GL_IMG_shader_binary,GL_IMG_texture_compression_pvrtc,GL_IMG_texture_format_BGRA8888,GL_IMG_texture_npot,GL_IMG_vertex_array_object,GL_OES_byte_coordinates,GL_OES_extended_matrix_palette,GL_OES_fixed_point,GL_OES_fragment_precision_high,GL_OES_mapbuffer,GL_OES_matrix_get,GL_OES_query_matrix,GL_OES_required_internalformat,GL_OES_single_precision,GL_OES_stencil8
|
||||
CellOperator = 310260
|
||||
Client = android-google
|
||||
GL.Version = 131072
|
||||
SimOperator = 310260
|
||||
9
extensions/shared/proguard-rules.pro
vendored
9
extensions/shared/proguard-rules.pro
vendored
|
|
@ -4,6 +4,12 @@
|
|||
-keep class app.revanced.** {
|
||||
*;
|
||||
}
|
||||
-keep class com.aurora.** {
|
||||
*;
|
||||
}
|
||||
-keep class com.dragons.** {
|
||||
*;
|
||||
}
|
||||
-keep class com.liskovsoft.** {
|
||||
*;
|
||||
}
|
||||
|
|
@ -49,6 +55,3 @@
|
|||
# R8 full mode strips generic signatures from return types if not kept.
|
||||
-if interface * { @retrofit2.http.* public *** *(...); }
|
||||
-keep,allowoptimization,allowshrinking,allowobfuscation class <3>
|
||||
|
||||
# With R8 full mode generic signatures are stripped for classes that are not kept.
|
||||
-keep,allowobfuscation,allowshrinking class retrofit2.Response
|
||||
|
|
|
|||
|
|
@ -198,6 +198,7 @@ public class Settings extends BaseSettings {
|
|||
public static final BooleanSetting DISABLE_MUSIC_VIDEO_IN_ALBUM = new BooleanSetting("revanced_disable_music_video_in_album", FALSE, true);
|
||||
public static final EnumSetting<RedirectType> DISABLE_MUSIC_VIDEO_IN_ALBUM_REDIRECT_TYPE = new EnumSetting<>("revanced_disable_music_video_in_album_redirect_type", RedirectType.REDIRECT, true);
|
||||
public static final BooleanSetting SETTINGS_IMPORT_EXPORT = new BooleanSetting("revanced_settings_import_export", FALSE, false);
|
||||
public static final BooleanSetting SPOOF_STREAMING_DATA_NO_SDK_AUTH_TOKEN_ABOUT = new BooleanSetting("revanced_spoof_streaming_data_no_sdk_auth_token_about", FALSE, false);
|
||||
public static final BooleanSetting SPOOF_STREAMING_DATA_VR_AUTH_TOKEN_ABOUT = new BooleanSetting("revanced_spoof_streaming_data_vr_auth_token_about", FALSE, false);
|
||||
public static final BooleanSetting APP_INFO = new BooleanSetting("revanced_app_info", FALSE, false);
|
||||
|
||||
|
|
@ -296,6 +297,7 @@ public class Settings extends BaseSettings {
|
|||
SETTINGS_IMPORT_EXPORT.key,
|
||||
SPOOF_APP_VERSION_TARGET.key,
|
||||
SPOOF_STREAMING_DATA_DEFAULT_CLIENT.key,
|
||||
SPOOF_STREAMING_DATA_NO_SDK_AUTH_TOKEN_ABOUT.key,
|
||||
SPOOF_STREAMING_DATA_VR_AUTH_TOKEN_ABOUT.key,
|
||||
WATCH_HISTORY_TYPE.key,
|
||||
};
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@ import static app.revanced.extension.music.settings.Settings.SB_API_URL;
|
|||
import static app.revanced.extension.music.settings.Settings.SETTINGS_IMPORT_EXPORT;
|
||||
import static app.revanced.extension.music.settings.Settings.SPOOF_APP_VERSION_TARGET;
|
||||
import static app.revanced.extension.music.settings.Settings.SPOOF_STREAMING_DATA_DEFAULT_CLIENT;
|
||||
import static app.revanced.extension.music.settings.Settings.SPOOF_STREAMING_DATA_NO_SDK_AUTH_TOKEN_ABOUT;
|
||||
import static app.revanced.extension.music.settings.Settings.SPOOF_STREAMING_DATA_VR_AUTH_TOKEN_ABOUT;
|
||||
import static app.revanced.extension.music.settings.Settings.WATCH_HISTORY_TYPE;
|
||||
import static app.revanced.extension.music.utils.ExtendedUtils.getDialogBuilder;
|
||||
|
|
@ -169,8 +170,10 @@ public class ReVancedPreferenceFragment extends PreferenceFragment {
|
|||
YouTubeDataAPIDialogBuilder.showDialog(mActivity);
|
||||
} else if (settings.equals(REPLACE_NAVIGATION_BUTTON_ABOUT)) {
|
||||
ResettableListPreference.showDialog(mActivity, CHANGE_START_PAGE, 0);
|
||||
} else if (settings.equals(SPOOF_STREAMING_DATA_NO_SDK_AUTH_TOKEN_ABOUT)) {
|
||||
SpoofStreamingDataAuthTokenDialogBuilder.showNoSDKDialog(mActivity);
|
||||
} else if (settings.equals(SPOOF_STREAMING_DATA_VR_AUTH_TOKEN_ABOUT)) {
|
||||
SpoofStreamingDataVRAuthTokenDialogBuilder.showDialog(mActivity);
|
||||
SpoofStreamingDataAuthTokenDialogBuilder.showVRDialog(mActivity);
|
||||
} else {
|
||||
Logger.printDebug(() -> "Failed to find the right value: " + dataString);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,72 @@
|
|||
package app.revanced.extension.music.settings.preference;
|
||||
|
||||
import static app.revanced.extension.shared.utils.StringRef.str;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.app.AlertDialog;
|
||||
|
||||
import app.revanced.extension.shared.patches.auth.YouTubeAuthPatch;
|
||||
import app.revanced.extension.shared.patches.auth.YouTubeVRAuthPatch;
|
||||
import app.revanced.extension.shared.utils.IntentUtils;
|
||||
import app.revanced.extension.shared.utils.Utils;
|
||||
|
||||
public class SpoofStreamingDataAuthTokenDialogBuilder {
|
||||
|
||||
public static void showNoSDKDialog(Activity mActivity) {
|
||||
AlertDialog.Builder builder = Utils.getDialogBuilder(mActivity);
|
||||
|
||||
String dialogTitle =
|
||||
str("revanced_spoof_streaming_data_no_sdk_auth_token_dialog_title");
|
||||
String dialogMessage =
|
||||
str("revanced_spoof_streaming_data_no_sdk_auth_token_dialog_message");
|
||||
String resetButtonText =
|
||||
str("revanced_spoof_streaming_data_no_sdk_auth_token_dialog_reset_text");
|
||||
String okButtonText =
|
||||
str("revanced_spoof_streaming_data_no_sdk_auth_token_dialog_get_authorization_token_text");
|
||||
|
||||
builder.setTitle(dialogTitle);
|
||||
builder.setMessage(dialogMessage);
|
||||
builder.setNeutralButton(resetButtonText, (dialog, id) -> YouTubeAuthPatch.clearAll());
|
||||
builder.setPositiveButton(okButtonText, (dialog, id) -> IntentUtils.launchWebViewActivity(
|
||||
mActivity,
|
||||
true,
|
||||
true,
|
||||
false,
|
||||
false,
|
||||
true,
|
||||
"https://accounts.google.com/EmbeddedSetup"
|
||||
));
|
||||
builder.show();
|
||||
}
|
||||
|
||||
public static void showVRDialog(Activity mActivity) {
|
||||
AlertDialog.Builder builder = Utils.getDialogBuilder(mActivity);
|
||||
|
||||
String dialogTitle =
|
||||
str("revanced_spoof_streaming_data_vr_auth_token_dialog_title");
|
||||
String dialogMessage =
|
||||
str("revanced_spoof_streaming_data_vr_auth_token_dialog_message");
|
||||
String resetButtonText =
|
||||
str("revanced_spoof_streaming_data_vr_auth_token_dialog_reset_text");
|
||||
|
||||
builder.setTitle(dialogTitle);
|
||||
builder.setMessage(dialogMessage);
|
||||
builder.setNeutralButton(resetButtonText, (dialog, id) -> YouTubeVRAuthPatch.clearAll());
|
||||
|
||||
if (YouTubeVRAuthPatch.isDeviceCodeAvailable()) {
|
||||
String okButtonText =
|
||||
str("revanced_spoof_streaming_data_vr_auth_token_dialog_get_authorization_token_text");
|
||||
builder.setPositiveButton(okButtonText, (dialog, id) -> {
|
||||
YouTubeVRAuthPatch.setRefreshToken();
|
||||
YouTubeVRAuthPatch.setAccessToken(true);
|
||||
});
|
||||
} else {
|
||||
String okButtonText =
|
||||
str("revanced_spoof_streaming_data_vr_auth_token_dialog_get_activation_code_text");
|
||||
builder.setPositiveButton(okButtonText, (dialog, id) -> {
|
||||
YouTubeVRAuthPatch.setActivationCode(mActivity);
|
||||
});
|
||||
}
|
||||
builder.show();
|
||||
}
|
||||
}
|
||||
|
|
@ -1,43 +0,0 @@
|
|||
package app.revanced.extension.music.settings.preference;
|
||||
|
||||
import static app.revanced.extension.shared.utils.StringRef.str;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.app.AlertDialog;
|
||||
|
||||
import app.revanced.extension.shared.patches.auth.AuthPatch;
|
||||
import app.revanced.extension.shared.utils.Utils;
|
||||
|
||||
public class SpoofStreamingDataVRAuthTokenDialogBuilder {
|
||||
|
||||
public static void showDialog(Activity mActivity) {
|
||||
AlertDialog.Builder builder = Utils.getDialogBuilder(mActivity);
|
||||
|
||||
String dialogTitle =
|
||||
str("revanced_spoof_streaming_data_vr_auth_token_dialog_title");
|
||||
String dialogMessage =
|
||||
str("revanced_spoof_streaming_data_vr_auth_token_dialog_message");
|
||||
String resetButtonText =
|
||||
str("revanced_spoof_streaming_data_vr_auth_token_dialog_reset_text");
|
||||
|
||||
builder.setTitle(dialogTitle);
|
||||
builder.setMessage(dialogMessage);
|
||||
builder.setNeutralButton(resetButtonText, (dialog, id) -> AuthPatch.clearAll());
|
||||
|
||||
if (AuthPatch.isDeviceCodeAvailable()) {
|
||||
String okButtonText =
|
||||
str("revanced_spoof_streaming_data_vr_auth_token_dialog_get_authorization_token_text");
|
||||
builder.setPositiveButton(okButtonText, (dialog, id) -> {
|
||||
AuthPatch.setRefreshToken();
|
||||
AuthPatch.setAccessToken(true);
|
||||
});
|
||||
} else {
|
||||
String okButtonText =
|
||||
str("revanced_spoof_streaming_data_vr_auth_token_dialog_get_activation_code_text");
|
||||
builder.setPositiveButton(okButtonText, (dialog, id) -> {
|
||||
AuthPatch.setActivationCode(mActivity);
|
||||
});
|
||||
}
|
||||
builder.show();
|
||||
}
|
||||
}
|
||||
|
|
@ -1,6 +1,5 @@
|
|||
package app.revanced.extension.shared.innertube.client
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import android.os.Build
|
||||
import app.revanced.extension.shared.innertube.utils.J2V8Support.supportJ2V8
|
||||
import app.revanced.extension.shared.settings.BaseSettings
|
||||
|
|
@ -25,72 +24,6 @@ object YouTubeClient {
|
|||
private const val CLIENT_REFERER_FORMAT_WEB = "https://www.youtube.com/watch?v=%s"
|
||||
private const val CLIENT_REFERER_FORMAT_MWEB = "https://m.youtube.com/watch?v=%s"
|
||||
|
||||
// IOS_DEPRECATED
|
||||
private const val PACKAGE_NAME_IOS_DEPRECATED = "com.google.ios.youtube"
|
||||
private val CLIENT_VERSION_IOS_DEPRECATED = if (forceAVC())
|
||||
"17.40.5"
|
||||
else
|
||||
"20.20.7"
|
||||
|
||||
private val DEVICE_MODEL_IOS_DEPRECATED = if (forceAVC())
|
||||
"iPhone12,5" // 11 Pro Max. (last device with iOS 13)
|
||||
else
|
||||
"iPhone17,2" // 16 Pro Max.
|
||||
private val OS_VERSION_IOS_DEPRECATED = if (forceAVC())
|
||||
"13.7.17H35" // Last release of iOS 13.
|
||||
else
|
||||
"18.5.22F76"
|
||||
private val USER_AGENT_VERSION_IOS_DEPRECATED = if (forceAVC())
|
||||
"13_7"
|
||||
else
|
||||
"18_5"
|
||||
@SuppressLint("ConstantLocale")
|
||||
private val USER_AGENT_IOS_DEPRECATED =
|
||||
"$PACKAGE_NAME_IOS_DEPRECATED/$CLIENT_VERSION_IOS_DEPRECATED ($DEVICE_MODEL_IOS_DEPRECATED; U; CPU iOS $USER_AGENT_VERSION_IOS_DEPRECATED like Mac OS X; ${Locale.getDefault()})"
|
||||
|
||||
// IOS UNPLUGGED
|
||||
/**
|
||||
* Video not playable: Paid / Movie / Playlists / Music.
|
||||
* Note: Audio track available.
|
||||
*/
|
||||
private const val PACKAGE_NAME_IOS_UNPLUGGED = "com.google.ios.youtubeunplugged"
|
||||
|
||||
/**
|
||||
* The hardcoded client version of the iOS app used for InnerTube requests with this client.
|
||||
*
|
||||
* It can be extracted by getting the latest release version of the app on
|
||||
* [the App Store page of the YouTube TV app](https://apps.apple.com/us/app/youtube-tv/id1193350206/),
|
||||
* in the `What’s New` section.
|
||||
*/
|
||||
private val CLIENT_VERSION_IOS_UNPLUGGED = if (forceAVC())
|
||||
"6.45"
|
||||
else
|
||||
"9.33"
|
||||
private const val DEVICE_MAKE_IOS_UNPLUGGED = "Apple"
|
||||
private const val OS_NAME_IOS_UNPLUGGED = "iOS"
|
||||
|
||||
/**
|
||||
* The device machine id for the iPhone 16 Pro Max (iPhone17,2),
|
||||
* used to get HDR with AV1 hardware decoding.
|
||||
* See [this GitHub Gist](https://gist.github.com/adamawolf/3048717) for more information.
|
||||
*/
|
||||
private val DEVICE_MODEL_IOS_UNPLUGGED = if (forceAVC())
|
||||
"iPhone12,5" // 11 Pro Max. (last device with iOS 13)
|
||||
else
|
||||
"iPhone17,2" // 16 Pro Max.
|
||||
private val OS_VERSION_IOS_UNPLUGGED = if (forceAVC())
|
||||
"13.7.17H35" // Last release of iOS 13.
|
||||
else
|
||||
"18.6.2.22G100"
|
||||
private val USER_AGENT_VERSION_IOS_UNPLUGGED = if (forceAVC())
|
||||
"13_7"
|
||||
else
|
||||
"18_6_2"
|
||||
|
||||
@SuppressLint("ConstantLocale")
|
||||
private val USER_AGENT_IOS_UNPLUGGED =
|
||||
"$PACKAGE_NAME_IOS_UNPLUGGED/$CLIENT_VERSION_IOS_UNPLUGGED ($DEVICE_MODEL_IOS_UNPLUGGED; U; CPU iOS $USER_AGENT_VERSION_IOS_UNPLUGGED like Mac OS X; ${Locale.getDefault()})"
|
||||
|
||||
private const val DEVICE_MAKE_APPLE = "Apple"
|
||||
|
||||
|
||||
|
|
@ -108,8 +41,8 @@ object YouTubeClient {
|
|||
|
||||
// ANDROID (NO SDK)
|
||||
/**
|
||||
* Video not playable: Paid / Movie / Private / Age-restricted.
|
||||
* Note: The 'Authorization' key must be excluded from the header.
|
||||
* Video not playable: None.
|
||||
* Note: Clients other than Android YouTube (com.google.android.youtube) require an OAuth2 token.
|
||||
*
|
||||
* According to TeamNewPipe in 2022, if the 'androidSdkVersion' field is missing, the GVS did not return a valid response:
|
||||
* [NewPipe#8713 (comment)](https://github.com/TeamNewPipe/NewPipe/issues/8713#issuecomment-1207443550).
|
||||
|
|
@ -377,10 +310,6 @@ object YouTubeClient {
|
|||
return BaseSettings.SPOOF_STREAMING_DATA_VR_ENABLE_AV1.get()
|
||||
}
|
||||
|
||||
private fun forceAVC(): Boolean {
|
||||
return BaseSettings.SPOOF_STREAMING_DATA_IOS_FORCE_AVC.get()
|
||||
}
|
||||
|
||||
private fun useJS(): Boolean {
|
||||
return supportJ2V8() && BaseSettings.SPOOF_STREAMING_DATA_USE_JS.get()
|
||||
}
|
||||
|
|
@ -388,13 +317,7 @@ object YouTubeClient {
|
|||
@JvmStatic
|
||||
fun availableClientTypes(preferredClient: ClientType): Array<ClientType> {
|
||||
val availableClientTypes: Array<ClientType> = if (useJS()) {
|
||||
if (preferredClient == ClientType.MWEB) {
|
||||
// If playback fails with MWEB, it will fall back to TV.
|
||||
ClientType.CLIENT_ORDER_TO_USE_JS_PREFER_TV
|
||||
} else {
|
||||
// Default order of JS clients.
|
||||
ClientType.CLIENT_ORDER_TO_USE_JS
|
||||
}
|
||||
ClientType.CLIENT_ORDER_TO_USE_JS
|
||||
} else {
|
||||
ClientType.CLIENT_ORDER_TO_USE
|
||||
}
|
||||
|
|
@ -510,7 +433,6 @@ object YouTubeClient {
|
|||
userAgent = USER_AGENT_ANDROID_NO_SDK,
|
||||
androidSdkVersion = ANDROID_SDK_VERSION_ANDROID_NO_SDK,
|
||||
clientVersion = CLIENT_VERSION_ANDROID_NO_SDK,
|
||||
supportsCookies = false,
|
||||
supportsMultiAudioTracks = true,
|
||||
clientName = "ANDROID",
|
||||
friendlyName = "Android No SDK"
|
||||
|
|
@ -557,38 +479,7 @@ object YouTubeClient {
|
|||
clientName = "ANDROID_CREATOR",
|
||||
friendlyName = "Android Studio"
|
||||
),
|
||||
IOS_DEPRECATED(
|
||||
id = 5,
|
||||
deviceMake = DEVICE_MAKE_IOS_UNPLUGGED,
|
||||
deviceModel = DEVICE_MODEL_IOS_DEPRECATED,
|
||||
osName = OS_NAME_IOS_UNPLUGGED,
|
||||
osVersion = OS_VERSION_IOS_DEPRECATED,
|
||||
userAgent = USER_AGENT_IOS_DEPRECATED,
|
||||
clientVersion = CLIENT_VERSION_IOS_DEPRECATED,
|
||||
supportsCookies = false,
|
||||
clientName = "IOS",
|
||||
friendlyName = if (forceAVC())
|
||||
"iOS Force AVC"
|
||||
else
|
||||
"iOS"
|
||||
),
|
||||
IOS_UNPLUGGED(
|
||||
id = 33,
|
||||
deviceMake = DEVICE_MAKE_IOS_UNPLUGGED,
|
||||
deviceModel = DEVICE_MODEL_IOS_UNPLUGGED,
|
||||
osName = OS_NAME_IOS_UNPLUGGED,
|
||||
osVersion = OS_VERSION_IOS_UNPLUGGED,
|
||||
userAgent = USER_AGENT_IOS_UNPLUGGED,
|
||||
clientVersion = CLIENT_VERSION_IOS_UNPLUGGED,
|
||||
requireAuth = true,
|
||||
clientName = "IOS_UNPLUGGED",
|
||||
friendlyName = if (forceAVC())
|
||||
"iOS TV Force AVC"
|
||||
else
|
||||
"iOS TV"
|
||||
),
|
||||
|
||||
// Fallback client, not yet released.
|
||||
// PoToken required?
|
||||
IPADOS(
|
||||
id = 5,
|
||||
|
|
@ -708,37 +599,23 @@ object YouTubeClient {
|
|||
|
||||
companion object {
|
||||
val CLIENT_ORDER_TO_USE: Array<ClientType> = arrayOf(
|
||||
ANDROID_NO_SDK,
|
||||
ANDROID_VR,
|
||||
VISIONOS,
|
||||
ANDROID_CREATOR,
|
||||
ANDROID_NO_SDK,
|
||||
IPADOS,
|
||||
ANDROID_VR_AUTH,
|
||||
IOS_DEPRECATED,
|
||||
)
|
||||
val CLIENT_ORDER_TO_USE_JS: Array<ClientType> = arrayOf(
|
||||
ANDROID_NO_SDK,
|
||||
ANDROID_VR,
|
||||
VISIONOS,
|
||||
ANDROID_CREATOR,
|
||||
ANDROID_NO_SDK,
|
||||
IPADOS,
|
||||
TV,
|
||||
TV_SIMPLY_NO_POTOKEN,
|
||||
TV_LEGACY,
|
||||
ANDROID_VR_AUTH,
|
||||
IOS_DEPRECATED,
|
||||
)
|
||||
val CLIENT_ORDER_TO_USE_JS_PREFER_TV: Array<ClientType> = arrayOf(
|
||||
TV,
|
||||
ANDROID_VR,
|
||||
VISIONOS,
|
||||
ANDROID_CREATOR,
|
||||
ANDROID_NO_SDK,
|
||||
IPADOS,
|
||||
TV_SIMPLY_NO_POTOKEN,
|
||||
TV_LEGACY,
|
||||
ANDROID_VR_AUTH,
|
||||
IOS_DEPRECATED,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,7 +7,6 @@ import app.revanced.extension.shared.requests.Route.CompiledRoute
|
|||
import app.revanced.extension.shared.utils.Logger
|
||||
import app.revanced.extension.shared.utils.StringRef.str
|
||||
import app.revanced.extension.shared.utils.Utils
|
||||
import com.liskovsoft.youtubeapi.app.PoTokenGate
|
||||
import org.apache.commons.lang3.StringUtils
|
||||
import org.json.JSONArray
|
||||
import org.json.JSONException
|
||||
|
|
@ -97,7 +96,6 @@ object InnerTubeRequestBody {
|
|||
fun createJSRequestBody(
|
||||
clientType: YouTubeClient.ClientType,
|
||||
videoId: String,
|
||||
cpn: String = "",
|
||||
isGVS: Boolean = false,
|
||||
isInlinePlayback: Boolean = false,
|
||||
): ByteArray {
|
||||
|
|
@ -127,9 +125,6 @@ object InnerTubeRequestBody {
|
|||
innerTubeBody.put("racyCheckOk", true)
|
||||
innerTubeBody.put("contentCheckOk", true)
|
||||
innerTubeBody.put("videoId", videoId)
|
||||
if (cpn.isNotEmpty()) {
|
||||
innerTubeBody.put("cpn", cpn)
|
||||
}
|
||||
|
||||
val user = JSONObject()
|
||||
user.put("lockedSafetyMode", false)
|
||||
|
|
@ -137,7 +132,6 @@ object InnerTubeRequestBody {
|
|||
|
||||
if (isGVS) {
|
||||
val contentPlaybackContext = JSONObject()
|
||||
val requirePoToken = clientType.requirePoToken
|
||||
if (clientType.refererFormat != null) {
|
||||
contentPlaybackContext.put(
|
||||
"referer",
|
||||
|
|
@ -164,15 +158,6 @@ object InnerTubeRequestBody {
|
|||
playbackContext.put("devicePlaybackCapabilities", devicePlaybackCapabilities)
|
||||
|
||||
innerTubeBody.put("playbackContext", playbackContext)
|
||||
|
||||
if (requirePoToken) {
|
||||
val playerRequestPoToken = PoTokenGate.getWebContentPoToken(videoId)
|
||||
if (playerRequestPoToken != null) {
|
||||
val serviceIntegrityDimensions = JSONObject()
|
||||
serviceIntegrityDimensions.put("poToken", playerRequestPoToken)
|
||||
innerTubeBody.put("serviceIntegrityDimensions", serviceIntegrityDimensions)
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (e: JSONException) {
|
||||
Logger.printException({ "Failed to create js innerTubeBody" }, e)
|
||||
|
|
|
|||
|
|
@ -22,15 +22,6 @@ object InnerTubeRoutes {
|
|||
params = arrayOf("fields=status," + "playlistEditResults"),
|
||||
)
|
||||
|
||||
@JvmField
|
||||
val GET_AUDIO_TRACK = compileRoute(
|
||||
endpoint = "player",
|
||||
params = arrayOf(
|
||||
"fields=captions.playerCaptionsTracklistRenderer.audioTracks," +
|
||||
"streamingData.adaptiveFormats.audioTrack"
|
||||
)
|
||||
)
|
||||
|
||||
@JvmField
|
||||
val GET_CATEGORY = compileRoute(
|
||||
endpoint = "player",
|
||||
|
|
|
|||
|
|
@ -10,6 +10,8 @@ import java.nio.charset.StandardCharsets;
|
|||
import java.security.MessageDigest;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import app.revanced.extension.shared.utils.Logger;
|
||||
|
||||
|
|
@ -87,6 +89,18 @@ public class AuthUtils {
|
|||
return cookies;
|
||||
}
|
||||
|
||||
public static Map<String, String> parseCookieString(String cookies) {
|
||||
Map<String, String> cookieList = new HashMap<>();
|
||||
Pattern cookiePattern = Pattern.compile("([^=]+)=([^;]*);?\\s?");
|
||||
Matcher matcher = cookiePattern.matcher(cookies);
|
||||
while (matcher.find()) {
|
||||
String cookieKey = matcher.group(1);
|
||||
String cookieValue = matcher.group(2);
|
||||
cookieList.put(cookieKey, cookieValue);
|
||||
}
|
||||
return cookieList;
|
||||
}
|
||||
|
||||
public static String sha1(String input) {
|
||||
try {
|
||||
MessageDigest digest = MessageDigest.getInstance("SHA-1");
|
||||
|
|
|
|||
|
|
@ -38,43 +38,6 @@ public class StreamingDataOuterClassUtils {
|
|||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add the desired formats to the ArrayList in AdaptiveFormats.
|
||||
*
|
||||
* @param streamingData StreamingData (GeneratedMessage) parsed by ProtoParser.
|
||||
* @param arrayList An ArrayList where formats are added, this is what is actually used for playback.
|
||||
* Since formats that are not in this ArrayList will not be used for playback, you can filter by not adding unwanted formats.
|
||||
* See {@link #removeAV1Codecs(ArrayList)} for examples.
|
||||
* @param isVideo This method only distinguishes between video and audio formats.
|
||||
*/
|
||||
public static void setAdaptiveFormats(StreamingDataOuterClass.StreamingData streamingData, ArrayList<Object> arrayList, boolean isVideo) {
|
||||
try {
|
||||
List<?> adaptiveFormats = getAdaptiveFormats(streamingData);
|
||||
if (adaptiveFormats != null) {
|
||||
for (Object adaptiveFormat : adaptiveFormats) {
|
||||
// 'audio/webm; codecs="opus"', 'audio/mp4; codecs="mp4a.40.2"', ...
|
||||
// 'video/webm; codecs="vp9"', 'video/mp4; codecs="av01.0.00M.08.0.110.05.01.06.0"', ...
|
||||
String mimeType = getMimeType(adaptiveFormat);
|
||||
|
||||
// mimeType starts with 'video', which means it is a video format.
|
||||
boolean isVideoType = StringUtils.startsWith(mimeType, "video");
|
||||
|
||||
// streamingData is AudioFormat, and mimeType also starts with 'audio'.
|
||||
boolean isAudioFormat = !isVideo && !isVideoType;
|
||||
// streamingData is VideoFormat, and mimeType also starts with 'video'.
|
||||
boolean isVideoFormat = isVideo && isVideoType;
|
||||
|
||||
if (isAudioFormat || isVideoFormat) {
|
||||
// Add formats.
|
||||
arrayList.add(adaptiveFormat);
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (Exception ex) {
|
||||
Logger.printException(() -> "setAdaptiveFormats failed", ex);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get formats from parsed streamingData.
|
||||
* <p>
|
||||
|
|
@ -166,33 +129,6 @@ public class StreamingDataOuterClassUtils {
|
|||
return adaptiveFormats;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove 'AV1' video format from arrayList.
|
||||
*
|
||||
* @param arrayList An ArrayList where formats are added.
|
||||
*/
|
||||
public static void removeAV1Codecs(ArrayList<Object> arrayList) {
|
||||
try {
|
||||
for (Object adaptiveFormat : arrayList) {
|
||||
// 'audio/webm; codecs="opus"', 'audio/mp4; codecs="mp4a.40.2"', ...
|
||||
// 'video/webm; codecs="vp9"', 'video/mp4; codecs="av01.0.00M.08.0.110.05.01.06.0"', ...
|
||||
String mimeType = getMimeType(adaptiveFormat);
|
||||
|
||||
// mimeType starts with 'video', which means it is a video format.
|
||||
boolean isVideoType = StringUtils.startsWith(mimeType, "video");
|
||||
|
||||
if (isVideoType) {
|
||||
if (mimeType.contains("av01")) {
|
||||
// Remove formats.
|
||||
arrayList.remove(adaptiveFormat);
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (Exception ex) {
|
||||
Logger.printException(() -> "removeAV1Codecs failed", ex);
|
||||
}
|
||||
}
|
||||
|
||||
public static void setServerAbrStreamingUrl(StreamingDataOuterClass.StreamingData streamingData, String url) {
|
||||
try {
|
||||
if (streamingData != null) {
|
||||
|
|
|
|||
|
|
@ -9,7 +9,6 @@ import com.liskovsoft.sharedutils.helpers.Helpers;
|
|||
import com.liskovsoft.youtubeapi.app.playerdata.PlayerDataExtractor;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONObject;
|
||||
|
||||
import java.io.IOException;
|
||||
|
|
@ -62,40 +61,25 @@ public class ThrottlingParameterUtils {
|
|||
private static final String BASE_YOUTUBE_URL =
|
||||
"https://www.youtube.com";
|
||||
/**
|
||||
* Client Config url (TV).
|
||||
* Client Config url.
|
||||
*/
|
||||
private static final String CLIENT_CONFIG_URL =
|
||||
BASE_YOUTUBE_URL + "/tv_config?action_get_config=true";
|
||||
/**
|
||||
* Service worker url (Mobile Web).
|
||||
* User-agent.
|
||||
*/
|
||||
private static final String SERVICE_WORKER_URL =
|
||||
"https://m.youtube.com/sw.js_data";
|
||||
/**
|
||||
* User-agent (Mobile Web).
|
||||
*/
|
||||
private static final String USER_AGENT_MOBILE_WEB =
|
||||
"Mozilla/5.0 (Android 16; Mobile; rv:140.0) Gecko/140.0 Firefox/140.0";
|
||||
/**
|
||||
* User-agent (TV).
|
||||
*/
|
||||
private static final String USER_AGENT_TV =
|
||||
private static final String USER_AGENT =
|
||||
"Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; Xbox)";
|
||||
/**
|
||||
* Client config Json Object (TV).
|
||||
* Client config Json Object.
|
||||
*/
|
||||
@Nullable
|
||||
private volatile static JSONObject clientConfigJsonObject = null;
|
||||
/**
|
||||
* Client version from service worker (Mobile Web).
|
||||
* Client version from client config.
|
||||
*/
|
||||
@Nullable
|
||||
private volatile static String clientVersionMobileWeb = null;
|
||||
/**
|
||||
* Client version from client config (TV).
|
||||
*/
|
||||
@Nullable
|
||||
private volatile static String clientVersionTV = null;
|
||||
private volatile static String clientVersion = null;
|
||||
/**
|
||||
* Class used to deobfuscate, powered by SmartTube.
|
||||
*/
|
||||
|
|
@ -116,21 +100,11 @@ public class ThrottlingParameterUtils {
|
|||
*/
|
||||
@Nullable
|
||||
private volatile static String playerJsUrl = null;
|
||||
/**
|
||||
* Service worker Json Array (Mobile Web).
|
||||
*/
|
||||
@Nullable
|
||||
private volatile static JSONArray serviceWorkerJsonArray = null;
|
||||
/**
|
||||
* Field value included when sending a request.
|
||||
*/
|
||||
@Nullable
|
||||
private volatile static Integer signatureTimestamp = null;
|
||||
/**
|
||||
* Visitor data from service worker (Mobile Web).
|
||||
*/
|
||||
@Nullable
|
||||
private volatile static String visitorId = null;
|
||||
|
||||
private volatile static boolean isInitialized = false;
|
||||
|
||||
|
|
@ -149,7 +123,7 @@ public class ThrottlingParameterUtils {
|
|||
}
|
||||
};
|
||||
|
||||
public static void initializeJavascript(boolean useMobileWeb) {
|
||||
public static void initializeJavascript() {
|
||||
if (isInitialized) {
|
||||
return;
|
||||
}
|
||||
|
|
@ -163,31 +137,22 @@ public class ThrottlingParameterUtils {
|
|||
playerJsUrl = getPlayerJsUrl();
|
||||
signatureTimestamp = getSignatureTimestamp();
|
||||
|
||||
clientVersionTV = getClientVersion(true);
|
||||
clientVersion = getClientVersion();
|
||||
clientConfigJsonObject = getClientConfigJsonObject();
|
||||
|
||||
if (useMobileWeb) {
|
||||
visitorId = getVisitorId();
|
||||
serviceWorkerJsonArray = getServiceWorkerJsonArray();
|
||||
clientVersionMobileWeb = getClientVersion(false);
|
||||
}
|
||||
}
|
||||
|
||||
private static void resetAll() {
|
||||
isInitialized = false;
|
||||
|
||||
clientVersionMobileWeb = null;
|
||||
clientVersionTV = null;
|
||||
clientVersion = null;
|
||||
extractor = null;
|
||||
playerJs = null;
|
||||
playerJsUrl = null;
|
||||
serviceWorkerJsonArray = null;
|
||||
signatureTimestamp = null;
|
||||
visitorId = null;
|
||||
}
|
||||
|
||||
private static JSONObject setClientConfigJsonObject() {
|
||||
String jsonString = fetch(CLIENT_CONFIG_URL, true);
|
||||
String jsonString = fetch(CLIENT_CONFIG_URL);
|
||||
if (jsonString != null) {
|
||||
if (jsonString.startsWith(")]}'"))
|
||||
jsonString = jsonString.substring(4);
|
||||
|
|
@ -241,81 +206,31 @@ public class ThrottlingParameterUtils {
|
|||
return signatureTimestamp;
|
||||
}
|
||||
|
||||
private static JSONArray setServiceWorkerJsonArray() {
|
||||
String jsonString = fetch(SERVICE_WORKER_URL, false);
|
||||
if (jsonString != null) {
|
||||
if (jsonString.startsWith(")]}'"))
|
||||
jsonString = jsonString.substring(4);
|
||||
|
||||
try {
|
||||
JSONArray jsonArray = new JSONArray(jsonString);
|
||||
|
||||
//jsonArray[0][2][0][0]
|
||||
return jsonArray
|
||||
.getJSONArray(0)
|
||||
.getJSONArray(2)
|
||||
.getJSONArray(0)
|
||||
.getJSONArray(0);
|
||||
} catch (Exception ex) {
|
||||
Logger.printException(() -> "setServiceWorkerJsonArray failed", ex);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private static JSONArray getServiceWorkerJsonArray() {
|
||||
if (serviceWorkerJsonArray == null) {
|
||||
serviceWorkerJsonArray = setServiceWorkerJsonArray();
|
||||
}
|
||||
return serviceWorkerJsonArray;
|
||||
}
|
||||
|
||||
private static String setClientVersion(boolean isTV) {
|
||||
private static String setClientVersion() {
|
||||
String clientVersion = null;
|
||||
if (isTV) {
|
||||
JSONObject clientConfigJsonObject = getClientConfigJsonObject();
|
||||
JSONObject clientConfigJsonObject = getClientConfigJsonObject();
|
||||
|
||||
if (clientConfigJsonObject != null) {
|
||||
try {
|
||||
clientVersion = clientConfigJsonObject
|
||||
.getString("innertubeContextClientVersion");
|
||||
} catch (Exception ex) {
|
||||
Logger.printException(() -> "setClientVersion failed", ex);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
JSONArray serviceWorkerJsonArray = getServiceWorkerJsonArray();
|
||||
|
||||
if (serviceWorkerJsonArray != null) {
|
||||
try {
|
||||
clientVersion = serviceWorkerJsonArray
|
||||
.getString(16);
|
||||
} catch (Exception ex) {
|
||||
Logger.printException(() -> "setClientVersion failed", ex);
|
||||
}
|
||||
if (clientConfigJsonObject != null) {
|
||||
try {
|
||||
clientVersion = clientConfigJsonObject
|
||||
.getString("innertubeContextClientVersion");
|
||||
} catch (Exception ex) {
|
||||
Logger.printException(() -> "setClientVersion failed", ex);
|
||||
}
|
||||
}
|
||||
|
||||
if (StringUtils.isNotEmpty(clientVersion)) {
|
||||
String finalClientVersion = clientVersion;
|
||||
Logger.printDebug(() -> "clientVersion: " + finalClientVersion + ", isTV: " + false);
|
||||
Logger.printDebug(() -> "clientVersion: " + finalClientVersion);
|
||||
return clientVersion;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public static String getClientVersion(boolean isTV) {
|
||||
String clientVersion = isTV
|
||||
? clientVersionTV
|
||||
: clientVersionMobileWeb;
|
||||
public static String getClientVersion() {
|
||||
if (clientVersion == null) {
|
||||
clientVersion = setClientVersion(isTV);
|
||||
if (isTV) {
|
||||
clientVersionTV = clientVersion;
|
||||
} else {
|
||||
clientVersionMobileWeb = clientVersion;
|
||||
}
|
||||
clientVersion = setClientVersion();
|
||||
}
|
||||
|
||||
return clientVersion;
|
||||
|
|
@ -323,9 +238,7 @@ public class ThrottlingParameterUtils {
|
|||
|
||||
public static String getClientVersion(YouTubeClient.ClientType clientType) {
|
||||
String hardCodedClientVersion = clientType.getClientVersion();
|
||||
if (clientType == YouTubeClient.ClientType.TV || clientType == YouTubeClient.ClientType.MWEB) {
|
||||
boolean isTV = clientType == YouTubeClient.ClientType.TV;
|
||||
String clientVersion = getClientVersion(isTV);
|
||||
if (clientType == YouTubeClient.ClientType.TV) {
|
||||
if (clientVersion != null) {
|
||||
return clientVersion;
|
||||
}
|
||||
|
|
@ -334,34 +247,6 @@ public class ThrottlingParameterUtils {
|
|||
return hardCodedClientVersion;
|
||||
}
|
||||
|
||||
private static String setVisitorId() {
|
||||
JSONArray serviceWorkerJsonArray = getServiceWorkerJsonArray();
|
||||
|
||||
if (serviceWorkerJsonArray != null) {
|
||||
try {
|
||||
String visitorId = serviceWorkerJsonArray
|
||||
.getString(13);
|
||||
if (StringUtils.isNotEmpty(visitorId)) {
|
||||
Logger.printDebug(() -> "visitorId: " + visitorId);
|
||||
}
|
||||
return visitorId;
|
||||
} catch (Exception ex) {
|
||||
Logger.printException(() -> "setVisitorId failed", ex);
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public static String getVisitorId() {
|
||||
if (visitorId == null) {
|
||||
visitorId = setVisitorId();
|
||||
}
|
||||
|
||||
return visitorId;
|
||||
}
|
||||
|
||||
|
||||
@Nullable
|
||||
private static String setPlayerJsUrl() {
|
||||
JSONObject clientConfigJsonObject = getClientConfigJsonObject();
|
||||
|
|
@ -399,7 +284,7 @@ public class ThrottlingParameterUtils {
|
|||
private static String setPlayerJs() {
|
||||
String playerJsUrl = getPlayerJsUrl();
|
||||
if (playerJsUrl != null) {
|
||||
return fetch(playerJsUrl, true);
|
||||
return fetch(playerJsUrl);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
|
@ -434,9 +319,9 @@ public class ThrottlingParameterUtils {
|
|||
}
|
||||
|
||||
@Nullable
|
||||
public static String fetch(@NonNull String url, boolean isTV) {
|
||||
public static String fetch(@NonNull String url) {
|
||||
try {
|
||||
return Utils.submitOnBackgroundThread(() -> fetchUrl(url, isTV)).get();
|
||||
return Utils.submitOnBackgroundThread(() -> fetchUrl(url)).get();
|
||||
} catch (ExecutionException | InterruptedException ex) {
|
||||
Logger.printDebug(() -> "Could not fetch url: " + url, ex);
|
||||
}
|
||||
|
|
@ -445,7 +330,7 @@ public class ThrottlingParameterUtils {
|
|||
}
|
||||
|
||||
@Nullable
|
||||
private static String fetchUrl(@NonNull String uri, boolean isTV) {
|
||||
private static String fetchUrl(@NonNull String uri) {
|
||||
Utils.verifyOffMainThread();
|
||||
|
||||
final long startTime = System.currentTimeMillis();
|
||||
|
|
@ -456,7 +341,7 @@ public class ThrottlingParameterUtils {
|
|||
Request request = new Request.Builder()
|
||||
.url(uri)
|
||||
.header("Accept-Language", "en-US,en")
|
||||
.header("User-Agent", isTV ? USER_AGENT_TV : USER_AGENT_MOBILE_WEB)
|
||||
.header("User-Agent", USER_AGENT)
|
||||
.build();
|
||||
|
||||
try (Response response = client.newCall(request).execute()) {
|
||||
|
|
@ -486,10 +371,8 @@ public class ThrottlingParameterUtils {
|
|||
@Nullable
|
||||
public static String deobfuscateStreamingUrl(
|
||||
@NonNull String videoId,
|
||||
@NonNull String cpn,
|
||||
@Nullable String url,
|
||||
@Nullable String signatureCipher,
|
||||
@Nullable String poToken) {
|
||||
@Nullable String signatureCipher) {
|
||||
String streamUrl = null;
|
||||
if (StringUtils.isNotEmpty(url)) {
|
||||
streamUrl = url;
|
||||
|
|
@ -500,17 +383,10 @@ public class ThrottlingParameterUtils {
|
|||
);
|
||||
}
|
||||
if (StringUtils.isNotEmpty(streamUrl)) {
|
||||
String deobfuscatedUrl = getUrlWithThrottlingParameterDeobfuscated(
|
||||
return getUrlWithThrottlingParameterDeobfuscated(
|
||||
videoId,
|
||||
streamUrl
|
||||
);
|
||||
if (StringUtils.isNotEmpty(cpn)) {
|
||||
deobfuscatedUrl += "&cpn=" + cpn;
|
||||
}
|
||||
if (StringUtils.isNotEmpty(poToken)) {
|
||||
deobfuscatedUrl += "&pot=" + poToken;
|
||||
}
|
||||
return deobfuscatedUrl;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,20 @@
|
|||
package app.revanced.extension.shared.patches;
|
||||
|
||||
public class AppCheckPatch {
|
||||
@SuppressWarnings("SameParameterValue")
|
||||
private static boolean classExists(String className) {
|
||||
boolean classExists = false;
|
||||
try {
|
||||
Class.forName(className);
|
||||
classExists = true;
|
||||
} catch (ClassNotFoundException ignored) {
|
||||
}
|
||||
return classExists;
|
||||
}
|
||||
|
||||
private static final String MAIN_ACTIVITY_CLASS_DESCRIPTOR_YOUTUBE =
|
||||
"com.google.android.apps.youtube.app.watchwhile.MainActivity";
|
||||
|
||||
public static final boolean IS_YOUTUBE =
|
||||
classExists(MAIN_ACTIVITY_CLASS_DESCRIPTOR_YOUTUBE);
|
||||
}
|
||||
|
|
@ -30,4 +30,9 @@ public class PatchStatus {
|
|||
public static long PatchedTime() {
|
||||
return 0L;
|
||||
}
|
||||
|
||||
// Modified by a patch. Do not touch.
|
||||
public static String WebViewActivityClass() {
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,113 @@
|
|||
package app.revanced.extension.shared.patches.auth;
|
||||
|
||||
import static app.revanced.extension.shared.patches.AppCheckPatch.IS_YOUTUBE;
|
||||
import static app.revanced.extension.shared.patches.auth.requests.AuthRequest.fetch;
|
||||
import static app.revanced.extension.shared.utils.StringRef.str;
|
||||
|
||||
import android.util.Pair;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import app.revanced.extension.shared.settings.preference.SharedPrefCategory;
|
||||
import app.revanced.extension.shared.utils.Utils;
|
||||
|
||||
public class YouTubeAuthPatch {
|
||||
/**
|
||||
* The last time the access token was updated.
|
||||
*/
|
||||
private static long lastTimeAccessTokenUpdated = 0L;
|
||||
|
||||
/**
|
||||
* Access token expiration time.
|
||||
*/
|
||||
private static long accessTokenExpiration = 3540 * 1000L;
|
||||
|
||||
public static void checkAccessToken() {
|
||||
if (!IS_YOUTUBE && isEmailAvailable() && isRefreshTokenAvailable()) {
|
||||
setAccessToken();
|
||||
}
|
||||
}
|
||||
|
||||
public static void clearAll() {
|
||||
saveEmail("");
|
||||
saveRefreshToken("");
|
||||
lastTimeAccessTokenUpdated = 0L;
|
||||
accessTokenExpiration = 3540 * 1000L;
|
||||
authorization = "";
|
||||
|
||||
Utils.showToastShort(str("revanced_spoof_streaming_data_no_sdk_auth_token_toast_reset"));
|
||||
}
|
||||
|
||||
public static void setAccessToken() {
|
||||
final long now = System.currentTimeMillis();
|
||||
if (lastTimeAccessTokenUpdated > 0L &&
|
||||
now - lastTimeAccessTokenUpdated < accessTokenExpiration) {
|
||||
return;
|
||||
}
|
||||
Pair<String, String> result = fetch(getEmail(), getRefreshToken(), true);
|
||||
if (result != null) {
|
||||
String accessToken = result.second;
|
||||
if (StringUtils.isNotEmpty(accessToken)) {
|
||||
authorization = "Bearer " + accessToken;
|
||||
lastTimeAccessTokenUpdated = System.currentTimeMillis();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void setAccessToken(String email, String oauthToken) {
|
||||
Pair<String, String> result = fetch(email, oauthToken, false);
|
||||
if (result != null) {
|
||||
String refreshToken = result.first;
|
||||
String accessToken = result.second;
|
||||
if (StringUtils.isNotEmpty(refreshToken) && StringUtils.isNotEmpty(accessToken)) {
|
||||
saveEmail(email);
|
||||
saveRefreshToken(refreshToken);
|
||||
authorization = "Bearer " + accessToken;
|
||||
lastTimeAccessTokenUpdated = System.currentTimeMillis();
|
||||
Utils.showToastShort(str("revanced_spoof_streaming_data_no_sdk_auth_token_toast_success"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Using OAuth tokens allows access to all information in a user's Google account,
|
||||
* including changes to their Google account information, without leaving any logs or notifications.
|
||||
* Importing / exporting 2.0 tokens must be strictly prohibited.
|
||||
*/
|
||||
private static final SharedPrefCategory preferences = new SharedPrefCategory("youtube_no_sdk");
|
||||
private static final String emailKey = "youtube_no_sdk_auth_email";
|
||||
private static final String refreshTokenKey = "youtube_no_sdk_auth_refresh_token";
|
||||
private static String authorization = "";
|
||||
|
||||
public static String getAuthorization() {
|
||||
return authorization;
|
||||
}
|
||||
|
||||
private static String getEmail() {
|
||||
return preferences.getString(emailKey, "");
|
||||
}
|
||||
|
||||
private static String getRefreshToken() {
|
||||
return preferences.getString(refreshTokenKey, "");
|
||||
}
|
||||
|
||||
public static boolean isAuthorizationAvailable() {
|
||||
return !authorization.isEmpty();
|
||||
}
|
||||
|
||||
public static boolean isEmailAvailable() {
|
||||
return !getEmail().isEmpty();
|
||||
}
|
||||
|
||||
private static boolean isRefreshTokenAvailable() {
|
||||
return !getRefreshToken().isEmpty();
|
||||
}
|
||||
|
||||
private static void saveEmail(String value) {
|
||||
preferences.saveString(emailKey, value);
|
||||
}
|
||||
|
||||
private static void saveRefreshToken(String value) {
|
||||
preferences.saveString(refreshTokenKey, value);
|
||||
}
|
||||
}
|
||||
|
|
@ -21,7 +21,7 @@ import app.revanced.extension.shared.utils.BaseThemeUtils;
|
|||
import app.revanced.extension.shared.utils.Logger;
|
||||
import app.revanced.extension.shared.utils.Utils;
|
||||
|
||||
public class AuthPatch {
|
||||
public class YouTubeVRAuthPatch {
|
||||
/**
|
||||
* The last time the access token was updated.
|
||||
*/
|
||||
|
|
@ -5,8 +5,12 @@ import static app.revanced.extension.shared.patches.auth.requests.AuthRoutes.cre
|
|||
import static app.revanced.extension.shared.patches.auth.requests.AuthRoutes.createActivationCodeBody;
|
||||
import static app.revanced.extension.shared.patches.auth.requests.AuthRoutes.createRefreshTokenBody;
|
||||
|
||||
import android.util.Pair;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.aurora.store.task.AuthTask;
|
||||
|
||||
import org.json.JSONObject;
|
||||
|
||||
import java.io.IOException;
|
||||
|
|
@ -49,6 +53,25 @@ public class AuthRequest {
|
|||
return null;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static Pair<String, String> fetch(String email, String token, boolean isAASToken) {
|
||||
try {
|
||||
return Utils.submitOnBackgroundThread(() -> {
|
||||
AuthTask authTask = new AuthTask();
|
||||
|
||||
if (isAASToken) {
|
||||
return new Pair<>(token, authTask.refreshAuthToken(email, token));
|
||||
} else {
|
||||
return authTask.getAuthToken(email, token);
|
||||
}
|
||||
}).get();
|
||||
} catch (ExecutionException | InterruptedException ex) {
|
||||
Logger.printDebug(() -> "fetch failed", ex);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private static JSONObject fetchUrl(RequestType requestType, @Nullable String token) {
|
||||
Utils.verifyOffMainThread();
|
||||
|
|
|
|||
|
|
@ -22,7 +22,8 @@ import java.util.concurrent.CompletableFuture;
|
|||
import app.revanced.extension.shared.innertube.client.YouTubeClient.ClientType;
|
||||
import app.revanced.extension.shared.innertube.utils.ThrottlingParameterUtils;
|
||||
import app.revanced.extension.shared.patches.PatchStatus;
|
||||
import app.revanced.extension.shared.patches.auth.AuthPatch;
|
||||
import app.revanced.extension.shared.patches.auth.YouTubeAuthPatch;
|
||||
import app.revanced.extension.shared.patches.auth.YouTubeVRAuthPatch;
|
||||
import app.revanced.extension.shared.patches.spoof.requests.StreamingDataRequest;
|
||||
import app.revanced.extension.shared.settings.BaseSettings;
|
||||
import app.revanced.extension.shared.settings.Setting;
|
||||
|
|
@ -71,8 +72,6 @@ public class SpoofStreamingDataPatch {
|
|||
* Prefix present in all Short player parameters signature.
|
||||
*/
|
||||
private static final String SHORTS_PLAYER_PARAMETERS = "8AEB";
|
||||
@NonNull
|
||||
private static volatile String playerResponseCpn = "";
|
||||
@Nullable
|
||||
private static volatile String playerResponseParameter = null;
|
||||
|
||||
|
|
@ -208,7 +207,6 @@ public class SpoofStreamingDataPatch {
|
|||
return;
|
||||
}
|
||||
String tParameter = YouTubeHelper.generateTParameter(uri.getQueryParameter("t"));
|
||||
String cpn = YouTubeHelper.generateContentPlaybackNonce(playerResponseCpn);
|
||||
String reasonSkipped;
|
||||
if (playerResponseParameter != null &&
|
||||
SPOOF_STREAMING_DATA_USE_JS &&
|
||||
|
|
@ -227,11 +225,11 @@ public class SpoofStreamingDataPatch {
|
|||
reasonSkipped = "";
|
||||
}
|
||||
|
||||
AuthPatch.checkAccessToken();
|
||||
YouTubeAuthPatch.checkAccessToken();
|
||||
YouTubeVRAuthPatch.checkAccessToken();
|
||||
StreamingDataRequest.fetchRequest(
|
||||
id,
|
||||
tParameter,
|
||||
cpn,
|
||||
requestHeader,
|
||||
reasonSkipped
|
||||
);
|
||||
|
|
@ -312,15 +310,6 @@ public class SpoofStreamingDataPatch {
|
|||
return postData;
|
||||
}
|
||||
|
||||
/**
|
||||
* Injection point.
|
||||
*/
|
||||
public static void newPlayerResponseCpn(@Nullable String cpn) {
|
||||
if (cpn != null && !cpn.isEmpty()) {
|
||||
playerResponseCpn = cpn;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Injection point.
|
||||
*/
|
||||
|
|
@ -352,9 +341,7 @@ public class SpoofStreamingDataPatch {
|
|||
public static void initializeJavascript() {
|
||||
if (SPOOF_STREAMING_DATA_USE_JS) {
|
||||
// Download JavaScript and initialize the Cipher class
|
||||
CompletableFuture.runAsync(() -> ThrottlingParameterUtils.initializeJavascript(
|
||||
BaseSettings.SPOOF_STREAMING_DATA_DEFAULT_CLIENT.get().getRequirePoToken()
|
||||
));
|
||||
CompletableFuture.runAsync(ThrottlingParameterUtils::initializeJavascript);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -13,7 +13,9 @@ import app.revanced.extension.shared.innertube.utils.StreamingDataOuterClassUtil
|
|||
import app.revanced.extension.shared.innertube.utils.StreamingDataOuterClassUtils.setServerAbrStreamingUrl
|
||||
import app.revanced.extension.shared.innertube.utils.StreamingDataOuterClassUtils.setUrl
|
||||
import app.revanced.extension.shared.innertube.utils.ThrottlingParameterUtils
|
||||
import app.revanced.extension.shared.patches.auth.AuthPatch
|
||||
import app.revanced.extension.shared.patches.AppCheckPatch.IS_YOUTUBE
|
||||
import app.revanced.extension.shared.patches.auth.YouTubeAuthPatch
|
||||
import app.revanced.extension.shared.patches.auth.YouTubeVRAuthPatch
|
||||
import app.revanced.extension.shared.patches.components.ByteArrayFilterGroup
|
||||
import app.revanced.extension.shared.patches.spoof.StreamingDataOuterClassPatch.parseFrom
|
||||
import app.revanced.extension.shared.settings.BaseSettings
|
||||
|
|
@ -21,7 +23,6 @@ import app.revanced.extension.shared.utils.Logger
|
|||
import app.revanced.extension.shared.utils.StringRef.str
|
||||
import app.revanced.extension.shared.utils.Utils
|
||||
import com.google.protos.youtube.api.innertube.StreamingDataOuterClass.StreamingData
|
||||
import com.liskovsoft.youtubeapi.app.PoTokenGate
|
||||
import org.apache.commons.lang3.StringUtils
|
||||
import java.io.BufferedInputStream
|
||||
import java.io.ByteArrayOutputStream
|
||||
|
|
@ -50,7 +51,6 @@ import java.util.concurrent.TimeoutException
|
|||
class StreamingDataRequest private constructor(
|
||||
videoId: String,
|
||||
tParameter: String,
|
||||
cpn: String,
|
||||
requestHeader: Map<String, String>,
|
||||
reasonSkipped: String,
|
||||
) {
|
||||
|
|
@ -64,7 +64,6 @@ class StreamingDataRequest private constructor(
|
|||
fetch(
|
||||
videoId = videoId,
|
||||
tParameter = tParameter,
|
||||
cpn = cpn,
|
||||
requestHeader = requestHeader,
|
||||
reasonSkipped = reasonSkipped,
|
||||
)
|
||||
|
|
@ -106,7 +105,6 @@ class StreamingDataRequest private constructor(
|
|||
|
||||
companion object {
|
||||
private const val AUTHORIZATION_HEADER = "Authorization"
|
||||
private const val VISITOR_ID_HEADER: String = "X-Goog-Visitor-Id"
|
||||
private const val MAX_MILLISECONDS_TO_WAIT_FOR_FETCH = 20 * 1000
|
||||
|
||||
private val SPOOF_STREAMING_DATA_DEFAULT_CLIENT: ClientType =
|
||||
|
|
@ -141,7 +139,6 @@ class StreamingDataRequest private constructor(
|
|||
fun fetchRequest(
|
||||
videoId: String,
|
||||
tParameter: String,
|
||||
cpn: String,
|
||||
fetchHeaders: Map<String, String>,
|
||||
reasonSkipped: String,
|
||||
) {
|
||||
|
|
@ -150,7 +147,6 @@ class StreamingDataRequest private constructor(
|
|||
StreamingDataRequest(
|
||||
videoId,
|
||||
tParameter,
|
||||
cpn,
|
||||
fetchHeaders,
|
||||
reasonSkipped,
|
||||
)
|
||||
|
|
@ -172,36 +168,34 @@ class StreamingDataRequest private constructor(
|
|||
|
||||
private fun replaceHeader(
|
||||
clientType: ClientType,
|
||||
videoId: String,
|
||||
requestHeader: Map<String, String>,
|
||||
): Map<String, String> {
|
||||
if (clientType.requirePoToken) {
|
||||
val finalRequestHeader: MutableMap<String, String> =
|
||||
LinkedHashMap(requestHeader.size)
|
||||
val visitorData = PoTokenGate.getVisitorData(videoId)
|
||||
for (key in requestHeader.keys) {
|
||||
val value = requestHeader[key]
|
||||
if (value != null) {
|
||||
if (key == VISITOR_ID_HEADER) {
|
||||
if (!visitorData.isNullOrEmpty()) {
|
||||
finalRequestHeader[VISITOR_ID_HEADER] = visitorData
|
||||
continue
|
||||
}
|
||||
}
|
||||
finalRequestHeader[key] = value
|
||||
}
|
||||
}
|
||||
return finalRequestHeader
|
||||
} else if (clientType == ClientType.ANDROID_VR_AUTH &&
|
||||
AuthPatch.isAuthorizationAvailable()
|
||||
) {
|
||||
if (clientType == ClientType.ANDROID_VR_AUTH &&
|
||||
YouTubeVRAuthPatch.isAuthorizationAvailable()) {
|
||||
val finalRequestHeader: MutableMap<String, String> =
|
||||
LinkedHashMap(requestHeader.size)
|
||||
for (key in requestHeader.keys) {
|
||||
val value = requestHeader[key]
|
||||
if (value != null) {
|
||||
if (key == AUTHORIZATION_HEADER) {
|
||||
finalRequestHeader[AUTHORIZATION_HEADER] = AuthPatch.getAuthorization()
|
||||
finalRequestHeader[AUTHORIZATION_HEADER] = YouTubeVRAuthPatch.getAuthorization()
|
||||
continue
|
||||
}
|
||||
finalRequestHeader[key] = value
|
||||
}
|
||||
}
|
||||
return finalRequestHeader
|
||||
} else if (!IS_YOUTUBE &&
|
||||
clientType == ClientType.ANDROID_NO_SDK) {
|
||||
val finalRequestHeader: MutableMap<String, String> =
|
||||
LinkedHashMap(requestHeader.size)
|
||||
for (key in requestHeader.keys) {
|
||||
val value = requestHeader[key]
|
||||
if (value != null) {
|
||||
if (key == AUTHORIZATION_HEADER) {
|
||||
if (YouTubeAuthPatch.isAuthorizationAvailable()) {
|
||||
finalRequestHeader[AUTHORIZATION_HEADER] = YouTubeAuthPatch.getAuthorization()
|
||||
}
|
||||
continue
|
||||
}
|
||||
finalRequestHeader[key] = value
|
||||
|
|
@ -235,9 +229,7 @@ class StreamingDataRequest private constructor(
|
|||
}
|
||||
|
||||
private fun getDeobfuscatedUrlArrayList(
|
||||
clientType: ClientType,
|
||||
videoId: String,
|
||||
cpn: String,
|
||||
streamBytes: ByteArray,
|
||||
): Triple<ArrayList<String>?, ArrayList<String>?, String?>? {
|
||||
val startTime = System.currentTimeMillis()
|
||||
|
|
@ -258,10 +250,6 @@ class StreamingDataRequest private constructor(
|
|||
|
||||
val deobfuscatedAdaptiveFormatsArrayList: ArrayList<String> =
|
||||
ArrayList(adaptiveFormatsCount)
|
||||
val sessionPoToken = if (clientType.requirePoToken)
|
||||
PoTokenGate.getWebSessionPoToken(videoId)
|
||||
else
|
||||
null
|
||||
|
||||
for (i in 0..<adaptiveFormatsCount) {
|
||||
val adaptiveFormats = streamingData.getAdaptiveFormats(i)
|
||||
|
|
@ -270,10 +258,8 @@ class StreamingDataRequest private constructor(
|
|||
val deobfuscatedUrl =
|
||||
ThrottlingParameterUtils.deobfuscateStreamingUrl(
|
||||
videoId,
|
||||
cpn,
|
||||
adaptiveFormats.url,
|
||||
adaptiveFormats.signatureCipher,
|
||||
sessionPoToken
|
||||
)
|
||||
if (deobfuscatedUrl.isNullOrEmpty()) {
|
||||
Logger.printDebug { "Failed to decrypt n-sig or signatureCipher, please check if latest regular expressions are being used" }
|
||||
|
|
@ -296,10 +282,8 @@ class StreamingDataRequest private constructor(
|
|||
val deobfuscatedUrl =
|
||||
ThrottlingParameterUtils.deobfuscateStreamingUrl(
|
||||
videoId,
|
||||
cpn,
|
||||
formats.url,
|
||||
formats.signatureCipher,
|
||||
sessionPoToken
|
||||
)
|
||||
if (deobfuscatedUrl.isNullOrEmpty()) {
|
||||
Logger.printDebug { "Failed to decrypt n-sig or signatureCipher" }
|
||||
|
|
@ -315,10 +299,8 @@ class StreamingDataRequest private constructor(
|
|||
serverAbrStreamingUrl = ThrottlingParameterUtils
|
||||
.deobfuscateStreamingUrl(
|
||||
videoId,
|
||||
"",
|
||||
serverAbrStreamingUrl,
|
||||
null,
|
||||
sessionPoToken
|
||||
)
|
||||
}
|
||||
|
||||
|
|
@ -361,7 +343,6 @@ class StreamingDataRequest private constructor(
|
|||
clientType: ClientType,
|
||||
videoId: String,
|
||||
tParameter: String,
|
||||
cpn: String,
|
||||
requestHeader: Map<String, String>,
|
||||
): HttpURLConnection? {
|
||||
val startTime = System.currentTimeMillis()
|
||||
|
|
@ -373,7 +354,6 @@ class StreamingDataRequest private constructor(
|
|||
createJSRequestBody(
|
||||
clientType = clientType,
|
||||
videoId = videoId,
|
||||
cpn = cpn,
|
||||
isGVS = true,
|
||||
isInlinePlayback = SPOOF_STREAMING_DATA_USE_JS_BYPASS_FAKE_BUFFERING,
|
||||
)
|
||||
|
|
@ -391,7 +371,7 @@ class StreamingDataRequest private constructor(
|
|||
SPOOF_STREAMING_DATA_USE_JS_BYPASS_FAKE_BUFFERING
|
||||
),
|
||||
clientType,
|
||||
replaceHeader(clientType, videoId, requestHeader)
|
||||
replaceHeader(clientType, requestHeader)
|
||||
)
|
||||
|
||||
connection.setFixedLengthStreamingMode(requestBody.size)
|
||||
|
|
@ -423,7 +403,6 @@ class StreamingDataRequest private constructor(
|
|||
private fun fetch(
|
||||
videoId: String,
|
||||
tParameter: String,
|
||||
cpn: String,
|
||||
requestHeader: Map<String, String>,
|
||||
reasonSkipped: String,
|
||||
): StreamingData? {
|
||||
|
|
@ -447,7 +426,6 @@ class StreamingDataRequest private constructor(
|
|||
clientType,
|
||||
videoId,
|
||||
tParameter,
|
||||
cpn,
|
||||
requestHeader,
|
||||
)
|
||||
if (connection != null) {
|
||||
|
|
@ -490,9 +468,7 @@ class StreamingDataRequest private constructor(
|
|||
if (clientType.requireJS) {
|
||||
// ArrayList containing the deobfuscated streamingUrl
|
||||
val arrayLists = getDeobfuscatedUrlArrayList(
|
||||
clientType,
|
||||
videoId,
|
||||
cpn,
|
||||
streamBytes
|
||||
)
|
||||
if (arrayLists != null) {
|
||||
|
|
|
|||
|
|
@ -54,7 +54,7 @@ public class BaseSettings {
|
|||
|
||||
// Client type must be last spoof setting due to cyclic references.
|
||||
public static final EnumSetting<ClientType> SPOOF_STREAMING_DATA_DEFAULT_CLIENT = new EnumSetting<>("revanced_spoof_streaming_data_default_client",
|
||||
ClientType.ANDROID_VR, true, parent(SPOOF_STREAMING_DATA));
|
||||
ClientType.ANDROID_NO_SDK, true, parent(SPOOF_STREAMING_DATA));
|
||||
|
||||
public static final BooleanSetting DISABLE_AUTO_AUDIO_TRACKS = new BooleanSetting("revanced_disable_auto_audio_tracks", TRUE);
|
||||
|
||||
|
|
|
|||
|
|
@ -59,6 +59,23 @@ public abstract class Setting<T> {
|
|||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Availability based on a single parent setting being disabled.
|
||||
*/
|
||||
public static Availability parentInverted(BooleanSetting parent) {
|
||||
return new Availability() {
|
||||
@Override
|
||||
public boolean isAvailable() {
|
||||
return !parent.get();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Setting<?>> getParentSettings() {
|
||||
return Collections.singletonList(parent);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Availability based on all parents being enabled.
|
||||
*/
|
||||
|
|
@ -79,6 +96,26 @@ public abstract class Setting<T> {
|
|||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Availability based on any parent being disabled.
|
||||
*/
|
||||
public static Availability parentsAnyInverted(BooleanSetting... parents) {
|
||||
return new Availability() {
|
||||
@Override
|
||||
public boolean isAvailable() {
|
||||
for (BooleanSetting parent : parents) {
|
||||
if (parent.get()) return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Setting<?>> getParentSettings() {
|
||||
return Collections.unmodifiableList(Arrays.asList(parents));
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Availability based on any parent being enabled.
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
package app.revanced.extension.youtube.settings;
|
||||
package app.revanced.extension.shared.settings;
|
||||
|
||||
import static app.revanced.extension.shared.utils.ResourceUtils.getIdIdentifier;
|
||||
import static app.revanced.extension.shared.utils.ResourceUtils.getLayoutIdentifier;
|
||||
|
|
@ -34,23 +34,31 @@ import android.window.OnBackInvokedDispatcher;
|
|||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.annotation.RequiresApi;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import app.revanced.extension.shared.innertube.utils.AuthUtils;
|
||||
import app.revanced.extension.shared.patches.auth.YouTubeAuthPatch;
|
||||
import app.revanced.extension.shared.ui.CustomDialog;
|
||||
import app.revanced.extension.shared.utils.BaseThemeUtils;
|
||||
import app.revanced.extension.shared.utils.Logger;
|
||||
import app.revanced.extension.shared.utils.Utils;
|
||||
import app.revanced.extension.youtube.utils.ThemeUtils;
|
||||
|
||||
/**
|
||||
* Note that the superclass is overwritten to the superclass of the VrWelcomeActivity at patch time.
|
||||
*/
|
||||
@RequiresApi(26)
|
||||
@SuppressWarnings({"ExtractMethodRecommender", "deprecation", "unused"})
|
||||
public class WebViewHostActivity extends Activity {
|
||||
|
||||
protected final String CHROME_VERSION = "140.0.0.0";
|
||||
protected final String EMBEDDED_SETUP_URL =
|
||||
"https://accounts.google.com/EmbeddedSetup";
|
||||
protected final String JS_SCRIPT =
|
||||
"(function() { return document.getElementById('profileIdentifier').innerHTML; })();";
|
||||
protected final String OAUTH_TOKEN = "oauth_token";
|
||||
protected final String USER_AGENT_CHROME_FORMAT =
|
||||
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s Safari/537.36";
|
||||
protected final String USER_AGENT_CHROME_MOBILE_FORMAT =
|
||||
|
|
@ -66,14 +74,20 @@ public class WebViewHostActivity extends Activity {
|
|||
|
||||
protected WebView webView;
|
||||
|
||||
protected boolean isEmbeddedSetup = false;
|
||||
|
||||
protected boolean isInitialized = false;
|
||||
|
||||
protected boolean clearCookiesOnStartUp;
|
||||
|
||||
protected boolean clearCookiesOnShutDown;
|
||||
|
||||
protected boolean showToolBar;
|
||||
|
||||
protected boolean useDesktopUserAgent;
|
||||
|
||||
protected boolean useReferer;
|
||||
|
||||
@NonNull
|
||||
protected String url = "https://www.youtube.com/signin";
|
||||
|
||||
|
|
@ -109,8 +123,12 @@ public class WebViewHostActivity extends Activity {
|
|||
intent.getBooleanExtra("clearCookiesOnStartUp", false);
|
||||
clearCookiesOnShutDown =
|
||||
intent.getBooleanExtra("clearCookiesOnShutDown", false);
|
||||
showToolBar =
|
||||
intent.getBooleanExtra("showToolBar", false);
|
||||
useDesktopUserAgent =
|
||||
intent.getBooleanExtra("useDesktopUserAgent", false);
|
||||
useReferer =
|
||||
intent.getBooleanExtra("useReferer", false);
|
||||
userAgent = String.format(
|
||||
useDesktopUserAgent
|
||||
? USER_AGENT_CHROME_FORMAT
|
||||
|
|
@ -121,11 +139,15 @@ public class WebViewHostActivity extends Activity {
|
|||
if (StringUtils.isNotEmpty(intentUrl)) {
|
||||
url = intentUrl;
|
||||
}
|
||||
isEmbeddedSetup = url.startsWith(EMBEDDED_SETUP_URL);
|
||||
setContentView(getLayoutIdentifier("revanced_webview"));
|
||||
Window window = getWindow();
|
||||
if (window != null) {
|
||||
View decorView = window.getDecorView();
|
||||
decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR | View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR);
|
||||
int visibility = isSDKAbove(26)
|
||||
? View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR | View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR
|
||||
: View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR;
|
||||
decorView.setSystemUiVisibility(visibility);
|
||||
window.setStatusBarColor(Color.WHITE);
|
||||
window.setNavigationBarColor(Color.WHITE);
|
||||
|
||||
|
|
@ -160,7 +182,9 @@ public class WebViewHostActivity extends Activity {
|
|||
|
||||
Logger.printDebug(() -> "onCreate{clearCookiesOnStartUp: " + clearCookiesOnStartUp +
|
||||
", clearCookiesOnShutDown: " + clearCookiesOnShutDown +
|
||||
", showToolBar: " + showToolBar +
|
||||
", useDesktopUserAgent: " + useDesktopUserAgent +
|
||||
", useReferer: " + useReferer +
|
||||
", userAgent: " + userAgent +
|
||||
", url: " + url +
|
||||
"}"
|
||||
|
|
@ -211,7 +235,7 @@ public class WebViewHostActivity extends Activity {
|
|||
|
||||
toolbar = new Toolbar(toolBarParent.getContext());
|
||||
toolbar.setBackgroundColor(Color.WHITE);
|
||||
toolbar.setNavigationIcon(ThemeUtils.getBackButtonDrawable(false));
|
||||
toolbar.setNavigationIcon(BaseThemeUtils.getBackButtonDrawable(false));
|
||||
toolbar.setNavigationOnClickListener(view -> this.finish());
|
||||
toolbar.setTitle(toolbarLabel);
|
||||
final int margin = Utils.dipToPixels(16);
|
||||
|
|
@ -221,44 +245,46 @@ public class WebViewHostActivity extends Activity {
|
|||
if (textView != null) {
|
||||
textView.setTextColor(Color.BLACK);
|
||||
}
|
||||
toolbar.inflateMenu(getMenuIdentifier("revanced_webview_menu"));
|
||||
LinearLayout menuParent = Utils.getChildView(toolbar, view -> view instanceof LinearLayout);
|
||||
if (menuParent != null) {
|
||||
ImageButton menuButton = Utils.getChildView(menuParent, view -> view instanceof ImageButton);
|
||||
if (menuButton != null) {
|
||||
menuButton.setImageDrawable(ThemeUtils.getMenuButtonDrawable(false));
|
||||
if (showToolBar) {
|
||||
toolbar.inflateMenu(getMenuIdentifier("revanced_webview_menu"));
|
||||
LinearLayout menuParent = Utils.getChildView(toolbar, view -> view instanceof LinearLayout);
|
||||
if (menuParent != null) {
|
||||
ImageButton menuButton = Utils.getChildView(menuParent, view -> view instanceof ImageButton);
|
||||
if (menuButton != null) {
|
||||
menuButton.setImageDrawable(BaseThemeUtils.getMenuButtonDrawable(false));
|
||||
}
|
||||
}
|
||||
}
|
||||
int getCookies = getIdIdentifier("revanced_webview_get_cookies");
|
||||
int getDataSyncId = getIdIdentifier("revanced_webview_get_data_sync_id");
|
||||
int getVisitorData = getIdIdentifier("revanced_webview_get_visitor_data");
|
||||
int refresh = getIdIdentifier("revanced_webview_refresh");
|
||||
int getCookies = getIdIdentifier("revanced_webview_get_cookies");
|
||||
int getDataSyncId = getIdIdentifier("revanced_webview_get_data_sync_id");
|
||||
int getVisitorData = getIdIdentifier("revanced_webview_get_visitor_data");
|
||||
int refresh = getIdIdentifier("revanced_webview_refresh");
|
||||
|
||||
// Set menu item click listener.
|
||||
toolbar.setOnMenuItemClickListener(item -> {
|
||||
try {
|
||||
int itemId = item.getItemId();
|
||||
if (itemId == getCookies) {
|
||||
showDialog(cookies, str("revanced_webview_cookies"));
|
||||
return true;
|
||||
} else if (itemId == getDataSyncId) {
|
||||
showDialog(dataSyncId, str("revanced_webview_data_sync_id"));
|
||||
return true;
|
||||
} else if (itemId == getVisitorData) {
|
||||
showDialog(visitorData, str("revanced_webview_visitor_data"));
|
||||
return true;
|
||||
} else if (itemId == refresh) {
|
||||
if (webView != null) {
|
||||
webView.reload();
|
||||
// Set menu item click listener.
|
||||
toolbar.setOnMenuItemClickListener(item -> {
|
||||
try {
|
||||
int itemId = item.getItemId();
|
||||
if (itemId == getCookies) {
|
||||
showDialog(cookies, str("revanced_webview_cookies"));
|
||||
return true;
|
||||
} else if (itemId == getDataSyncId) {
|
||||
showDialog(dataSyncId, str("revanced_webview_data_sync_id"));
|
||||
return true;
|
||||
} else if (itemId == getVisitorData) {
|
||||
showDialog(visitorData, str("revanced_webview_visitor_data"));
|
||||
return true;
|
||||
} else if (itemId == refresh) {
|
||||
if (webView != null) {
|
||||
webView.reload();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
return false;
|
||||
} catch (Exception ex) {
|
||||
Logger.printException(() -> "menu click failure", ex);
|
||||
}
|
||||
return false;
|
||||
} catch (Exception ex) {
|
||||
Logger.printException(() -> "menu click failure", ex);
|
||||
}
|
||||
return false;
|
||||
});
|
||||
});
|
||||
}
|
||||
toolbar.setLayoutParams(lp);
|
||||
toolBarParent.addView(toolbar, 0);
|
||||
}
|
||||
|
|
@ -302,6 +328,9 @@ public class WebViewHostActivity extends Activity {
|
|||
|
||||
// Generate a Chrome User-Agent that matches the version of Android System WebView
|
||||
protected void checkWebViewVersion() {
|
||||
if (!isSDKAbove(26)) {
|
||||
return;
|
||||
}
|
||||
try {
|
||||
PackageInfo packageInfo = WebView.getCurrentWebViewPackage();
|
||||
if (packageInfo != null) {
|
||||
|
|
@ -343,6 +372,10 @@ public class WebViewHostActivity extends Activity {
|
|||
return isInitialized;
|
||||
}
|
||||
|
||||
protected boolean containsOAuthTokenIndicator(@NonNull String localCookies) {
|
||||
return isEmbeddedSetup && localCookies.contains(OAUTH_TOKEN);
|
||||
}
|
||||
|
||||
protected boolean containsVisitorCookieIndicator(@NonNull String localCookies) {
|
||||
return localCookies.contains("VISITOR_INFO1_LIVE=");
|
||||
}
|
||||
|
|
@ -353,14 +386,27 @@ public class WebViewHostActivity extends Activity {
|
|||
WebSettings webSettings = webView.getSettings();
|
||||
webSettings.setJavaScriptEnabled(true);
|
||||
webSettings.setUserAgentString(userAgent);
|
||||
webSettings.setSafeBrowsingEnabled(true);
|
||||
if (isSDKAbove(26)) {
|
||||
webSettings.setSafeBrowsingEnabled(true);
|
||||
}
|
||||
webSettings.setCacheMode(WebSettings.LOAD_DEFAULT);
|
||||
webSettings.setDomStorageEnabled(true);
|
||||
webSettings.setGeolocationEnabled(true);
|
||||
webView.setWebViewClient(createWebViewClient());
|
||||
webView.addJavascriptInterface(new Android(), "Android");
|
||||
CookieManager.getInstance().setAcceptThirdPartyCookies(webView, true);
|
||||
webView.loadUrl(url);
|
||||
if (!isEmbeddedSetup) {
|
||||
webView.addJavascriptInterface(new Android(), "Android");
|
||||
}
|
||||
CookieManager cookieManager = CookieManager.getInstance();
|
||||
cookieManager.acceptThirdPartyCookies(webView);
|
||||
cookieManager.setAcceptThirdPartyCookies(webView, true);
|
||||
|
||||
if (useReferer) {
|
||||
Map<String, String> extraHeaders = new HashMap<>();
|
||||
extraHeaders.put("Referer", "https://www.google.com/");
|
||||
webView.loadUrl(url, extraHeaders);
|
||||
} else {
|
||||
webView.loadUrl(url);
|
||||
}
|
||||
} catch (Exception ex) {
|
||||
Logger.printException(() -> "loadWebView failed", ex);
|
||||
}
|
||||
|
|
@ -399,7 +445,19 @@ public class WebViewHostActivity extends Activity {
|
|||
cookies = localCookies;
|
||||
Logger.printDebug(() -> "new Cookies loaded: " + localCookies);
|
||||
|
||||
if (containsVisitorCookieIndicator(localCookies)) {
|
||||
if (containsOAuthTokenIndicator(localCookies)) {
|
||||
Map<String, String> cookieMap = AuthUtils.parseCookieString(localCookies);
|
||||
if (!cookieMap.isEmpty()) {
|
||||
String oauth_token = cookieMap.get(OAUTH_TOKEN);
|
||||
webView.evaluateJavascript(
|
||||
JS_SCRIPT,
|
||||
email -> {
|
||||
email = email.replaceAll("\"", "");
|
||||
YouTubeAuthPatch.setAccessToken(email, oauth_token);
|
||||
});
|
||||
Utils.runOnMainThreadDelayed(WebViewHostActivity.this::finish, 5000L);
|
||||
}
|
||||
} else if (containsVisitorCookieIndicator(localCookies)) {
|
||||
webView.loadUrl("javascript:Android.onRetrieveVisitorData(window.yt.config_.VISITOR_DATA)");
|
||||
webView.loadUrl("javascript:Android.onRetrieveDataSyncId(window.yt.config_.DATASYNC_ID)");
|
||||
}
|
||||
|
|
@ -278,22 +278,33 @@ public class BaseThemeUtils {
|
|||
/**
|
||||
* Returns the drawable for the back button.
|
||||
*/
|
||||
@SuppressLint("UseCompatLoadingForDrawables")
|
||||
public static Drawable getBackButtonDrawable() {
|
||||
return getBackButtonDrawable(isDarkModeEnabled());
|
||||
}
|
||||
|
||||
public static Drawable getBackButtonDrawable(boolean isDarkModeEnabled) {
|
||||
Drawable drawable = getDrawable("revanced_settings_toolbar_arrow_left");
|
||||
customizeBackButtonDrawable(drawable);
|
||||
customizeBackButtonDrawable(drawable, isDarkModeEnabled);
|
||||
return drawable;
|
||||
}
|
||||
|
||||
/**
|
||||
* Customizes the back button drawable.
|
||||
*/
|
||||
public static void customizeBackButtonDrawable(Drawable drawable) {
|
||||
private static void customizeBackButtonDrawable(Drawable drawable, boolean isDarkModeEnabled) {
|
||||
if (drawable != null) {
|
||||
drawable.setTint(getAppForegroundColor());
|
||||
drawable.setTint(getAppForegroundColor(isDarkModeEnabled));
|
||||
}
|
||||
}
|
||||
|
||||
public static Drawable getMenuButtonDrawable(boolean isDarkModeEnabled) {
|
||||
final String drawableName = isDarkModeEnabled
|
||||
? "yt_outline_overflow_vertical_white_24"
|
||||
: "yt_outline_overflow_vertical_black_24";
|
||||
|
||||
return getDrawable(drawableName);
|
||||
}
|
||||
|
||||
/**
|
||||
* Allows subclasses to customize the dialog's root view background.
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -7,6 +7,8 @@ import android.net.Uri;
|
|||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import app.revanced.extension.shared.patches.PatchStatus;
|
||||
|
||||
public class IntentUtils extends Utils {
|
||||
|
||||
public static void launchExternalDownloader(@NonNull String content, @NonNull String downloaderPackageName) {
|
||||
|
|
@ -42,4 +44,44 @@ public class IntentUtils extends Utils {
|
|||
launchIntent(intent);
|
||||
}
|
||||
|
||||
public static void launchWebViewActivity(Context mContext,
|
||||
boolean clearCookiesOnStartUp,
|
||||
boolean clearCookiesOnShutDown,
|
||||
boolean useDesktopUserAgent,
|
||||
String url) {
|
||||
launchWebViewActivity(
|
||||
mContext,
|
||||
clearCookiesOnStartUp,
|
||||
clearCookiesOnShutDown,
|
||||
true,
|
||||
useDesktopUserAgent,
|
||||
false,
|
||||
url
|
||||
);
|
||||
}
|
||||
|
||||
public static void launchWebViewActivity(Context mContext,
|
||||
boolean clearCookiesOnStartUp,
|
||||
boolean clearCookiesOnShutDown,
|
||||
boolean showToolbar,
|
||||
boolean useDesktopUserAgent,
|
||||
boolean useReferer,
|
||||
String url) {
|
||||
try {
|
||||
Intent intent = new Intent();
|
||||
intent.setPackage(mContext.getPackageName());
|
||||
intent.setData(Uri.parse("revanced_webview"));
|
||||
intent.putExtra("clearCookiesOnStartUp", clearCookiesOnStartUp);
|
||||
intent.putExtra("clearCookiesOnShutDown", clearCookiesOnShutDown);
|
||||
intent.putExtra("showToolbar", showToolbar);
|
||||
intent.putExtra("useDesktopUserAgent", useDesktopUserAgent);
|
||||
intent.putExtra("useReferer", useReferer);
|
||||
intent.putExtra("url", url);
|
||||
intent.setClassName(mContext, PatchStatus.WebViewActivityClass());
|
||||
mContext.startActivity(intent);
|
||||
} catch (Exception ex) {
|
||||
Logger.printException(() -> "launchWebViewActivity failed", ex);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -77,8 +77,12 @@ public class PackageUtils extends Utils {
|
|||
|
||||
@Nullable
|
||||
private static PackageInfo getPackageInfo() {
|
||||
return getPackageInfo(getContext().getPackageName());
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static PackageInfo getPackageInfo(String packageName) {
|
||||
final PackageManager packageManager = getPackageManager();
|
||||
final String packageName = getContext().getPackageName();
|
||||
try {
|
||||
return isSDKAbove(33)
|
||||
? packageManager.getPackageInfo(packageName, PackageManager.PackageInfoFlags.of(0))
|
||||
|
|
|
|||
|
|
@ -57,7 +57,6 @@ import android.widget.Toolbar;
|
|||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import java.io.InputStream;
|
||||
import java.lang.ref.WeakReference;
|
||||
import java.text.Bidi;
|
||||
import java.text.Collator;
|
||||
|
|
@ -1020,21 +1019,6 @@ public class Utils {
|
|||
viewGroup.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
/**
|
||||
* As the class {@code org.brotli.dec.BrotliInputStream} is already included in YouTube,
|
||||
* Some classes will not be merged during patching.
|
||||
* As a workaround, the obfuscated BrotliInputStream class from YouTube is entered here during the patching process.
|
||||
*
|
||||
* @return BrotliInputStream
|
||||
*/
|
||||
public static InputStream getBrotliInputStream(InputStream inputStream) {
|
||||
// Rest of the implementation added by patch.
|
||||
if (inputStream != null) {
|
||||
Logger.printInfo(() -> "getBrotliInputStream");
|
||||
}
|
||||
return inputStream;
|
||||
}
|
||||
|
||||
public static FrameLayout.LayoutParams getLayoutParams() {
|
||||
FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
|
||||
|
||||
|
|
|
|||
|
|
@ -47,8 +47,8 @@ public final class AdsFilter extends Filter {
|
|||
// "inline_injection_entrypoint_layout."
|
||||
"inline_injection_entrypoint_layout",
|
||||
|
||||
// https://github.com/inotia00/ReVanced_Extended/issues/3298
|
||||
// "statement_banner."
|
||||
"statement_banner",
|
||||
|
||||
// "video_display_button_group_layout"
|
||||
// "video_display_carousel_button_group_layout"
|
||||
|
|
|
|||
|
|
@ -107,21 +107,23 @@ public final class DescriptionsFilter extends Filter {
|
|||
return false;
|
||||
}
|
||||
|
||||
final boolean hideCreatorSection = Settings.HIDE_CREATOR_SECTION.get();
|
||||
final boolean hideFeaturedSection = Settings.HIDE_FEATURED_SECTION.get();
|
||||
final boolean hideInfoCardsSection = Settings.HIDE_INFO_CARDS_SECTION.get();
|
||||
final boolean hideFeaturedLinksSection = Settings.HIDE_FEATURED_LINKS_SECTION.get();
|
||||
final boolean hideFeaturedVideosSection = Settings.HIDE_FEATURED_VIDEOS_SECTION.get();
|
||||
final boolean hideSubscribeButton = Settings.HIDE_SUBSCRIBE_BUTTON.get();
|
||||
|
||||
if (!hideCreatorSection && !hideFeaturedSection && !hideSubscribeButton) {
|
||||
if (!hideInfoCardsSection && !hideFeaturedLinksSection && !hideFeaturedVideosSection && !hideSubscribeButton) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (hideCreatorSection) {
|
||||
if (hideInfoCardsSection) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// "media_lockup.", "structured_description_video_lockup."
|
||||
if (path.contains("compact_infocard.")) {
|
||||
return hideFeaturedSection;
|
||||
if (path.contains("media_lockup.")) {
|
||||
return hideFeaturedLinksSection;
|
||||
} else if (path.contains("structured_description_video_lockup.")) {
|
||||
return hideFeaturedVideosSection;
|
||||
} else if (path.contains("subscribe_button.")) {
|
||||
return hideSubscribeButton;
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -77,14 +77,6 @@ public final class NavigationButtonsPatch {
|
|||
private static int emptyContentDotId = -1;
|
||||
private static int libraryCairoId = -1;
|
||||
|
||||
/**
|
||||
* Injection point.
|
||||
*/
|
||||
public static Enum<?> search;
|
||||
/**
|
||||
* Injection point.
|
||||
*/
|
||||
public static Enum<?> searchCairo;
|
||||
|
||||
/**
|
||||
* Injection point.
|
||||
|
|
@ -231,8 +223,8 @@ public final class NavigationButtonsPatch {
|
|||
if (REPLACE_NAVIGATION_BUTTON && shouldReplace(original)) {
|
||||
String enumName = original.name();
|
||||
return original.name().endsWith("CAIRO")
|
||||
? searchCairo
|
||||
: search;
|
||||
? YouTubeIcon.searchCairo
|
||||
: YouTubeIcon.search;
|
||||
}
|
||||
|
||||
return original;
|
||||
|
|
|
|||
|
|
@ -0,0 +1,12 @@
|
|||
package app.revanced.extension.youtube.patches.general;
|
||||
|
||||
public final class YouTubeIcon {
|
||||
/**
|
||||
* Injection point.
|
||||
*/
|
||||
public static Enum<?> search;
|
||||
/**
|
||||
* Injection point.
|
||||
*/
|
||||
public static Enum<?> searchCairo;
|
||||
}
|
||||
|
|
@ -5,8 +5,10 @@ import static java.lang.Boolean.TRUE;
|
|||
import static app.revanced.extension.shared.patches.PatchStatus.PackageNameYouTubeMusic;
|
||||
import static app.revanced.extension.shared.settings.Setting.migrateFromOldPreferences;
|
||||
import static app.revanced.extension.shared.settings.Setting.parent;
|
||||
import static app.revanced.extension.shared.settings.Setting.parentInverted;
|
||||
import static app.revanced.extension.shared.settings.Setting.parentsAll;
|
||||
import static app.revanced.extension.shared.settings.Setting.parentsAny;
|
||||
import static app.revanced.extension.shared.settings.Setting.parentsAnyInverted;
|
||||
import static app.revanced.extension.shared.utils.StringRef.str;
|
||||
import static app.revanced.extension.youtube.patches.player.MiniplayerPatch.MiniplayerType;
|
||||
import static app.revanced.extension.youtube.sponsorblock.objects.CategoryBehaviour.IGNORE;
|
||||
|
|
@ -192,15 +194,15 @@ public class Settings extends BaseSettings {
|
|||
|
||||
// PreferenceScreen: General - Navigation bar
|
||||
public static final BooleanSetting ENABLE_NARROW_NAVIGATION_BUTTONS = new BooleanSetting("revanced_enable_narrow_navigation_buttons", FALSE, true);
|
||||
public static final BooleanSetting HIDE_NAVIGATION_CREATE_BUTTON = new BooleanSetting("revanced_hide_navigation_create_button", FALSE, true);
|
||||
public static final BooleanSetting SWITCH_CREATE_WITH_NOTIFICATIONS_BUTTON = new BooleanSetting("revanced_switch_create_with_notifications_button", TRUE, true,
|
||||
"revanced_switch_create_with_notifications_button_user_dialog_message");
|
||||
public static final BooleanSetting HIDE_NAVIGATION_CREATE_BUTTON = new BooleanSetting("revanced_hide_navigation_create_button", FALSE, true, parentInverted(SWITCH_CREATE_WITH_NOTIFICATIONS_BUTTON));
|
||||
public static final BooleanSetting HIDE_NAVIGATION_HOME_BUTTON = new BooleanSetting("revanced_hide_navigation_home_button", FALSE, true);
|
||||
public static final BooleanSetting HIDE_NAVIGATION_LIBRARY_BUTTON = new BooleanSetting("revanced_hide_navigation_library_button", FALSE, true);
|
||||
public static final BooleanSetting HIDE_NAVIGATION_NOTIFICATIONS_BUTTON = new BooleanSetting("revanced_hide_navigation_notifications_button", FALSE, true);
|
||||
public static final BooleanSetting HIDE_NAVIGATION_NOTIFICATIONS_BUTTON = new BooleanSetting("revanced_hide_navigation_notifications_button", FALSE, true, parent(SWITCH_CREATE_WITH_NOTIFICATIONS_BUTTON));
|
||||
public static final BooleanSetting HIDE_NAVIGATION_SHORTS_BUTTON = new BooleanSetting("revanced_hide_navigation_shorts_button", FALSE, true);
|
||||
public static final BooleanSetting HIDE_NAVIGATION_SUBSCRIPTIONS_BUTTON = new BooleanSetting("revanced_hide_navigation_subscriptions_button", FALSE, true);
|
||||
public static final BooleanSetting HIDE_NAVIGATION_LABEL = new BooleanSetting("revanced_hide_navigation_label", FALSE, true);
|
||||
public static final BooleanSetting SWITCH_CREATE_WITH_NOTIFICATIONS_BUTTON = new BooleanSetting("revanced_switch_create_with_notifications_button", TRUE, true,
|
||||
"revanced_switch_create_with_notifications_button_user_dialog_message");
|
||||
public static final BooleanSetting ENABLE_TRANSLUCENT_NAVIGATION_BAR = new BooleanSetting("revanced_enable_translucent_navigation_bar", FALSE, true);
|
||||
public static final BooleanSetting HIDE_NAVIGATION_BAR = new BooleanSetting("revanced_hide_navigation_bar", FALSE, true);
|
||||
public static final BooleanSetting REPLACE_NAVIGATION_BUTTON = new BooleanSetting("revanced_replace_navigation_button", FALSE, true);
|
||||
|
|
@ -270,9 +272,9 @@ public class Settings extends BaseSettings {
|
|||
public static final BooleanSetting HIDE_VOICE_SEARCH_BUTTON = new BooleanSetting("revanced_hide_voice_search_button", FALSE, true);
|
||||
public static final BooleanSetting HIDE_YOU_MAY_LIKE_SECTION = new BooleanSetting("revanced_hide_you_may_like_section", FALSE, true);
|
||||
public static final BooleanSetting HIDE_YOUTUBE_DOODLES = new BooleanSetting("revanced_hide_youtube_doodles", FALSE, true, "revanced_hide_youtube_doodles_user_dialog_message");
|
||||
public static final BooleanSetting REPLACE_TOOLBAR_CREATE_BUTTON = new BooleanSetting("revanced_replace_toolbar_create_button", FALSE, true);
|
||||
public static final BooleanSetting REPLACE_TOOLBAR_CREATE_BUTTON = new BooleanSetting("revanced_replace_toolbar_create_button", FALSE, true, parent(SWITCH_CREATE_WITH_NOTIFICATIONS_BUTTON));
|
||||
public static final BooleanSetting REPLACE_TOOLBAR_CREATE_BUTTON_TYPE = new BooleanSetting("revanced_replace_toolbar_create_button_type", FALSE, true,
|
||||
parent(REPLACE_TOOLBAR_CREATE_BUTTON));
|
||||
parentsAll(SWITCH_CREATE_WITH_NOTIFICATIONS_BUTTON, REPLACE_TOOLBAR_CREATE_BUTTON));
|
||||
|
||||
|
||||
// PreferenceScreen: Player
|
||||
|
|
@ -281,7 +283,7 @@ public class Settings extends BaseSettings {
|
|||
public static final BooleanSetting DISABLE_AUTO_PLAYER_POPUP_PANELS = new BooleanSetting("revanced_disable_auto_player_popup_panels", TRUE, true);
|
||||
public static final BooleanSetting DISABLE_CHAPTER_SKIP_DOUBLE_TAP = new BooleanSetting("revanced_disable_chapter_skip_double_tap", FALSE);
|
||||
public static final BooleanSetting DISABLE_SPEED_OVERLAY = new BooleanSetting("revanced_disable_speed_overlay", FALSE, true);
|
||||
public static final FloatSetting SPEED_OVERLAY_VALUE = new FloatSetting("revanced_speed_overlay_value", 2.0f, true);
|
||||
public static final FloatSetting SPEED_OVERLAY_VALUE = new FloatSetting("revanced_speed_overlay_value", 2.0f, true, parentInverted(DISABLE_SPEED_OVERLAY));
|
||||
public static final BooleanSetting HIDE_CHANNEL_WATERMARK = new BooleanSetting("revanced_hide_channel_watermark", TRUE);
|
||||
public static final BooleanSetting HIDE_CROWDFUNDING_BOX = new BooleanSetting("revanced_hide_crowdfunding_box", TRUE, true);
|
||||
public static final BooleanSetting HIDE_DOUBLE_TAP_OVERLAY_FILTER = new BooleanSetting("revanced_hide_double_tap_overlay_filter", FALSE, true);
|
||||
|
|
@ -326,9 +328,9 @@ public class Settings extends BaseSettings {
|
|||
public static final IntegerSetting REMIX_BUTTON_INDEX = new IntegerSetting("revanced_remix_button_index", 3, true, parent(HIDE_ACTION_BUTTON_INDEX));
|
||||
|
||||
// PreferenceScreen: Player - Ambient mode
|
||||
public static final BooleanSetting BYPASS_AMBIENT_MODE_RESTRICTIONS = new BooleanSetting("revanced_bypass_ambient_mode_restrictions", FALSE);
|
||||
public static final BooleanSetting DISABLE_AMBIENT_MODE = new BooleanSetting("revanced_disable_ambient_mode", FALSE, true);
|
||||
public static final BooleanSetting DISABLE_AMBIENT_MODE_IN_FULLSCREEN = new BooleanSetting("revanced_disable_ambient_mode_in_fullscreen", FALSE, true);
|
||||
public static final BooleanSetting BYPASS_AMBIENT_MODE_RESTRICTIONS = new BooleanSetting("revanced_bypass_ambient_mode_restrictions", FALSE, parentInverted(DISABLE_AMBIENT_MODE));
|
||||
public static final BooleanSetting DISABLE_AMBIENT_MODE_IN_FULLSCREEN = new BooleanSetting("revanced_disable_ambient_mode_in_fullscreen", FALSE, true, parentInverted(DISABLE_AMBIENT_MODE));
|
||||
|
||||
// PreferenceScreen: Player - Channel bar
|
||||
public static final BooleanSetting HIDE_JOIN_BUTTON = new BooleanSetting("revanced_hide_join_button", TRUE);
|
||||
|
|
@ -386,16 +388,16 @@ public class Settings extends BaseSettings {
|
|||
public static final BooleanSetting HIDE_LIVE_CHAT_REPLAY_BUTTON = new BooleanSetting("revanced_hide_live_chat_replay_button", FALSE);
|
||||
public static final BooleanSetting HIDE_RELATED_VIDEOS_OVERLAY = new BooleanSetting("revanced_hide_related_videos_overlay", FALSE, true);
|
||||
|
||||
public static final BooleanSetting HIDE_QUICK_ACTIONS = new BooleanSetting("revanced_hide_quick_actions", FALSE, true);
|
||||
public static final BooleanSetting HIDE_QUICK_ACTIONS_COMMENT_BUTTON = new BooleanSetting("revanced_hide_quick_actions_comment_button", FALSE);
|
||||
public static final BooleanSetting HIDE_QUICK_ACTIONS_DISLIKE_BUTTON = new BooleanSetting("revanced_hide_quick_actions_dislike_button", FALSE);
|
||||
public static final BooleanSetting HIDE_QUICK_ACTIONS_LIKE_BUTTON = new BooleanSetting("revanced_hide_quick_actions_like_button", FALSE);
|
||||
public static final BooleanSetting HIDE_QUICK_ACTIONS_LIVE_CHAT_BUTTON = new BooleanSetting("revanced_hide_quick_actions_live_chat_button", FALSE);
|
||||
public static final BooleanSetting HIDE_QUICK_ACTIONS_MORE_BUTTON = new BooleanSetting("revanced_hide_quick_actions_more_button", FALSE);
|
||||
public static final BooleanSetting HIDE_QUICK_ACTIONS_OPEN_MIX_PLAYLIST_BUTTON = new BooleanSetting("revanced_hide_quick_actions_open_mix_playlist_button", FALSE);
|
||||
public static final BooleanSetting HIDE_QUICK_ACTIONS_OPEN_PLAYLIST_BUTTON = new BooleanSetting("revanced_hide_quick_actions_open_playlist_button", FALSE);
|
||||
public static final BooleanSetting HIDE_QUICK_ACTIONS_SAVE_TO_PLAYLIST_BUTTON = new BooleanSetting("revanced_hide_quick_actions_save_to_playlist_button", FALSE);
|
||||
public static final BooleanSetting HIDE_QUICK_ACTIONS_SHARE_BUTTON = new BooleanSetting("revanced_hide_quick_actions_share_button", FALSE);
|
||||
public static final BooleanSetting HIDE_QUICK_ACTIONS = new BooleanSetting("revanced_hide_quick_actions", FALSE, true, parentInverted(DISABLE_ENGAGEMENT_PANEL));
|
||||
public static final BooleanSetting HIDE_QUICK_ACTIONS_COMMENT_BUTTON = new BooleanSetting("revanced_hide_quick_actions_comment_button", FALSE, parentsAnyInverted(DISABLE_ENGAGEMENT_PANEL, HIDE_QUICK_ACTIONS));
|
||||
public static final BooleanSetting HIDE_QUICK_ACTIONS_DISLIKE_BUTTON = new BooleanSetting("revanced_hide_quick_actions_dislike_button", FALSE, parentsAnyInverted(DISABLE_ENGAGEMENT_PANEL, HIDE_QUICK_ACTIONS));
|
||||
public static final BooleanSetting HIDE_QUICK_ACTIONS_LIKE_BUTTON = new BooleanSetting("revanced_hide_quick_actions_like_button", FALSE, parentsAnyInverted(DISABLE_ENGAGEMENT_PANEL, HIDE_QUICK_ACTIONS));
|
||||
public static final BooleanSetting HIDE_QUICK_ACTIONS_LIVE_CHAT_BUTTON = new BooleanSetting("revanced_hide_quick_actions_live_chat_button", FALSE, parentsAnyInverted(DISABLE_ENGAGEMENT_PANEL, HIDE_QUICK_ACTIONS));
|
||||
public static final BooleanSetting HIDE_QUICK_ACTIONS_MORE_BUTTON = new BooleanSetting("revanced_hide_quick_actions_more_button", FALSE, parentsAnyInverted(DISABLE_ENGAGEMENT_PANEL, HIDE_QUICK_ACTIONS));
|
||||
public static final BooleanSetting HIDE_QUICK_ACTIONS_OPEN_MIX_PLAYLIST_BUTTON = new BooleanSetting("revanced_hide_quick_actions_open_mix_playlist_button", FALSE, parentsAnyInverted(DISABLE_ENGAGEMENT_PANEL, HIDE_QUICK_ACTIONS));
|
||||
public static final BooleanSetting HIDE_QUICK_ACTIONS_OPEN_PLAYLIST_BUTTON = new BooleanSetting("revanced_hide_quick_actions_open_playlist_button", FALSE, parentsAnyInverted(DISABLE_ENGAGEMENT_PANEL, HIDE_QUICK_ACTIONS));
|
||||
public static final BooleanSetting HIDE_QUICK_ACTIONS_SAVE_TO_PLAYLIST_BUTTON = new BooleanSetting("revanced_hide_quick_actions_save_to_playlist_button", FALSE, parentsAnyInverted(DISABLE_ENGAGEMENT_PANEL, HIDE_QUICK_ACTIONS));
|
||||
public static final BooleanSetting HIDE_QUICK_ACTIONS_SHARE_BUTTON = new BooleanSetting("revanced_hide_quick_actions_share_button", FALSE, parentsAnyInverted(DISABLE_ENGAGEMENT_PANEL, HIDE_QUICK_ACTIONS));
|
||||
public static final IntegerSetting QUICK_ACTIONS_TOP_MARGIN = new IntegerSetting("revanced_quick_actions_top_margin", 0, true);
|
||||
|
||||
public static final BooleanSetting DISABLE_LANDSCAPE_MODE = new BooleanSetting("revanced_disable_landscape_mode", FALSE, true);
|
||||
|
|
@ -476,7 +478,8 @@ public class Settings extends BaseSettings {
|
|||
public static final BooleanSetting HIDE_TIME_STAMP = new BooleanSetting("revanced_hide_time_stamp", FALSE, true);
|
||||
public static final BooleanSetting RESTORE_OLD_SEEKBAR_THUMBNAILS = new BooleanSetting("revanced_restore_old_seekbar_thumbnails",
|
||||
PatchStatus.OldSeekbarThumbnailsDefaultBoolean(), true);
|
||||
public static final BooleanSetting ENABLE_SEEKBAR_THUMBNAILS_HIGH_QUALITY = new BooleanSetting("revanced_enable_seekbar_thumbnails_high_quality", FALSE, true, "revanced_enable_seekbar_thumbnails_high_quality_dialog_message");
|
||||
public static final BooleanSetting ENABLE_SEEKBAR_THUMBNAILS_HIGH_QUALITY = new BooleanSetting("revanced_enable_seekbar_thumbnails_high_quality", FALSE, true,
|
||||
"revanced_enable_seekbar_thumbnails_high_quality_dialog_message", parentInverted(RESTORE_OLD_SEEKBAR_THUMBNAILS));
|
||||
|
||||
// PreferenceScreen: Player - Video description
|
||||
public static final BooleanSetting DISABLE_ROLLING_NUMBER_ANIMATIONS = new BooleanSetting("revanced_disable_rolling_number_animations", FALSE);
|
||||
|
|
@ -484,13 +487,14 @@ public class Settings extends BaseSettings {
|
|||
public static final BooleanSetting HIDE_ASK_SECTION = new BooleanSetting("revanced_hide_ask_section", FALSE);
|
||||
public static final BooleanSetting HIDE_ATTRIBUTES_SECTION = new BooleanSetting("revanced_hide_attributes_section", FALSE);
|
||||
public static final BooleanSetting HIDE_CHAPTERS_SECTION = new BooleanSetting("revanced_hide_chapters_section", FALSE);
|
||||
public static final BooleanSetting HIDE_CREATOR_SECTION = new BooleanSetting("revanced_hide_creator_section", FALSE);
|
||||
public static final BooleanSetting HIDE_EXPLORE_PODCAST_SECTION = new BooleanSetting("revanced_hide_explore_podcast_section", FALSE);
|
||||
public static final BooleanSetting HIDE_FEATURED_SECTION = new BooleanSetting("revanced_hide_featured_section", FALSE);
|
||||
public static final BooleanSetting HIDE_HOW_THIS_WAS_MADE_SECTION = new BooleanSetting("revanced_hide_how_this_was_made_section", FALSE);
|
||||
public static final BooleanSetting HIDE_HYPE_POINTS_SECTION = new BooleanSetting("revanced_hide_hype_points_section", FALSE);
|
||||
public static final BooleanSetting HIDE_INFO_CARDS_SECTION = new BooleanSetting("revanced_hide_info_cards_section", FALSE);
|
||||
public static final BooleanSetting HIDE_FEATURED_LINKS_SECTION = new BooleanSetting("revanced_hide_featured_links_section", FALSE, parentInverted(HIDE_INFO_CARDS_SECTION));
|
||||
public static final BooleanSetting HIDE_FEATURED_VIDEOS_SECTION = new BooleanSetting("revanced_hide_featured_videos_section", FALSE, parentInverted(HIDE_INFO_CARDS_SECTION));
|
||||
public static final BooleanSetting HIDE_SUBSCRIBE_BUTTON = new BooleanSetting("revanced_hide_subscribe_button", FALSE, parentInverted(HIDE_INFO_CARDS_SECTION));
|
||||
public static final BooleanSetting HIDE_KEY_CONCEPTS_SECTION = new BooleanSetting("revanced_hide_key_concepts_section", FALSE);
|
||||
public static final BooleanSetting HIDE_SUBSCRIBE_BUTTON = new BooleanSetting("revanced_hide_subscribe_button", FALSE);
|
||||
public static final BooleanSetting HIDE_TRANSCRIPT_SECTION = new BooleanSetting("revanced_hide_transcript_section", FALSE);
|
||||
public static final BooleanSetting DISABLE_VIDEO_DESCRIPTION_INTERACTION = new BooleanSetting("revanced_disable_video_description_interaction", FALSE, true);
|
||||
public static final BooleanSetting EXPAND_VIDEO_DESCRIPTION = new BooleanSetting("revanced_expand_video_description", FALSE, true);
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
package app.revanced.extension.youtube.settings.preference;
|
||||
|
||||
import static app.revanced.extension.shared.utils.IntentUtils.launchWebViewActivity;
|
||||
import static app.revanced.extension.shared.utils.StringRef.str;
|
||||
import static app.revanced.extension.youtube.utils.ExtendedUtils.launchWebViewActivity;
|
||||
|
||||
import android.app.Dialog;
|
||||
import android.content.Context;
|
||||
|
|
@ -78,6 +78,8 @@ public class GetCookiesPreference extends Preference implements Preference.OnPre
|
|||
true,
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
YOUTUBE_EMBEDDED_PLAYER_URL
|
||||
),
|
||||
// Dismiss dialog when onNeutralClick.
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ import android.util.AttributeSet;
|
|||
import android.util.Pair;
|
||||
import android.widget.LinearLayout;
|
||||
|
||||
import app.revanced.extension.shared.patches.auth.AuthPatch;
|
||||
import app.revanced.extension.shared.patches.auth.YouTubeVRAuthPatch;
|
||||
import app.revanced.extension.shared.ui.CustomDialog;
|
||||
import app.revanced.extension.youtube.settings.Settings;
|
||||
|
||||
|
|
@ -49,7 +49,7 @@ public class SpoofStreamingDataVRAuthTokenPreference extends Preference implemen
|
|||
String dialogTitle = str("revanced_spoof_streaming_data_vr_auth_token_dialog_title");
|
||||
String dialogMessage = str("revanced_spoof_streaming_data_vr_auth_token_dialog_message");
|
||||
String resetButtonText = str("revanced_spoof_streaming_data_vr_auth_token_dialog_reset_text");
|
||||
if (AuthPatch.isDeviceCodeAvailable()) {
|
||||
if (YouTubeVRAuthPatch.isDeviceCodeAvailable()) {
|
||||
dialogPair = CustomDialog.create(
|
||||
context,
|
||||
// Title.
|
||||
|
|
@ -62,15 +62,15 @@ public class SpoofStreamingDataVRAuthTokenPreference extends Preference implemen
|
|||
str("revanced_spoof_streaming_data_vr_auth_token_dialog_get_authorization_token_text"),
|
||||
// OK button action.
|
||||
() -> {
|
||||
AuthPatch.setRefreshToken();
|
||||
AuthPatch.setAccessToken(true);
|
||||
YouTubeVRAuthPatch.setRefreshToken();
|
||||
YouTubeVRAuthPatch.setAccessToken(true);
|
||||
},
|
||||
// Cancel button action.
|
||||
null,
|
||||
// Neutral button text.
|
||||
resetButtonText,
|
||||
// Neutral button action.
|
||||
AuthPatch::clearAll,
|
||||
YouTubeVRAuthPatch::clearAll,
|
||||
// Dismiss dialog when onNeutralClick.
|
||||
true
|
||||
);
|
||||
|
|
@ -86,13 +86,13 @@ public class SpoofStreamingDataVRAuthTokenPreference extends Preference implemen
|
|||
// OK button text.
|
||||
str("revanced_spoof_streaming_data_vr_auth_token_dialog_get_activation_code_text"),
|
||||
// OK button action.
|
||||
() -> AuthPatch.setActivationCode(context),
|
||||
() -> YouTubeVRAuthPatch.setActivationCode(context),
|
||||
// Cancel button action.
|
||||
null,
|
||||
// Neutral button text.
|
||||
resetButtonText,
|
||||
// Neutral button action.
|
||||
AuthPatch::clearAll,
|
||||
YouTubeVRAuthPatch::clearAll,
|
||||
// Dismiss dialog when onNeutralClick.
|
||||
true
|
||||
);
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
package app.revanced.extension.youtube.settings.preference;
|
||||
|
||||
import static app.revanced.extension.shared.utils.IntentUtils.launchWebViewActivity;
|
||||
import static app.revanced.extension.shared.utils.StringRef.str;
|
||||
import static app.revanced.extension.shared.utils.Utils.dipToPixels;
|
||||
import static app.revanced.extension.youtube.utils.ExtendedUtils.launchWebViewActivity;
|
||||
|
||||
import android.app.Dialog;
|
||||
import android.content.Context;
|
||||
|
|
|
|||
|
|
@ -207,16 +207,10 @@ public class YouTubePreferenceFragment extends ToolbarPreferenceFragment {
|
|||
}
|
||||
|
||||
private void setPreferenceAvailability() {
|
||||
setAmbientModePreference();
|
||||
setTabletLayoutPreference();
|
||||
setFullScreenPanelPreference();
|
||||
setQuickActionsPreference();
|
||||
setNavigationPreference();
|
||||
setPatchInformationPreference();
|
||||
setRYDPreference();
|
||||
setSeekBarPreference();
|
||||
setShortsPreference();
|
||||
setSpeedOverlayPreference();
|
||||
setSpoofStreamingDataPreference();
|
||||
setWhitelistPreference();
|
||||
}
|
||||
|
|
@ -232,17 +226,6 @@ public class YouTubePreferenceFragment extends ToolbarPreferenceFragment {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Enable/Disable Preference related to Ambient Mode
|
||||
*/
|
||||
private void setAmbientModePreference() {
|
||||
disablePreferences(
|
||||
Settings.DISABLE_AMBIENT_MODE.get(),
|
||||
Settings.BYPASS_AMBIENT_MODE_RESTRICTIONS,
|
||||
Settings.DISABLE_AMBIENT_MODE_IN_FULLSCREEN
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Enable/Disable Preferences not working in tablet layout
|
||||
*/
|
||||
|
|
@ -260,62 +243,6 @@ public class YouTubePreferenceFragment extends ToolbarPreferenceFragment {
|
|||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Enable/Disable Preference related to Fullscreen Panel
|
||||
*/
|
||||
private void setFullScreenPanelPreference() {
|
||||
disablePreferences(
|
||||
Settings.DISABLE_ENGAGEMENT_PANEL.get(),
|
||||
Settings.HIDE_QUICK_ACTIONS,
|
||||
Settings.HIDE_QUICK_ACTIONS_COMMENT_BUTTON,
|
||||
Settings.HIDE_QUICK_ACTIONS_DISLIKE_BUTTON,
|
||||
Settings.HIDE_QUICK_ACTIONS_LIKE_BUTTON,
|
||||
Settings.HIDE_QUICK_ACTIONS_LIVE_CHAT_BUTTON,
|
||||
Settings.HIDE_QUICK_ACTIONS_MORE_BUTTON,
|
||||
Settings.HIDE_QUICK_ACTIONS_OPEN_MIX_PLAYLIST_BUTTON,
|
||||
Settings.HIDE_QUICK_ACTIONS_OPEN_PLAYLIST_BUTTON,
|
||||
Settings.HIDE_QUICK_ACTIONS_SAVE_TO_PLAYLIST_BUTTON,
|
||||
Settings.HIDE_QUICK_ACTIONS_SHARE_BUTTON
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Enable/Disable Preference related to Hide Quick Actions
|
||||
*/
|
||||
private void setQuickActionsPreference() {
|
||||
final boolean isAvailable =
|
||||
Settings.DISABLE_ENGAGEMENT_PANEL.get() || Settings.HIDE_QUICK_ACTIONS.get();
|
||||
|
||||
disablePreferences(
|
||||
isAvailable,
|
||||
Settings.HIDE_QUICK_ACTIONS_COMMENT_BUTTON,
|
||||
Settings.HIDE_QUICK_ACTIONS_DISLIKE_BUTTON,
|
||||
Settings.HIDE_QUICK_ACTIONS_LIKE_BUTTON,
|
||||
Settings.HIDE_QUICK_ACTIONS_LIVE_CHAT_BUTTON,
|
||||
Settings.HIDE_QUICK_ACTIONS_MORE_BUTTON,
|
||||
Settings.HIDE_QUICK_ACTIONS_OPEN_MIX_PLAYLIST_BUTTON,
|
||||
Settings.HIDE_QUICK_ACTIONS_OPEN_PLAYLIST_BUTTON,
|
||||
Settings.HIDE_QUICK_ACTIONS_SAVE_TO_PLAYLIST_BUTTON,
|
||||
Settings.HIDE_QUICK_ACTIONS_SHARE_BUTTON
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Enable/Disable Preference related to Navigation settings
|
||||
*/
|
||||
private void setNavigationPreference() {
|
||||
disablePreferences(
|
||||
Settings.SWITCH_CREATE_WITH_NOTIFICATIONS_BUTTON.get(),
|
||||
Settings.HIDE_NAVIGATION_CREATE_BUTTON
|
||||
);
|
||||
disablePreferences(
|
||||
!Settings.SWITCH_CREATE_WITH_NOTIFICATIONS_BUTTON.get(),
|
||||
Settings.HIDE_NAVIGATION_NOTIFICATIONS_BUTTON,
|
||||
Settings.REPLACE_TOOLBAR_CREATE_BUTTON,
|
||||
Settings.REPLACE_TOOLBAR_CREATE_BUTTON_TYPE
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set patch information preference summary
|
||||
*/
|
||||
|
|
@ -374,16 +301,6 @@ public class YouTubePreferenceFragment extends ToolbarPreferenceFragment {
|
|||
compactLayoutPreference.setOnPreferenceChangeListener(clearAllUICaches);
|
||||
}
|
||||
|
||||
/**
|
||||
* Enable/Disable Preference related to Seek bar settings
|
||||
*/
|
||||
private void setSeekBarPreference() {
|
||||
disablePreferences(
|
||||
Settings.RESTORE_OLD_SEEKBAR_THUMBNAILS.get(),
|
||||
Settings.ENABLE_SEEKBAR_THUMBNAILS_HIGH_QUALITY
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Enable/Disable Preference related to Shorts settings
|
||||
*/
|
||||
|
|
@ -397,16 +314,6 @@ public class YouTubePreferenceFragment extends ToolbarPreferenceFragment {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Enable/Disable Preference related to Speed overlay settings
|
||||
*/
|
||||
private void setSpeedOverlayPreference() {
|
||||
disablePreferences(
|
||||
Settings.DISABLE_SPEED_OVERLAY.get(),
|
||||
Settings.SPEED_OVERLAY_VALUE
|
||||
);
|
||||
}
|
||||
|
||||
private void setSpoofStreamingDataPreference() {
|
||||
if (findPreference(Settings.SPOOF_STREAMING_DATA_DEFAULT_CLIENT.key) instanceof ListPreference listPreference
|
||||
&& findPreference(SPOOF_STREAMING_DATA_USE_JS.key) instanceof SwitchPreference switchPreference) {
|
||||
|
|
|
|||
|
|
@ -149,26 +149,6 @@ public class ExtendedUtils extends PackageUtils {
|
|||
return additionalSettingsEnabled;
|
||||
}
|
||||
|
||||
public static void launchWebViewActivity(Context mContext,
|
||||
boolean clearCookiesOnStartUp,
|
||||
boolean clearCookiesOnShutDown,
|
||||
boolean useDesktopUserAgent,
|
||||
String url) {
|
||||
try {
|
||||
Intent intent = new Intent();
|
||||
intent.setPackage(mContext.getPackageName());
|
||||
intent.setData(Uri.parse("revanced_webview"));
|
||||
intent.putExtra("clearCookiesOnStartUp", clearCookiesOnStartUp);
|
||||
intent.putExtra("clearCookiesOnShutDown", clearCookiesOnShutDown);
|
||||
intent.putExtra("useDesktopUserAgent", useDesktopUserAgent);
|
||||
intent.putExtra("url", url);
|
||||
intent.setClassName(mContext, "com.google.android.libraries.youtube.player.features.gl.vr.VrWelcomeActivity");
|
||||
mContext.startActivity(intent);
|
||||
} catch (Exception ex) {
|
||||
Logger.printException(() -> "launchWebViewActivity failed", ex);
|
||||
}
|
||||
}
|
||||
|
||||
public static LinearLayout prepareMainLayout(Context mContext) {
|
||||
return prepareMainLayout(mContext, false);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,27 +18,6 @@ public class ThemeUtils extends BaseThemeUtils {
|
|||
return getStyleIdentifier(themeName);
|
||||
}
|
||||
|
||||
public static Drawable getBackButtonDrawable(boolean isDarkModeEnabled) {
|
||||
Drawable drawable = getDrawable("revanced_settings_toolbar_arrow_left");
|
||||
if (drawable != null) {
|
||||
drawable.setTint(getAppForegroundColor(isDarkModeEnabled));
|
||||
return drawable;
|
||||
}
|
||||
final String drawableName = isDarkModeEnabled
|
||||
? "yt_outline_arrow_left_white_24"
|
||||
: "yt_outline_arrow_left_black_24";
|
||||
|
||||
return getDrawable(drawableName);
|
||||
}
|
||||
|
||||
public static Drawable getMenuButtonDrawable(boolean isDarkModeEnabled) {
|
||||
final String drawableName = isDarkModeEnabled
|
||||
? "yt_outline_overflow_vertical_white_24"
|
||||
: "yt_outline_overflow_vertical_black_24";
|
||||
|
||||
return getDrawable(drawableName);
|
||||
}
|
||||
|
||||
public static Drawable getTrashButtonDrawable() {
|
||||
final String drawableName = isDarkModeEnabled()
|
||||
? "yt_outline_trash_can_white_24"
|
||||
|
|
|
|||
|
|
@ -0,0 +1,174 @@
|
|||
/*
|
||||
* Aurora Store
|
||||
* Copyright (C) 2019, Rahul Kumar Patel <whyorean@gmail.com>
|
||||
*
|
||||
* Aurora Store is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Aurora Store is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with Aurora Store. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
package com.aurora.store.adapter;
|
||||
|
||||
import com.dragons.aurora.playstoreapiv2.AuthException;
|
||||
import com.dragons.aurora.playstoreapiv2.GooglePlayAPI;
|
||||
import com.dragons.aurora.playstoreapiv2.HttpClientAdapter;
|
||||
|
||||
import org.apache.commons.collections4.MapUtils;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import app.revanced.extension.shared.utils.Logger;
|
||||
import okhttp3.Cookie;
|
||||
import okhttp3.CookieJar;
|
||||
import okhttp3.FormBody;
|
||||
import okhttp3.Headers;
|
||||
import okhttp3.HttpUrl;
|
||||
import okhttp3.MediaType;
|
||||
import okhttp3.OkHttpClient;
|
||||
import okhttp3.Request;
|
||||
import okhttp3.RequestBody;
|
||||
import okhttp3.Response;
|
||||
|
||||
public class OkHttpClientAdapter extends HttpClientAdapter {
|
||||
|
||||
private final OkHttpClient client;
|
||||
|
||||
public OkHttpClientAdapter() {
|
||||
OkHttpClient.Builder builder = new OkHttpClient.Builder()
|
||||
.connectTimeout(20, TimeUnit.SECONDS)
|
||||
.readTimeout(20, TimeUnit.SECONDS)
|
||||
.writeTimeout(20, TimeUnit.SECONDS)
|
||||
.cookieJar(new CookieJar() {
|
||||
private final HashMap<HttpUrl, List<Cookie>> cookieStore = new HashMap<>();
|
||||
|
||||
@Override
|
||||
public void saveFromResponse(@NotNull HttpUrl url, @NotNull List<Cookie> cookies) {
|
||||
cookieStore.put(url, cookies);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public List<Cookie> loadForRequest(@NotNull HttpUrl url) {
|
||||
List<Cookie> cookies = cookieStore.get(url);
|
||||
return cookies != null ? cookies : new ArrayList<>();
|
||||
}
|
||||
});
|
||||
client = builder.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public byte[] get(String url, Map<String, String> params, Map<String, String> headers) throws IOException {
|
||||
Request.Builder requestBuilder = new Request.Builder()
|
||||
.url(buildUrl(url, params))
|
||||
.get();
|
||||
return request(requestBuilder, headers);
|
||||
}
|
||||
|
||||
@Override
|
||||
public byte[] post(String url, Map<String, String> params, Map<String, String> headers) throws IOException {
|
||||
headers.put("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
|
||||
|
||||
FormBody.Builder bodyBuilder = new FormBody.Builder();
|
||||
if (MapUtils.isNotEmpty(params)) {
|
||||
for (String name : params.keySet()) {
|
||||
String value = params.get(name);
|
||||
if (value != null) {
|
||||
bodyBuilder.add(name, value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Request.Builder requestBuilder = new Request.Builder()
|
||||
.url(url)
|
||||
.post(bodyBuilder.build());
|
||||
|
||||
return post(url, requestBuilder, headers);
|
||||
}
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("deprecation")
|
||||
public byte[] post(String url, byte[] body, Map<String, String> headers) throws IOException {
|
||||
if (!headers.containsKey("Content-Type")) {
|
||||
headers.put("Content-Type", "application/x-protobuf");
|
||||
}
|
||||
|
||||
Request.Builder requestBuilder = new Request.Builder()
|
||||
.url(url)
|
||||
.post(RequestBody.create(MediaType.parse("application/x-protobuf"), body));
|
||||
|
||||
return post(url, requestBuilder, headers);
|
||||
}
|
||||
|
||||
private byte[] post(String url, Request.Builder requestBuilder, Map<String, String> headers) throws IOException {
|
||||
requestBuilder.url(url);
|
||||
return request(requestBuilder, headers);
|
||||
}
|
||||
|
||||
|
||||
private byte[] request(Request.Builder requestBuilder, Map<String, String> headers) throws IOException {
|
||||
Request request = requestBuilder
|
||||
.headers(Headers.of(headers))
|
||||
.build();
|
||||
int code;
|
||||
byte[] content = new byte[0];
|
||||
try (Response response = client.newCall(request).execute()) {
|
||||
code = response.code();
|
||||
var body = response.body();
|
||||
if (body != null) {
|
||||
content = body.bytes();
|
||||
}
|
||||
}
|
||||
if (content.length == 0) return null;
|
||||
|
||||
if (code == 401 || code == 403) {
|
||||
AuthException authException = new AuthException("Auth error", code);
|
||||
Map<String, String> authResponse = GooglePlayAPI.parseResponse(new String(content));
|
||||
if ("NeedsBrowser".equals(authResponse.get("Error"))) {
|
||||
authException.setTwoFactorUrl(authResponse.get("Url"));
|
||||
}
|
||||
throw authException;
|
||||
} else if (code == 404) {
|
||||
Map<String, String> authResponse = GooglePlayAPI.parseResponse(new String(content));
|
||||
if ("UNKNOWN_ERR".equals(authResponse.get("Error"))) {
|
||||
Logger.printException(() -> "Unknown error occurred: " + code);
|
||||
} else
|
||||
Logger.printException(() -> "App not found: " + code);
|
||||
} else if (code == 429) {
|
||||
Logger.printException(() -> "Rate-limiting enabled, you are making too many requests: " + code);
|
||||
} else if (code >= 500) {
|
||||
Logger.printException(() -> "Server error: " + code);
|
||||
} else if (code >= 400) {
|
||||
Logger.printException(() -> "Malformed request: " + code);
|
||||
}
|
||||
return content;
|
||||
}
|
||||
|
||||
public String buildUrl(String url, Map<String, String> params) {
|
||||
var httpUrl = HttpUrl.parse(url);
|
||||
if (httpUrl == null) return null;
|
||||
HttpUrl.Builder urlBuilder = httpUrl.newBuilder();
|
||||
if (null != params && !params.isEmpty()) {
|
||||
for (String name : params.keySet()) {
|
||||
urlBuilder.addQueryParameter(name, params.get(name));
|
||||
}
|
||||
}
|
||||
return urlBuilder.build().toString();
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,49 @@
|
|||
/*
|
||||
* Aurora Store
|
||||
* Copyright (C) 2019, Rahul Kumar Patel <whyorean@gmail.com>
|
||||
*
|
||||
* Yalp Store
|
||||
* Copyright (C) 2018 Sergey Yeriomin <yeriomin@gmail.com>
|
||||
*
|
||||
* Aurora Store is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Aurora Store is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with Aurora Store. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
package com.aurora.store.provider;
|
||||
|
||||
import android.os.Build;
|
||||
|
||||
import com.dragons.aurora.playstoreapiv2.DeviceInfoProvider;
|
||||
|
||||
public class NativeDeviceInfoProvider implements DeviceInfoProvider {
|
||||
|
||||
private NativeGsfVersionProvider gsfVersionProvider;
|
||||
|
||||
public void setGsfVersionProvider() {
|
||||
gsfVersionProvider = new NativeGsfVersionProvider();
|
||||
}
|
||||
|
||||
public int getSdkVersion() {
|
||||
return Build.VERSION.SDK_INT;
|
||||
}
|
||||
|
||||
public int getPlayServicesVersion() {
|
||||
return gsfVersionProvider.getGsfVersionCode(true);
|
||||
}
|
||||
|
||||
public String getAuthUserAgentString() {
|
||||
return "GoogleAuth/1.4 (" + Build.DEVICE + " " + Build.ID + ")";
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,50 @@
|
|||
/*
|
||||
* Aurora Store
|
||||
* Copyright (C) 2019, Rahul Kumar Patel <whyorean@gmail.com>
|
||||
*
|
||||
* Yalp Store
|
||||
* Copyright (C) 2018 Sergey Yeriomin <yeriomin@gmail.com>
|
||||
*
|
||||
* Aurora Store is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Aurora Store is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with Aurora Store. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
package com.aurora.store.provider;
|
||||
|
||||
import android.content.pm.PackageInfo;
|
||||
|
||||
import app.revanced.extension.shared.utils.PackageUtils;
|
||||
|
||||
public class NativeGsfVersionProvider {
|
||||
|
||||
static private final String GOOGLE_SERVICES_PACKAGE_ID = "com.google.android.gms";
|
||||
|
||||
static private final int GOOGLE_SERVICES_VERSION_CODE = 250434004;
|
||||
|
||||
private int gsfVersionCode = 0;
|
||||
|
||||
public NativeGsfVersionProvider() {
|
||||
PackageInfo packageInfo = PackageUtils.getPackageInfo(GOOGLE_SERVICES_PACKAGE_ID);
|
||||
if (packageInfo != null) {
|
||||
gsfVersionCode = packageInfo.versionCode;
|
||||
}
|
||||
}
|
||||
|
||||
public int getGsfVersionCode(boolean defaultIfNotFound) {
|
||||
return defaultIfNotFound && gsfVersionCode < GOOGLE_SERVICES_VERSION_CODE
|
||||
? GOOGLE_SERVICES_VERSION_CODE
|
||||
: gsfVersionCode;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,34 @@
|
|||
package com.aurora.store.task;
|
||||
|
||||
import android.util.Pair;
|
||||
|
||||
import com.aurora.store.adapter.OkHttpClientAdapter;
|
||||
import com.aurora.store.util.ApiBuilderUtil;
|
||||
import com.dragons.aurora.playstoreapiv2.GooglePlayAPI;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import java.util.Locale;
|
||||
|
||||
public class AuthTask {
|
||||
protected GooglePlayAPI api;
|
||||
|
||||
public AuthTask() {
|
||||
api = new GooglePlayAPI();
|
||||
api.setLocale(Locale.getDefault());
|
||||
api.setDeviceInfoProvider(ApiBuilderUtil.getDeviceInfoProvider());
|
||||
api.setClient(new OkHttpClientAdapter());
|
||||
}
|
||||
|
||||
public Pair<String, String> getAuthToken(String email, String oauth_token) throws Exception {
|
||||
String aasToken = api.generateAASToken(email, oauth_token);
|
||||
if (StringUtils.isNotEmpty(aasToken)) {
|
||||
return new Pair<>(aasToken, api.generateYouTubeToken(email, aasToken));
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public String refreshAuthToken(String email, String aasToken) throws Exception {
|
||||
return api.generateYouTubeToken(email, aasToken);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
package com.aurora.store.util;
|
||||
|
||||
import com.aurora.store.provider.NativeDeviceInfoProvider;
|
||||
import com.dragons.aurora.playstoreapiv2.DeviceInfoProvider;
|
||||
|
||||
public class ApiBuilderUtil {
|
||||
public static DeviceInfoProvider getDeviceInfoProvider() {
|
||||
NativeDeviceInfoProvider deviceInfoProvider = new NativeDeviceInfoProvider();
|
||||
deviceInfoProvider.setGsfVersionProvider();
|
||||
return deviceInfoProvider;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
package com.liskovsoft.googlecommon.common.api
|
||||
|
||||
import com.liskovsoft.googlecommon.common.converters.regexp.WithRegExp
|
||||
import retrofit2.Call
|
||||
import retrofit2.http.GET
|
||||
import retrofit2.http.Url
|
||||
|
||||
@WithRegExp
|
||||
internal interface FileApi {
|
||||
@GET
|
||||
fun getContent(@Url fileUrl: String?): Call<FileContent?>?
|
||||
|
||||
@GET
|
||||
fun getHeaders(@Url fileUrl: String?): Call<Void?>?
|
||||
}
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
package com.liskovsoft.googlecommon.common.api
|
||||
|
||||
import com.liskovsoft.googlecommon.common.converters.regexp.RegExp
|
||||
|
||||
internal class FileContent {
|
||||
@RegExp("[\\w\\W]*")
|
||||
private val mContent: String? = null
|
||||
|
||||
val content: String?
|
||||
get() = mContent
|
||||
}
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
package com.liskovsoft.googlecommon.common.converters;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.lang.annotation.Target;
|
||||
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@Target({ElementType.FIELD})
|
||||
public @interface FieldNullable {
|
||||
}
|
||||
|
|
@ -1,76 +0,0 @@
|
|||
/*
|
||||
* Copyright (C) 2015 Square, Inc.
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
package com.liskovsoft.googlecommon.common.converters.gson;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.TypeAdapter;
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
|
||||
import java.lang.annotation.Annotation;
|
||||
import java.lang.reflect.Type;
|
||||
|
||||
import okhttp3.RequestBody;
|
||||
import okhttp3.ResponseBody;
|
||||
import retrofit2.Converter;
|
||||
import retrofit2.Retrofit;
|
||||
|
||||
/**
|
||||
* A {@linkplain Converter.Factory converter} which uses Gson for JSON.
|
||||
* <p>
|
||||
* Because Gson is so flexible in the types it supports, this converter assumes that it can handle
|
||||
* all types. If you are mixing JSON serialization with something else (such as protocol buffers),
|
||||
* you must {@linkplain Retrofit.Builder#addConverterFactory(Converter.Factory) add this instance}
|
||||
* last to allow the other converters a chance to see their types.
|
||||
*/
|
||||
public final class GsonConverterFactory extends Converter.Factory {
|
||||
/**
|
||||
* Create an instance using a default {@link Gson} instance for conversion. Encoding to JSON and
|
||||
* decoding from JSON (when no charset is specified by a header) will use UTF-8.
|
||||
*/
|
||||
public static GsonConverterFactory create() {
|
||||
return create(new Gson());
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an instance using {@code gson} for conversion. Encoding to JSON and
|
||||
* decoding from JSON (when no charset is specified by a header) will use UTF-8.
|
||||
*/
|
||||
@SuppressWarnings("ConstantConditions") // Guarding public API nullability.
|
||||
public static GsonConverterFactory create(Gson gson) {
|
||||
if (gson == null) throw new NullPointerException("gson == null");
|
||||
return new GsonConverterFactory(gson);
|
||||
}
|
||||
|
||||
private final Gson gson;
|
||||
|
||||
private GsonConverterFactory(Gson gson) {
|
||||
this.gson = gson;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Converter<ResponseBody, ?> responseBodyConverter(Type type, Annotation[] annotations,
|
||||
Retrofit retrofit) {
|
||||
TypeAdapter<?> adapter = gson.getAdapter(TypeToken.get(type));
|
||||
return new GsonResponseBodyConverter<>(gson, adapter);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Converter<?, RequestBody> requestBodyConverter(Type type,
|
||||
Annotation[] parameterAnnotations, Annotation[] methodAnnotations, Retrofit retrofit) {
|
||||
TypeAdapter<?> adapter = gson.getAdapter(TypeToken.get(type));
|
||||
return new GsonRequestBodyConverter<>(gson, adapter);
|
||||
}
|
||||
}
|
||||
|
|
@ -1,53 +0,0 @@
|
|||
/*
|
||||
* Copyright (C) 2015 Square, Inc.
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
package com.liskovsoft.googlecommon.common.converters.gson;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.TypeAdapter;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.nio.charset.Charset;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
|
||||
import okhttp3.MediaType;
|
||||
import okhttp3.RequestBody;
|
||||
import retrofit2.Converter;
|
||||
|
||||
final class GsonRequestBodyConverter<T> implements Converter<T, RequestBody> {
|
||||
private static final MediaType MEDIA_TYPE = MediaType.get("application/json; charset=UTF-8");
|
||||
private static final Charset UTF_8 = StandardCharsets.UTF_8;
|
||||
|
||||
private final Gson gson;
|
||||
private final TypeAdapter<T> adapter;
|
||||
|
||||
GsonRequestBodyConverter(Gson gson, TypeAdapter<T> adapter) {
|
||||
this.gson = gson;
|
||||
this.adapter = adapter;
|
||||
}
|
||||
|
||||
@Override
|
||||
public RequestBody convert(T value) throws IOException {
|
||||
//Buffer buffer = new Buffer();
|
||||
//Writer writer = new OutputStreamWriter(buffer.outputStream(), UTF_8);
|
||||
//JsonWriter jsonWriter = gson.newJsonWriter(writer);
|
||||
//adapter.write(jsonWriter, value);
|
||||
//jsonWriter.close();
|
||||
//return RequestBody.create(MEDIA_TYPE, buffer.readByteString());
|
||||
|
||||
// Accept raw json body
|
||||
return RequestBody.create(MEDIA_TYPE, value.toString());
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue