Pif: Initialize

Signed-off-by: AnierinB <anierin@evolution-x.org>
This commit is contained in:
AnierinB
2024-08-23 01:56:39 +00:00
commit 3c8212e773
8 changed files with 302 additions and 0 deletions

27
Android.bp Normal file
View File

@@ -0,0 +1,27 @@
//
// Copyright (C) 2023-2024 The Evolution X Project
// SPDX-License-Identifier: Apache-2.0
//
android_app {
name: "Pif",
defaults: [
"SettingsLibDefaults",
],
srcs: ["src/**/*.java"],
resource_dirs: ["res"],
certificate: "platform",
platform_apis: true,
system_ext_specific: true,
static_libs: [
"androidx.core_core",
"androidx.preference_preference",
],
optimize: {
proguard_flags_files: ["proguard.flags"],
},
}

28
AndroidManifest.xml Normal file
View File

@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2023-2024 The Evolution X Project
SPDX-License-Identifier: Apache-2.0
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.goolag.pif"
android:versionCode="3"
android:versionName="3.0" >
<application
android:label="@string/app_name"
android:theme="@style/Theme.SubSettingsBase">
<!-- Pif activity -->
<activity
android:name=".PifActivity"
android:label="@string/pif_title"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
</application>
</manifest>

3
proguard.flags Normal file
View File

@@ -0,0 +1,3 @@
-keep class com.goolag.pif.** {
*;
}

30
res/values/arrays.xml Normal file
View File

@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2023-2024 The Evolution X Project
SPDX-License-Identifier: Apache-2.0
-->
<resources>
<!-- Master device array -->
<string-array name="device_arrays" translatable="false">
<item>device_1</item>
</string-array>
<!-- Device 1 -->
<string-array name="device_1" translatable="false">
<item></item> <!-- MANUFACTURER -->
<item></item> <!-- MODEL -->
<item></item> <!-- FINGERPRINT -->
<item></item> <!-- BRAND -->
<item></item> <!-- PRODUCT -->
<item></item> <!-- DEVICE -->
<item></item> <!-- RELEASE -->
<item></item> <!-- ID -->
<item></item> <!-- INCREMENTAL -->
<item></item> <!-- TYPE -->
<item></item> <!-- TAGS -->
<item></item> <!-- SECURITY_PATCH -->
<item></item> <!-- DEVICE_INITIAL_SDK_INT -->
</string-array>
</resources>

24
res/values/strings.xml Normal file
View File

@@ -0,0 +1,24 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2023-2024 The Evolution X Project
SPDX-License-Identifier: Apache-2.0
-->
<resources>
<string name="app_name">Pif</string>
<string name="pif_title">Play integrity fix</string>
<string name="manufacturer_title">Manufacturer</string>
<string name="model_title">Model</string>
<string name="fingerprint_title">Fingerprint</string>
<string name="brand_title">Brand</string>
<string name="product_title">Product</string>
<string name="device_title">Device</string>
<string name="release_title">Release</string>
<string name="id_title">ID</string>
<string name="incremental_title">Incremental</string>
<string name="type_title">Type</string>
<string name="tags_title">Tags</string>
<string name="security_patch_title">Security patch</string>
<string name="device_initial_sdk_int_title">Shipping API level</string>
</resources>

76
res/xml/main.xml Normal file
View File

@@ -0,0 +1,76 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2023-2024 The Evolution X Project
SPDX-License-Identifier: Apache-2.0
-->
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:settings="http://schemas.android.com/apk/res/com.goolag.pif">
<com.android.settingslib.widget.TopIntroPreference
android:key="device_intro"/>
<Preference
android:key="manufacturer"
android:title="@string/manufacturer_title"
android:selectable="false" />
<Preference
android:key="model"
android:title="@string/model_title"
android:selectable="false" />
<Preference
android:key="fingerprint"
android:title="@string/fingerprint_title"
android:selectable="false" />
<Preference
android:key="brand"
android:title="@string/brand_title"
android:selectable="false" />
<Preference
android:key="product"
android:title="@string/product_title"
android:selectable="false" />
<Preference
android:key="device"
android:title="@string/device_title"
android:selectable="false" />
<Preference
android:key="release"
android:title="@string/release_title"
android:selectable="false" />
<Preference
android:key="id"
android:title="@string/id_title"
android:selectable="false" />
<Preference
android:key="incremental"
android:title="@string/incremental_title"
android:selectable="false" />
<Preference
android:key="type"
android:title="@string/type_title"
android:selectable="false" />
<Preference
android:key="tags"
android:title="@string/tags_title"
android:selectable="false" />
<Preference
android:key="security_patch"
android:title="@string/security_patch_title"
android:selectable="false" />
<Preference
android:key="device_initial_sdk_int"
android:title="@string/device_initial_sdk_int_title"
android:selectable="false" />
</PreferenceScreen>

