From e04e91f54fdacc44307cf48694d9693bca13a0a9 Mon Sep 17 00:00:00 2001 From: roynatech2544 Date: Mon, 25 Oct 2021 16:58:45 +0900 Subject: [PATCH] universal7885: SamsungParts: Inital HAL test --- universal7885-common/SamsungParts/Android.bp | 13 +++ universal7885-common/SamsungParts/Android.mk | 35 ------- .../SamsungParts/init.samsungparts.rc | 13 --- .../SamsungParts/jni/Android.bp | 21 +++++ .../SamsungParts/jni/BatteryBridge.cpp | 93 +++++++++++++++++++ .../SamsungParts/jni/FlashlightBridge.cpp | 56 +++++++++++ .../SamsungParts/jni/GPUBridge.cpp | 40 ++++++++ .../SamsungParts/jni/SELinuxBridge.cpp | 29 ++++++ .../samsungextras/DeviceSettings.java | 42 ++++----- .../battery/BatteryFragment.java | 64 +++---------- .../flashlight/FlashLightFragment.java | 35 ++----- .../samsungextras/interfaces/Battery.java | 9 ++ .../samsungextras/interfaces/Flashlight.java | 6 ++ .../samsungextras/interfaces/GPU.java | 6 ++ .../samsungextras/interfaces/SELinux.java | 6 ++ 15 files changed, 318 insertions(+), 150 deletions(-) create mode 100644 universal7885-common/SamsungParts/Android.bp delete mode 100644 universal7885-common/SamsungParts/Android.mk delete mode 100644 universal7885-common/SamsungParts/init.samsungparts.rc create mode 100644 universal7885-common/SamsungParts/jni/Android.bp create mode 100644 universal7885-common/SamsungParts/jni/BatteryBridge.cpp create mode 100644 universal7885-common/SamsungParts/jni/FlashlightBridge.cpp create mode 100644 universal7885-common/SamsungParts/jni/GPUBridge.cpp create mode 100644 universal7885-common/SamsungParts/jni/SELinuxBridge.cpp create mode 100644 universal7885-common/SamsungParts/src/com/eurekateam/samsungextras/interfaces/Battery.java create mode 100644 universal7885-common/SamsungParts/src/com/eurekateam/samsungextras/interfaces/Flashlight.java create mode 100644 universal7885-common/SamsungParts/src/com/eurekateam/samsungextras/interfaces/GPU.java create mode 100644 universal7885-common/SamsungParts/src/com/eurekateam/samsungextras/interfaces/SELinux.java diff --git a/universal7885-common/SamsungParts/Android.bp b/universal7885-common/SamsungParts/Android.bp new file mode 100644 index 0000000..2e80168 --- /dev/null +++ b/universal7885-common/SamsungParts/Android.bp @@ -0,0 +1,13 @@ +android_app { + name: "SamsungParts", + srcs: [ + "src/*/*/*/*/*.java", + "src/*/*/*/*.java", + ], + platform_apis: true, + privileged: true, + certificate: "platform", + jni_libs: ["libsamsungparts_jni"], + static_libs: ["androidx.preference_preference"], + defaults: ["SettingsLibDefaults"], +} diff --git a/universal7885-common/SamsungParts/Android.mk b/universal7885-common/SamsungParts/Android.mk deleted file mode 100644 index 8afc52d..0000000 --- a/universal7885-common/SamsungParts/Android.mk +++ /dev/null @@ -1,35 +0,0 @@ -LOCAL_PATH := $(call my-dir) -include $(CLEAR_VARS) - -LOCAL_MODULE_TAGS := optional -LOCAL_STATIC_ANDROID_LIBRARIES := \ - androidx.preference_preference - -LOCAL_SRC_FILES := $(call all-java-files-under, src) -LOCAL_PACKAGE_NAME := SamsungParts -LOCAL_CERTIFICATE := platform -LOCAL_PRIVILEGED_MODULE := true -LOCAL_PRIVATE_PLATFORM_APIS := true -LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res -LOCAL_USE_AAPT2 := true - -LOCAL_RESOURCE_DIR := \ - $(LOCAL_PATH)/res \ - $(TOP)/packages/resources/devicesettings/res - -LOCAL_PROGUARD_ENABLED := disabled -LOCAL_DEX_PREOPT := false - -include frameworks/base/packages/SettingsLib/common.mk - -include $(BUILD_PACKAGE) - -include $(call all-makefiles-under,$(LOCAL_PATH)) - -include $(CLEAR_VARS) -LOCAL_MODULE := SamsungParts.rc -LOCAL_MODULE_TAGS := optional -LOCAL_MODULE_CLASS := ETC -LOCAL_SRC_FILES := $(LOCAL_MODULE) -LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)/init -include $(BUILD_PREBUILT) diff --git a/universal7885-common/SamsungParts/init.samsungparts.rc b/universal7885-common/SamsungParts/init.samsungparts.rc deleted file mode 100644 index c7da3fb..0000000 --- a/universal7885-common/SamsungParts/init.samsungparts.rc +++ /dev/null @@ -1,13 +0,0 @@ -on property:sys.boot_completed=1 - chmod 664 /sys/devices/platform/11500000.mali/tmu - chown system system /sys/devices/platform/11500000.mali/tmu - chmod 664 /sys/class/camera/flash/torch_brightness_lvl - chown system system /sys/class/camera/flash/torch_brightness_lvl - chmod 664 /sys/class/camera/flash/torch_brightness_lvl_enable - chown system system /sys/class/camera/flash/torch_brightness_lvl_enable - chmod 664 /sys/devices/platform/battery/power_supply/battery/batt_slate_mode - chown system system /sys/devices/platform/battery/power_supply/battery/batt_slate_mode - chmod 644 /sys/class/sec/switch/afc_disable - chown system system /sys/class/sec/switch/afc_disable - chmod 644 /sys/fs/selinux/enforce - chown system system /sys/fs/selinux/enforce diff --git a/universal7885-common/SamsungParts/jni/Android.bp b/universal7885-common/SamsungParts/jni/Android.bp new file mode 100644 index 0000000..09878e6 --- /dev/null +++ b/universal7885-common/SamsungParts/jni/Android.bp @@ -0,0 +1,21 @@ +cc_library_shared { + name: "libsamsungparts_jni", + cflags: [ + "-Wall", + "-Wextra", + "-Wno-unused-parameter", + "-Werror", + ], + srcs: ["*.cpp"], + header_libs: ["jni_headers"], + shared_libs: [ + "libhidlbase", + "liblog", + "libutils", + "vendor.eureka.hardware.battery@1.0", + "vendor.eureka.hardware.flashlight@1.0", + "vendor.eureka.hardware.gpu@1.0", + "vendor.eureka.security.selinux@1.0", + ] +} + diff --git a/universal7885-common/SamsungParts/jni/BatteryBridge.cpp b/universal7885-common/SamsungParts/jni/BatteryBridge.cpp new file mode 100644 index 0000000..77b0d90 --- /dev/null +++ b/universal7885-common/SamsungParts/jni/BatteryBridge.cpp @@ -0,0 +1,93 @@ +#include +#include +#include +#include +#include +#include "jni.h" + +using vendor::eureka::hardware::battery::V1_0::IBattery; +using vendor::eureka::hardware::battery::V1_0::SysfsType; +using vendor::eureka::hardware::battery::V1_0::Number; +using android::sp; + +extern "C" JNIEXPORT void +JNICALL +Java_com_eurekateam_samsungextras_interfaces_Battery_setChargeSysfs +(JNIEnv *env , __unused jclass obj, jint enable) { + android::sp service = IBattery::getService(); + if (enable == 1){ + service->setBatteryWritable(SysfsType::CHARGE, Number::ENABLE); + }else{ + service->setBatteryWritable(SysfsType::CHARGE, Number::DISABLE); + } +} + +extern "C" JNIEXPORT jint +JNICALL +Java_com_eurekateam_samsungextras_interfaces_Battery_getChargeSysfs +(JNIEnv *env , __unused jclass obj) { + android::sp service = IBattery::getService(); + int ret = service->getBatteryStats(SysfsType::CHARGE); + return ret; +} + +extern "C" +JNIEXPORT void JNICALL +Java_com_eurekateam_samsungextras_interfaces_Battery_setFastCharge(JNIEnv *env, __unused jclass obj, + jint enable) { + android::sp service = IBattery::getService(); + if (enable == 1){ + service->setBatteryWritable(SysfsType::FASTCHARGE, Number::ENABLE); + }else{ + service->setBatteryWritable(SysfsType::FASTCHARGE, Number::DISABLE); + } +} +extern "C" +JNIEXPORT jint JNICALL +Java_com_eurekateam_samsungextras_interfaces_Battery_getFastChargeSysfs(JNIEnv *env, __unused +jclass obj) { + android::sp service = IBattery::getService(); + int ret = service->getBatteryStats(SysfsType::FASTCHARGE); + return ret; +} +extern "C" +JNIEXPORT jint JNICALL +Java_com_eurekateam_samsungextras_interfaces_Battery_getGeneralBatteryStats(JNIEnv *env, + __unused + jclass obj, jint id) { + /** + * id: + * 1 = BATTERY_CAPACITY_MAX + * 2 = BATTERY_CAPACITY_CURRENT (%) + * 3 = BATTERY_CAPACITY_CURRENT (mAh) + * 4 = CHARGING_STATE + * 5 = BATTERY_TEMP + * 6 = BATTERY_CURRENT + */ + android::sp service = IBattery::getService(); + int ret; + switch (id) { + case 1: + ret = service->getBatteryStats(SysfsType::CAPACITY_MAX) / 1000; + case 2: + ret = service->getBatteryStats(SysfsType::CAPACITY_CURRENT); + case 3: + ret = (float) service->getBatteryStats(SysfsType::CAPACITY_CURRENT) * + (float) service->getBatteryStats(SysfsType::CAPACITY_MAX) / 100000; + case 4: + if (service->getBatteryStats(SysfsType::CURRENT) > 0){ + ret = 1; + }else{ + ret = 0; + } + case 5: + ret = service->getBatteryStats(SysfsType::TEMP) / 10; + case 6: + ret = service->getBatteryStats(SysfsType::CURRENT); + default: + ret = -1; + } + return ret; + + +} \ No newline at end of file diff --git a/universal7885-common/SamsungParts/jni/FlashlightBridge.cpp b/universal7885-common/SamsungParts/jni/FlashlightBridge.cpp new file mode 100644 index 0000000..49c1ad3 --- /dev/null +++ b/universal7885-common/SamsungParts/jni/FlashlightBridge.cpp @@ -0,0 +1,56 @@ +#include +#include +#include +#include +#include +#include "jni.h" + +using vendor::eureka::hardware::battery::V1_0::IFlashlight; +using vendor::eureka::hardware::battery::V1_0::Device; +using vendor::eureka::hardware::battery::V1_0::Enable; +using vendor::eureka::hardware::battery::V1_0::Number; +using android::sp; + +extern "C" +JNIEXPORT void JNICALL +Java_com_eurekateam_samsungextras_interfaces_Flashlight_setFlash(JNIEnv *env, __unused jclass obj, + jint value) { + android::sp service = IFlashlight::getService(); + service->setFlashlightEnable(Enable::ENABLE); + switch (value) { + case 1: + service->setFlashlightWritable(Number::ONEUI); + case 2: + service->setFlashlightWritable(Number::TWOUI); + case 3: + service->setFlashlightWritable(Number::THREEUI); + case 4: + service->setFlashlightWritable(Number::FOURUI); + case 5: + service->setFlashlightWritable(Number::FIVEUI); + case 6: + service->setFlashlightWritable(Number::SIXUI); + case 7: + service->setFlashlightWritable(Number::SEVENUI); + case 8: + service->setFlashlightWritable(Number::EIGHTUI); + case 9: + service->setFlashlightWritable(Number::NINEUI); + case 10: + service->setFlashlightWritable(Number::TENUI); + + } +} +extern "C" +JNIEXPORT jint JNICALL +Java_com_eurekateam_samsungextras_interfaces_Flashlight_getFlash(JNIEnv *env, jclass clazz, + jint isA10) { + android::sp service = IFlashlight::getService(); + int ret; + if(isA10 == 1) { + ret = service->readFlashlightstats(Device::A10); + }else{ + ret = service->readFlashlightstats(Device::NOTA10); + } + return ret; +} \ No newline at end of file diff --git a/universal7885-common/SamsungParts/jni/GPUBridge.cpp b/universal7885-common/SamsungParts/jni/GPUBridge.cpp new file mode 100644 index 0000000..46dbbc6 --- /dev/null +++ b/universal7885-common/SamsungParts/jni/GPUBridge.cpp @@ -0,0 +1,40 @@ +#include +#include +#include +#include +#include +#include "jni.h" + +using vendor::eureka::hardware::gpu::V1_0::IGpu; +using vendor::eureka::hardware::gpu::V1_0::Enable; +using android::sp; + +extern "C" JNIEXPORT void +JNICALL +Java_com_eurekateam_samsungextras_interfaces_Battery_setChargeSysfs +(JNIEnv *env , __unused jclass obj, jint enable) { + android::sp service = IBattery::getService(); + if (enable == 1){ + service->setBatteryWritable(SysfsType::CHARGE, Number::ENABLE); + }else{ + service->setBatteryWritable(SysfsType::CHARGE, Number::DISABLE); + } +} + +extern "C" +JNIEXPORT void JNICALL +Java_com_eurekateam_samsungextras_interfaces_GPU_setGPU(JNIEnv *env, jclass clazz, jint enable) { + android::sp service = IGpu::getService(); + if (enable == 1){ + service->setGpuWritable(Enable::ENABLE); + }else{ + service->setGpuWritable(Enable::DISABLE); + } +} +extern "C" +JNIEXPORT jint JNICALL +Java_com_eurekateam_samsungextras_interfaces_GPU_getGPU(JNIEnv *env, jclass clazz) { + android::sp service = IGpu::getService(); + int ret = service->readGpustats(); + return ret; +} \ No newline at end of file diff --git a/universal7885-common/SamsungParts/jni/SELinuxBridge.cpp b/universal7885-common/SamsungParts/jni/SELinuxBridge.cpp new file mode 100644 index 0000000..d1bd5c6 --- /dev/null +++ b/universal7885-common/SamsungParts/jni/SELinuxBridge.cpp @@ -0,0 +1,29 @@ +#include +#include +#include +#include +#include +#include "jni.h" + +using vendor::eureka::security::selinux::V1_0::ISELinux; +using vendor::eureka::security::selinux::V1_0::Enable; +using android::sp; + +extern "C" +JNIEXPORT jint JNICALL +Java_com_eurekateam_samsungextras_interfaces_SELinux_getSELinux(JNIEnv *env, jclass clazz) { + android::sp service = ISELinux::getService(); + int ret = service->readSELinuxstats(); + return ret; +} +extern "C" +JNIEXPORT void JNICALL +Java_com_eurekateam_samsungextras_interfaces_SELinux_setSELinux(JNIEnv *env, jclass clazz, + jint enable) { + android::sp service = ISELinux::getService(); + if (enable == 1){ + service->setSELinuxWritable(Enable::ENABLE); + }else{ + service->setSELinuxWritable(Enable::DISABLE); + } +} \ No newline at end of file diff --git a/universal7885-common/SamsungParts/src/com/eurekateam/samsungextras/DeviceSettings.java b/universal7885-common/SamsungParts/src/com/eurekateam/samsungextras/DeviceSettings.java index 0d726f5..4059cd1 100644 --- a/universal7885-common/SamsungParts/src/com/eurekateam/samsungextras/DeviceSettings.java +++ b/universal7885-common/SamsungParts/src/com/eurekateam/samsungextras/DeviceSettings.java @@ -20,7 +20,6 @@ import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.os.Bundle; -import android.util.Log; import android.widget.Toast; import androidx.preference.Preference; @@ -30,9 +29,9 @@ import androidx.preference.SwitchPreference; import com.eurekateam.samsungextras.battery.BatteryActivity; import com.eurekateam.samsungextras.flashlight.FlashLightActivity; +import com.eurekateam.samsungextras.interfaces.GPU; +import com.eurekateam.samsungextras.interfaces.SELinux; import com.eurekateam.samsungextras.speaker.ClearSpeakerActivity; -import com.eurekateam.samsungextras.utils.FileUtilsWrapper; -import com.eurekateam.samsungextras.utils.SystemProperties; public class DeviceSettings extends PreferenceFragment implements Preference.OnPreferenceChangeListener { @@ -48,6 +47,7 @@ public class DeviceSettings extends PreferenceFragment implements @Override public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { + System.loadLibrary("samsungparts_jni"); setPreferencesFromResource(R.xml.preferences_samsung_parts, rootKey); Context mContext = this.getContext(); SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(mContext); @@ -66,30 +66,16 @@ public class DeviceSettings extends PreferenceFragment implements SwitchPreference mGPUExynos = findPreference(PREF_GPUEXYNOS); assert mGPUExynos != null; - if (FileUtilsWrapper.isFileReadable(GlobalConstants.TMU_SYSFS)) { - Log.d(GlobalConstants.TAG, "onCreatePreferences: " - + (GlobalConstants.TMU_SYSFS) + " readable, value " + - FileUtilsWrapper.readOneLine(GlobalConstants.TMU_SYSFS)); - mGPUExynos.setChecked( - FileUtilsWrapper.readOneLine(GlobalConstants.TMU_SYSFS).equals("1")); - }else { - Log.w(GlobalConstants.TAG, "onCreatePreferences: " - + (GlobalConstants.TMU_SYSFS) + " not readable"); - mGPUExynos.setEnabled(false); - } + mGPUExynos.setChecked(GPU.getGPU() == 1); mGPUExynos.setOnPreferenceChangeListener(this); - Preference mSELinux = findPreference(PREF_SELINUX); + SwitchPreference mSELinux = findPreference(PREF_SELINUX); assert mSELinux != null; - mSELinux.setOnPreferenceClickListener(preference -> { - boolean selinux_enforcing = SystemProperties.getenforce(); - Toast.makeText(getContext(), selinux_enforcing ? - "SELinux is in enforcing state." : - "SELinux is in permissive state.", - Toast.LENGTH_SHORT).show(); - return true; - }); + mSELinux.setOnPreferenceChangeListener(this); + mSELinux.setEnabled(SELinux.getSELinux() != 0); + Preference mFlashLight = findPreference(PREF_FLASHLIGHT); + assert mFlashLight != null; mFlashLight.setOnPreferenceClickListener(preference -> { Intent intent = new Intent(getActivity().getApplicationContext(), FlashLightActivity.class); startActivity(intent); @@ -119,12 +105,16 @@ public class DeviceSettings extends PreferenceFragment implements break; case PREF_GPUEXYNOS: boolean gpu_enabled = (Boolean) value; - Log.d(GlobalConstants.TAG, "onPreferenceChange: Writing " + - gpu_enabled + " to " + GlobalConstants.TMU_SYSFS); - FileUtilsWrapper.writeLine(GlobalConstants.TMU_SYSFS, gpu_enabled ? "1" : "0"); + GPU.setGPU(gpu_enabled ? 1 : 0); Toast.makeText(getContext(), gpu_enabled ? "GPU Throttling is now enabled." : "GPU Throttling is now disabled.", Toast.LENGTH_SHORT).show(); + case PREF_SELINUX: + boolean selinux_enabled = (Boolean) value; + SELinux.setSELinux(selinux_enabled ? 1 : 0); + Toast.makeText(getContext(), selinux_enabled ? "SELinux is now in enforcing state." + : "SELinux is now in permissive state.", + Toast.LENGTH_SHORT).show(); default: break; } diff --git a/universal7885-common/SamsungParts/src/com/eurekateam/samsungextras/battery/BatteryFragment.java b/universal7885-common/SamsungParts/src/com/eurekateam/samsungextras/battery/BatteryFragment.java index 77c6bb7..6d4b97b 100644 --- a/universal7885-common/SamsungParts/src/com/eurekateam/samsungextras/battery/BatteryFragment.java +++ b/universal7885-common/SamsungParts/src/com/eurekateam/samsungextras/battery/BatteryFragment.java @@ -17,8 +17,6 @@ package com.eurekateam.samsungextras.battery; import android.os.Bundle; -import android.provider.Settings; -import android.util.Log; import android.widget.Toast; import androidx.preference.ListPreference; @@ -26,9 +24,8 @@ import androidx.preference.Preference; import androidx.preference.PreferenceFragment; import androidx.preference.SwitchPreference; -import com.eurekateam.samsungextras.GlobalConstants; import com.eurekateam.samsungextras.R; -import com.eurekateam.samsungextras.utils.FileUtilsWrapper; +import com.eurekateam.samsungextras.interfaces.Battery; public class BatteryFragment extends PreferenceFragment implements Preference.OnPreferenceChangeListener { @@ -44,45 +41,20 @@ public class BatteryFragment extends PreferenceFragment implements mFastChargePref = findPreference(PREF_FASTCHARGE); assert mFastChargePref != null; mFastChargePref.setOnPreferenceChangeListener(this); - mFastChargePref.setEnabled(FileUtilsWrapper. - fileExists(GlobalConstants.FASTCHARGE_SYSFS)); - if (FileUtilsWrapper.isFileReadable(GlobalConstants.FLASHLIGHT_SYSFS)){ - Log.d(GlobalConstants.TAG, "onCreatePreferences: " + - GlobalConstants.FASTCHARGE_SYSFS + " readable, value " + - FileUtilsWrapper.readOneLine(GlobalConstants.FASTCHARGE_SYSFS)); - mFastChargePref.setChecked(FileUtilsWrapper.readOneLine - (GlobalConstants.FASTCHARGE_SYSFS).equals("0")); - }else{ - Log.w(GlobalConstants.TAG, "onCreatePreferences: " + - GlobalConstants.FLASHLIGHT_SYSFS + " not readable"); - mFastChargePref.setEnabled(false); - } + mFastChargePref.setChecked(Battery.getChargeSysfs() == 0); mChargePref = findPreference(PREF_CHARGE); assert mChargePref != null; mChargePref.setOnPreferenceChangeListener(this); - mChargePref.setEnabled(FileUtilsWrapper. - fileExists(GlobalConstants.CHARGE_DISABLE_SYSFS)); - if (FileUtilsWrapper.isFileReadable(GlobalConstants.CHARGE_DISABLE_SYSFS)){ - Log.d(GlobalConstants.TAG, "onCreatePreferences: " + - GlobalConstants.CHARGE_DISABLE_SYSFS + " readable, value " + - FileUtilsWrapper.readOneLine(GlobalConstants.CHARGE_DISABLE_SYSFS)); - mChargePref.setChecked(FileUtilsWrapper.readOneLine - (GlobalConstants.CHARGE_DISABLE_SYSFS).equals("0")); - }else{ - Log.w(GlobalConstants.TAG, "onCreatePreferences: " + - GlobalConstants.FLASHLIGHT_SYSFS + " not readable"); - mFastChargePref.setEnabled(false); - } + mChargePref.setChecked(Battery.getFastChargeSysfs() == 0); ListPreference mBatteryInfo = findPreference(BATTERY_INFO); CharSequence[] items = { - Integer.parseInt(FileUtilsWrapper.readOneLine(GlobalConstants.BATTERY_CAPACITY_MAX_SYSFS)) / 1000 + " mAh", - FileUtilsWrapper.readOneLine(GlobalConstants.BATTERY_CAPACITY_CURRENT_SYSFS) + " %", - Float.parseFloat(FileUtilsWrapper.readOneLine(GlobalConstants.BATTERY_CAPACITY_MAX_SYSFS)) * - Float.parseFloat(FileUtilsWrapper.readOneLine(GlobalConstants.BATTERY_CAPACITY_CURRENT_SYSFS)) / 100000 + " mAh" , - FileUtilsWrapper.readOneLine(GlobalConstants.BATTERY_CURRENT_SYSFS) + " mAh", - Integer.parseInt(FileUtilsWrapper.readOneLine(GlobalConstants.BATTERY_CURRENT_SYSFS)) >= 0 + Battery.getGeneralBatteryStats(1) + " mAh", + Battery.getGeneralBatteryStats(2) + " %", + Battery.getGeneralBatteryStats(3) + " mAh" , + Battery.getGeneralBatteryStats(6) + " mAh", + Battery.getGeneralBatteryStats(4) == 1 ? "Charging" : "Discharging", - Float.parseFloat(FileUtilsWrapper.readOneLine(GlobalConstants.BATTERY_TEMP_SYSFS)) / 10 + " \u2103", + Battery.getGeneralBatteryStats(5) + " \u2103", }; assert mBatteryInfo != null; mBatteryInfo.setEntryValues(items); @@ -94,21 +66,15 @@ public class BatteryFragment extends PreferenceFragment implements @Override public boolean onPreferenceChange(Preference preference, Object newValue) { - if (preference == mFastChargePref) { + if (preference == mChargePref) { Boolean value = (Boolean) newValue; - Log.d(GlobalConstants.TAG, "onPreferenceChange: writing " + value + " to " + - GlobalConstants.FASTCHARGE_SYSFS); - FileUtilsWrapper.writeLine(GlobalConstants.FASTCHARGE_SYSFS, value ? "0" : "1"); - mFastChargePref.setChecked(FileUtilsWrapper.readOneLine - (GlobalConstants.FASTCHARGE_SYSFS).equals("0")); + Battery.setChargeSysfs(value ? 0 : 1 ); + mFastChargePref.setChecked(Battery.getChargeSysfs() == 0); return true; - }else if (preference == mChargePref){ + }else if (preference == mFastChargePref){ Boolean value = (Boolean) newValue; - Log.d(GlobalConstants.TAG, "onPreferenceChange: writing " + value - + " to " + GlobalConstants.CHARGE_DISABLE_SYSFS); - FileUtilsWrapper.writeLine(GlobalConstants.CHARGE_DISABLE_SYSFS, value ? "0" : "1"); - mChargePref.setChecked(FileUtilsWrapper.readOneLine - (GlobalConstants.CHARGE_DISABLE_SYSFS).equals("0")); + Battery.setFastCharge(value ? 0 : 1 ); + mChargePref.setChecked(Battery.getFastChargeSysfs() == 0); return true; } return false; diff --git a/universal7885-common/SamsungParts/src/com/eurekateam/samsungextras/flashlight/FlashLightFragment.java b/universal7885-common/SamsungParts/src/com/eurekateam/samsungextras/flashlight/FlashLightFragment.java index 3c5337b..baa6886 100644 --- a/universal7885-common/SamsungParts/src/com/eurekateam/samsungextras/flashlight/FlashLightFragment.java +++ b/universal7885-common/SamsungParts/src/com/eurekateam/samsungextras/flashlight/FlashLightFragment.java @@ -17,61 +17,42 @@ package com.eurekateam.samsungextras.flashlight; import android.os.Bundle; -import android.util.Log; import androidx.preference.Preference; import androidx.preference.PreferenceFragment; import com.eurekateam.samsungextras.GlobalConstants; import com.eurekateam.samsungextras.R; +import com.eurekateam.samsungextras.interfaces.Flashlight; import com.eurekateam.samsungextras.preferences.CustomSeekBarPreference; import com.eurekateam.samsungextras.utils.FileUtilsWrapper; import com.eurekateam.samsungextras.utils.SystemProperties; public class FlashLightFragment extends PreferenceFragment implements Preference.OnPreferenceChangeListener { - private static int divideprefix = 21; private static final String PREF_FLASHLIGHT = "flashlight_pref"; private CustomSeekBarPreference mFlashLightPref; + @Override public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { addPreferencesFromResource(R.xml.flashlight_settings); - if (SystemProperties.read("ro.product.device").contains("a10")){ - divideprefix = 1; - } mFlashLightPref = findPreference(PREF_FLASHLIGHT); assert mFlashLightPref != null; mFlashLightPref.setOnPreferenceChangeListener(this); - mFlashLightPref.setMax(10); - mFlashLightPref.setMin(0); - mFlashLightPref.setEnabled(FileUtilsWrapper. - fileExists(GlobalConstants.FLASHLIGHT_SYSFS)); - if (FileUtilsWrapper.isFileReadable(GlobalConstants.FLASHLIGHT_SYSFS)){ - Log.d(GlobalConstants.TAG, "onCreatePreferences: " + - GlobalConstants.FLASHLIGHT_SYSFS + " readable, value " + - Integer.parseInt( - FileUtilsWrapper.readOneLine(GlobalConstants.FLASHLIGHT_SYSFS))); - mFlashLightPref.setValue(Integer.parseInt( - FileUtilsWrapper.readOneLine(GlobalConstants.FLASHLIGHT_SYSFS)) - / divideprefix); - }else{ - Log.w(GlobalConstants.TAG, "onCreatePreferences: " + - GlobalConstants.FLASHLIGHT_SYSFS + " not readable"); + if (!FileUtilsWrapper.fileExists(GlobalConstants.FLASHLIGHT_SYSFS)){ mFlashLightPref.setEnabled(false); } - + mFlashLightPref.setMax(10); + mFlashLightPref.setMin(0); + boolean isa10 = SystemProperties.read("ro.product.device").equals("a10"); + mFlashLightPref.setValue(Flashlight.getFlash(isa10 ? 1 : 0)); } @Override public boolean onPreferenceChange(Preference preference, Object newValue) { if (preference == mFlashLightPref) { Integer value = (Integer) newValue; - Log.d(GlobalConstants.TAG, "onPreferenceChange: writing 1 to " + - GlobalConstants.FLASHLIGHT_SYSFS_ENABLE); - FileUtilsWrapper.writeLine(GlobalConstants.FLASHLIGHT_SYSFS_ENABLE, "1"); - Log.d(GlobalConstants.TAG, "onPreferenceChange: writing " + value - + " to " + GlobalConstants.FLASHLIGHT_SYSFS); - FileUtilsWrapper.writeLine(GlobalConstants.FLASHLIGHT_SYSFS, String.valueOf(value)); + Flashlight.setFlash(value); mFlashLightPref.setValue(value, true); return true; } diff --git a/universal7885-common/SamsungParts/src/com/eurekateam/samsungextras/interfaces/Battery.java b/universal7885-common/SamsungParts/src/com/eurekateam/samsungextras/interfaces/Battery.java new file mode 100644 index 0000000..67f2134 --- /dev/null +++ b/universal7885-common/SamsungParts/src/com/eurekateam/samsungextras/interfaces/Battery.java @@ -0,0 +1,9 @@ +package com.eurekateam.samsungextras.interfaces; + +public class Battery { + public static native void setChargeSysfs(int enable); + public static native int getChargeSysfs(); + public static native void setFastCharge(int enable); + public static native int getFastChargeSysfs(); + public static native int getGeneralBatteryStats(int id); +} diff --git a/universal7885-common/SamsungParts/src/com/eurekateam/samsungextras/interfaces/Flashlight.java b/universal7885-common/SamsungParts/src/com/eurekateam/samsungextras/interfaces/Flashlight.java new file mode 100644 index 0000000..cca7e53 --- /dev/null +++ b/universal7885-common/SamsungParts/src/com/eurekateam/samsungextras/interfaces/Flashlight.java @@ -0,0 +1,6 @@ +package com.eurekateam.samsungextras.interfaces; + +public class Flashlight { + public static native void setFlash(int value); + public static native int getFlash(int isA10); +} diff --git a/universal7885-common/SamsungParts/src/com/eurekateam/samsungextras/interfaces/GPU.java b/universal7885-common/SamsungParts/src/com/eurekateam/samsungextras/interfaces/GPU.java new file mode 100644 index 0000000..b12c0a7 --- /dev/null +++ b/universal7885-common/SamsungParts/src/com/eurekateam/samsungextras/interfaces/GPU.java @@ -0,0 +1,6 @@ +package com.eurekateam.samsungextras.interfaces; + +public class GPU { + public static native void setGPU(int enable); + public static native int getGPU(); +} diff --git a/universal7885-common/SamsungParts/src/com/eurekateam/samsungextras/interfaces/SELinux.java b/universal7885-common/SamsungParts/src/com/eurekateam/samsungextras/interfaces/SELinux.java new file mode 100644 index 0000000..81ea105 --- /dev/null +++ b/universal7885-common/SamsungParts/src/com/eurekateam/samsungextras/interfaces/SELinux.java @@ -0,0 +1,6 @@ +package com.eurekateam.samsungextras.interfaces; + +public class SELinux { + public static native void setSELinux(int enable); + public static native int getSELinux(); +}