View File

@@ -0,0 +1,91 @@
/*
* Copyright (C) 2023-2024 The Evolution X Project
* SPDX-License-Identifier: Apache-2.0
*/
package com.goolag.pif;
import android.content.SharedPreferences;
import android.os.Build;
import android.os.Bundle;
import android.provider.Settings;
import androidx.preference.Preference;
import androidx.preference.PreferenceFragmentCompat;
import androidx.preference.PreferenceManager;
import com.android.internal.util.evolution.PixelPropsUtils;
import com.android.settingslib.widget.TopIntroPreference;
import com.goolag.pif.R;
public class Pif extends PreferenceFragmentCompat
implements Preference.OnPreferenceChangeListener {
private TopIntroPreference mIntroPreference;
private Preference mManufacturerPreference;
private Preference mModelPreference;
private Preference mFingerprintPreference;
private Preference mBrandPreference;
private Preference mProductPreference;
private Preference mDevicePreference;
private Preference mReleasePreference;
private Preference mIDPreference;
private Preference mIncrementalPreference;
private Preference mTypePreference;
private Preference mTAGSPreference;
private Preference mSecurityPatchPreference;
private Preference mDeviceInitialSdkIntPreference;
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
setPreferencesFromResource(R.xml.main, rootKey);
String selectedArrayName = Settings.System.getString(
getContext().getContentResolver(), Settings.System.PPU_SPOOF_BUILD_GMS_ARRAY);
int selectedArrayResId = getResources().getIdentifier(selectedArrayName, "array", getContext().getPackageName());
String[] selectedDeviceProps = getResources().getStringArray(selectedArrayResId);
mIntroPreference = findPreference("device_intro");
mManufacturerPreference = findPreference("manufacturer");
mModelPreference = findPreference("model");
mFingerprintPreference = findPreference("fingerprint");
mBrandPreference = findPreference("brand");
mProductPreference = findPreference("product");
mDevicePreference = findPreference("device");
mReleasePreference = findPreference("release");
mIDPreference = findPreference("id");
mIncrementalPreference = findPreference("incremental");
mTypePreference = findPreference("type");
mTAGSPreference = findPreference("tags");
mSecurityPatchPreference = findPreference("security_patch");
mDeviceInitialSdkIntPreference = findPreference("device_initial_sdk_int");
mIntroPreference.setTitle(Build.MANUFACTURER + " " + Build.MODEL);
mManufacturerPreference.setSummary(selectedDeviceProps[0]);
mModelPreference.setSummary(selectedDeviceProps[1]);
mFingerprintPreference.setSummary(selectedDeviceProps[2]);
mBrandPreference.setSummary(selectedDeviceProps[3]);
mProductPreference.setSummary(selectedDeviceProps[4]);
mDevicePreference.setSummary(selectedDeviceProps[5].isEmpty() ?
PixelPropsUtils.getDeviceName(selectedDeviceProps[2]) : selectedDeviceProps[5]);
mReleasePreference.setSummary(selectedDeviceProps[6]);
mIDPreference.setSummary(selectedDeviceProps[7].isEmpty() ?
PixelPropsUtils.getBuildID(selectedDeviceProps[5]) : selectedDeviceProps[7]);
mIncrementalPreference.setSummary(selectedDeviceProps[8]);
mTypePreference.setSummary(selectedDeviceProps[9].isEmpty() ? "user" : selectedDeviceProps[9]);
mTAGSPreference.setSummary(selectedDeviceProps[10].isEmpty() ? "release-keys" : selectedDeviceProps[10]);
mSecurityPatchPreference.setSummary(selectedDeviceProps[11]);
mDeviceInitialSdkIntPreference.setSummary(selectedDeviceProps[12]);
}
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
return true;
}
}

View File

@@ -0,0 +1,23 @@
/*
* Copyright (C) 2023-2024 The Evolution X Project
* SPDX-License-Identifier: Apache-2.0
*/
package com.goolag.pif;
import android.os.Bundle;
import com.android.settingslib.collapsingtoolbar.CollapsingToolbarBaseActivity;
public class PifActivity extends CollapsingToolbarBaseActivity {
private static final String TAG = "PifActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getSupportFragmentManager().beginTransaction().replace(com.android.settingslib.collapsingtoolbar.R.id.content_frame,
new Pif(), TAG).commit();
}
}