Compare commits

..

No commits in common. "e0f2bf554924dcc75285ec602150c9a5843bbdf1" and "148e775d41b14bb36a4ae3677a0215005c510395" have entirely different histories.

22 changed files with 206 additions and 192 deletions

View file

@ -61,11 +61,11 @@ $(DSP_MOUNT_POINT):
@echo "Creating $(DSP_MOUNT_POINT)"
@mkdir -p $(TARGET_OUT_VENDOR)/dsp
#$(PERSIST_MOUNT_POINT):
# @echo "Creating $(PERSIST_MOUNT_POINT)"
# @ln -sf /mnt/vendor/persist $(TARGET_ROOT_OUT)/persist
$(PERSIST_MOUNT_POINT):
@echo "Creating $(PERSIST_MOUNT_POINT)"
@ln -sf /mnt/vendor/persist $(TARGET_ROOT_OUT)/persist
ALL_DEFAULT_INSTALLED_MODULES += $(FIRMWARE_MOUNT_POINT) $(BT_FIRMWARE_MOUNT_POINT) $(DSP_MOUNT_POINT) # $(PERSIST_MOUNT_POINT)
ALL_DEFAULT_INSTALLED_MODULES += $(FIRMWARE_MOUNT_POINT) $(BT_FIRMWARE_MOUNT_POINT) $(DSP_MOUNT_POINT) $(PERSIST_MOUNT_POINT)
IMS_LIBS := libimscamera_jni.so libimsmedia_jni.so
IMS_SYMLINKS := $(addprefix $(TARGET_OUT_SYSTEM_EXT_APPS_PRIVILEGED)/ims/lib/arm64/,$(notdir $(IMS_LIBS)))
@ -77,11 +77,11 @@ $(IMS_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
ALL_DEFAULT_INSTALLED_MODULES += $(IMS_SYMLINKS)
RFS_MSM_ADSP_SYMLINKS := $(TARGET_OUT_VENDOR)/rfs/msm/adsp
RFS_MSM_ADSP_SYMLINKS := $(TARGET_OUT_VENDOR)/rfs/msm/adsp/
$(RFS_MSM_ADSP_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
@echo "Creating RFS MSM ADSP folder structure: $@"
@rm -rf $@/*
@mkdir -p $@/readonly/vendor
@mkdir -p $(dir $@)/readonly/vendor
$(hide) ln -sf /data/vendor/tombstones/rfs/lpass $@/ramdumps
$(hide) ln -sf /mnt/vendor/persist/rfs/msm/adsp $@/readwrite
$(hide) ln -sf /mnt/vendor/persist/rfs/shared $@/shared
@ -89,11 +89,11 @@ $(RFS_MSM_ADSP_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
$(hide) ln -sf /vendor/firmware_mnt $@/readonly/firmware
$(hide) ln -sf /vendor/firmware $@/readonly/vendor/firmware
RFS_MSM_CDSP_SYMLINKS := $(TARGET_OUT_VENDOR)/rfs/msm/cdsp
RFS_MSM_CDSP_SYMLINKS := $(TARGET_OUT_VENDOR)/rfs/msm/cdsp/
$(RFS_MSM_CDSP_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
@echo "Creating RFS MSM CDSP folder structure: $@"
@rm -rf $@/*
@mkdir -p $@/readonly/vendor
@mkdir -p $(dir $@)/readonly/vendor
$(hide) ln -sf /data/vendor/tombstones/rfs/cdsp $@/ramdumps
$(hide) ln -sf /mnt/vendor/persist/rfs/msm/cdsp $@/readwrite
$(hide) ln -sf /mnt/vendor/persist/rfs/shared $@/shared
@ -101,11 +101,11 @@ $(RFS_MSM_CDSP_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
$(hide) ln -sf /vendor/firmware_mnt $@/readonly/firmware
$(hide) ln -sf /vendor/firmware $@/readonly/vendor/firmware
RFS_MSM_MPSS_SYMLINKS := $(TARGET_OUT_VENDOR)/rfs/msm/mpss
RFS_MSM_MPSS_SYMLINKS := $(TARGET_OUT_VENDOR)/rfs/msm/mpss/
$(RFS_MSM_MPSS_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
@echo "Creating RFS MSM MPSS folder structure: $@"
@rm -rf $@/*
@mkdir -p $@/readonly/vendor
@mkdir -p $(dir $@)/readonly/vendor
$(hide) ln -sf /data/vendor/tombstones/rfs/modem $@/ramdumps
$(hide) ln -sf /mnt/vendor/persist/rfs/msm/mpss $@/readwrite
$(hide) ln -sf /mnt/vendor/persist/rfs/shared $@/shared
@ -113,11 +113,11 @@ $(RFS_MSM_MPSS_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
$(hide) ln -sf /vendor/firmware_mnt $@/readonly/firmware
$(hide) ln -sf /vendor/firmware $@/readonly/vendor/firmware
RFS_MSM_SLPI_SYMLINKS := $(TARGET_OUT_VENDOR)/rfs/msm/slpi
RFS_MSM_SLPI_SYMLINKS := $(TARGET_OUT_VENDOR)/rfs/msm/slpi/
$(RFS_MSM_SLPI_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
@echo "Creating RFS MSM SLPI folder structure: $@"
@rm -rf $@/*
@mkdir -p $@/readonly/vendor
@mkdir -p $(dir $@)/readonly/vendor
$(hide) ln -sf /data/vendor/tombstones/rfs/slpi $@/ramdumps
$(hide) ln -sf /mnt/vendor/persist/rfs/msm/slpi $@/readwrite
$(hide) ln -sf /mnt/vendor/persist/rfs/shared $@/shared

View file

@ -119,7 +119,6 @@ TARGET_KERNEL_VERSION := 4.19
TARGET_KERNEL_SOURCE := kernel/xiaomi/sdm660
TARGET_COMPILE_WITH_MSM_KERNEL := true
BOARD_RAMDISK_USE_LZ4 := true
TARGET_KERNEL_LLVM_BINUTILS := false
# Enable stats logging in LMKD
TARGET_LMKD_STATS_LOG := true

View file

@ -19,6 +19,7 @@ import android.os.Bundle;
import android.view.MenuItem;
import com.android.settingslib.collapsingtoolbar.CollapsingToolbarBaseActivity;
import com.android.settingslib.widget.R;
public class BMSActivity extends CollapsingToolbarBaseActivity {
@ -26,11 +27,11 @@ public class BMSActivity extends CollapsingToolbarBaseActivity {
protected void onCreate(Bundle bundle) {
super.onCreate(bundle);
Fragment fragment = getFragmentManager().findFragmentById(com.android.settingslib.collapsingtoolbar.R.id.content_frame);
Fragment fragment = getFragmentManager().findFragmentById(R.id.content_frame);
BMSFragment bmsFragment;
if (fragment == null) {
bmsFragment = new BMSFragment();
getFragmentManager().beginTransaction().add(com.android.settingslib.collapsingtoolbar.R.id.content_frame, bmsFragment).commit();
getFragmentManager().beginTransaction().add(R.id.content_frame, bmsFragment).commit();
}
}
}
}

View file

@ -26,12 +26,16 @@
<protected-broadcast android:name="com.android.systemui.doze.pulse" />
<uses-sdk
android:minSdkVersion="24"
android:targetSdkVersion="30"/>
<application
android:label="@string/device_settings_app_name"
android:persistent="true">
<receiver android:name=".BootCompletedReceiver"
android:exported="true">
android:exported="false">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<category android:name="android.intent.category.DEFAULT" />
@ -45,7 +49,7 @@
<activity
android:name=".DozeSettingsActivity"
android:exported="true"
android:exported="false"
android:label="@string/ambient_display_title"
android:theme="@style/Theme.SubSettingsBase">
<intent-filter>
@ -60,8 +64,7 @@
android:name="com.advanced.settings.doze.DozeTileService"
android:icon="@drawable/ic_doze"
android:label="@string/ambient_display_gestures_title"
android:permission="android.permission.BIND_QUICK_SETTINGS_TILE"
android:exported="true">
android:permission="android.permission.BIND_QUICK_SETTINGS_TILE">
<intent-filter>
<action
android:name="android.service.quicksettings.action.QS_TILE"/>

View file

@ -20,6 +20,7 @@ package com.advanced.settings.doze;
import android.os.Bundle;
import com.android.settingslib.collapsingtoolbar.CollapsingToolbarBaseActivity;
import com.android.settingslib.widget.R;
public class DozeSettingsActivity extends CollapsingToolbarBaseActivity {
@ -29,7 +30,7 @@ public class DozeSettingsActivity extends CollapsingToolbarBaseActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getFragmentManager().beginTransaction().replace(com.android.settingslib.collapsingtoolbar.R.id.content_frame,
getFragmentManager().beginTransaction().replace(R.id.content_frame,
new DozeSettingsFragment(), TAG_DOZE).commit();
}
}

View file

@ -30,13 +30,13 @@ import androidx.preference.SwitchPreference;
import androidx.preference.Preference;
import androidx.preference.PreferenceCategory;
import androidx.preference.Preference.OnPreferenceChangeListener;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.Switch;
import com.android.settingslib.widget.MainSwitchPreference;
import com.android.settingslib.widget.OnMainSwitchChangeListener;
public class DozeSettingsFragment extends PreferenceFragment implements OnPreferenceChangeListener,
OnCheckedChangeListener {
OnMainSwitchChangeListener {
private MainSwitchPreference mSwitchBar;
@ -106,7 +106,7 @@ public class DozeSettingsFragment extends PreferenceFragment implements OnPrefer
}
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
public void onSwitchChanged(Switch switchView, boolean isChecked) {
Utils.enableDoze(getActivity(), isChecked);
Utils.checkDozeService(getActivity());

View file

@ -21,6 +21,10 @@
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-sdk
android:minSdkVersion="27"
android:targetSdkVersion="30"/>
<application
android:directBootAware="true"
android:label="@string/advanced_settings"
@ -76,8 +80,7 @@
android:name=".PerformanceTileService"
android:icon="@drawable/thermal_balance"
android:label="@string/thermal_balance"
android:permission="android.permission.BIND_QUICK_SETTINGS_TILE"
android:exported="true">
android:permission="android.permission.BIND_QUICK_SETTINGS_TILE">
<intent-filter>
<action android:name="android.service.quicksettings.action.QS_TILE"/>
</intent-filter>
@ -103,8 +106,7 @@
android:name=".FPSTileService"
android:icon="@drawable/ic_fps_info"
android:label="@string/fps_info_title"
android:permission="android.permission.BIND_QUICK_SETTINGS_TILE"
android:exported="true">
android:permission="android.permission.BIND_QUICK_SETTINGS_TILE">
<intent-filter>
<action
android:name="android.service.quicksettings.action.QS_TILE"/>

View file

@ -86,7 +86,7 @@
android:entries="@array/dirac_headset_pref_entries"
android:entryValues="@array/dirac_headset_pref_values"
android:key="dirac_headset_pref"
app:useSimpleSummaryProvider="true"
android:summary="%s"
android:title="@string/dirac_headset_title"
android:icon="@drawable/ic_headphones" />
@ -96,7 +96,7 @@
android:entries="@array/dirac_preset_pref_entries"
android:entryValues="@array/dirac_preset_pref_values"
android:key="dirac_preset_pref"
app:useSimpleSummaryProvider="true"
android:summary="%s"
android:title="@string/dirac_preset_title"
android:icon="@drawable/ic_preset" />
</PreferenceCategory>

View file

@ -21,6 +21,7 @@ import android.os.Bundle;
import android.view.MenuItem;
import com.android.settingslib.collapsingtoolbar.CollapsingToolbarBaseActivity;
import com.android.settingslib.widget.R;
public class DeviceSettingsActivity extends CollapsingToolbarBaseActivity {
@ -30,11 +31,11 @@ public class DeviceSettingsActivity extends CollapsingToolbarBaseActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Fragment fragment = getFragmentManager().findFragmentById(com.android.settingslib.collapsingtoolbar.R.id.content_frame);
Fragment fragment = getFragmentManager().findFragmentById(R.id.content_frame);
if (fragment == null) {
deviceSettingsFragment = new DeviceSettings();
getFragmentManager().beginTransaction()
.add(com.android.settingslib.collapsingtoolbar.R.id.content_frame, deviceSettingsFragment)
.add(R.id.content_frame, deviceSettingsFragment)
.commit();
}
}

View file

@ -23,6 +23,7 @@ import android.view.MenuInflater;
import android.view.MenuItem;
import com.android.settingslib.collapsingtoolbar.CollapsingToolbarBaseActivity;
import com.android.settingslib.widget.R;
public class KCalSettingsActivity extends CollapsingToolbarBaseActivity implements Utils {
@ -31,13 +32,13 @@ public class KCalSettingsActivity extends CollapsingToolbarBaseActivity implemen
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(com.android.settingslib.collapsingtoolbar.R.layout.activity_kcal);
setContentView(R.layout.activity_kcal);
Fragment fragment = getFragmentManager().findFragmentById(com.android.settingslib.collapsingtoolbar.R.id.fragment_kcal);
Fragment fragment = getFragmentManager().findFragmentById(R.id.fragment_kcal);
if (fragment == null) {
mKCalSettingsFragment = new KCalSettings();
getFragmentManager().beginTransaction()
.add(com.android.settingslib.collapsingtoolbar.R.id.fragment_kcal, mKCalSettingsFragment)
.add(R.id.fragment_kcal, mKCalSettingsFragment)
.commit();
} else {
mKCalSettingsFragment = (KCalSettings) fragment;
@ -51,7 +52,7 @@ public class KCalSettingsActivity extends CollapsingToolbarBaseActivity implemen
finish();
return true;
case com.android.settingslib.collapsingtoolbar.R.id.action_reset:
case R.id.action_reset:
mKCalSettingsFragment.applyValues(RED_DEFAULT + " " +
GREEN_DEFAULT + " " +
BLUE_DEFAULT + " " +
@ -64,7 +65,7 @@ public class KCalSettingsActivity extends CollapsingToolbarBaseActivity implemen
mKCalSettingsFragment.setmSetOnBoot(SETONBOOT_DEFAULT);
return true;
case com.android.settingslib.collapsingtoolbar.R.id.action_preset:
case R.id.action_preset:
new PresetDialog().show(getFragmentManager(),
KCalSettingsActivity.class.getName(), mKCalSettingsFragment);
return true;
@ -78,7 +79,7 @@ public class KCalSettingsActivity extends CollapsingToolbarBaseActivity implemen
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater menuInflater = getMenuInflater();
menuInflater.inflate(com.android.settingslib.collapsingtoolbar.R.menu.menu_reset, menu);
menuInflater.inflate(R.menu.menu_reset, menu);
return true;
}
}

View file

@ -21,6 +21,7 @@ import android.os.Bundle;
import android.view.MenuItem;
import com.android.settingslib.collapsingtoolbar.CollapsingToolbarBaseActivity;
import com.android.settingslib.widget.R;
public class ClearSpeakerActivity extends CollapsingToolbarBaseActivity {
@ -31,11 +32,11 @@ public class ClearSpeakerActivity extends CollapsingToolbarBaseActivity {
super.onCreate(savedInstanceState);
Fragment fragment = getFragmentManager().findFragmentById(com.android.settingslib.collapsingtoolbar.R.id.content_frame);
Fragment fragment = getFragmentManager().findFragmentById(R.id.content_frame);
if (fragment == null) {
clearSpeakerFragment = new ClearSpeakerFragment();
getFragmentManager().beginTransaction()
.add(com.android.settingslib.collapsingtoolbar.R.id.content_frame, clearSpeakerFragment)
.add(R.id.content_frame, clearSpeakerFragment)
.commit();
}
}

View file

@ -25,9 +25,6 @@ value:2908
[AID_VENDOR_QTR]
value:2909
[AID_VENDOR_QCC]
value:2914
[vendor/bin/wcnss_filter]
mode: 0755
user: AID_BLUETOOTH

View file

@ -1,15 +1,5 @@
<manifest version="2.0" type="device" target-level="5">
<manifest version="2.0" type="device" target-level="4">
<kernel target-level="4"/>
<hal format="hidl">
<name>android.hardware.graphics.allocator</name>
<transport>hwbinder</transport>
<version>2.0</version>
<interface>
<name>IAllocator</name>
<instance>default</instance>
</interface>
<fqname>@2.0::IAllocator/default</fqname>
</hal>
<hal format="hidl">
<name>android.hardware.audio</name>
<transport>hwbinder</transport>

View file

@ -74,13 +74,6 @@ Power::Power(std::shared_ptr<AdaptiveCpu> adaptiveCpu)
}
}
static void endAllHints() {
std::shared_ptr<HintManager> hm = HintManager::GetInstance();
for (auto hint : hm->GetHints()) {
hm->EndHint(hint);
}
}
ndk::ScopedAStatus Power::setMode(Mode type, bool enabled) {
LOG(DEBUG) << "Power setMode: " << toString(type) << " to: " << enabled;
if (HintManager::GetInstance()->GetAdpfProfile() &&
@ -98,14 +91,14 @@ ndk::ScopedAStatus Power::setMode(Mode type, bool enabled) {
break;
case Mode::SUSTAINED_PERFORMANCE:
if (enabled) {
endAllHints();
HintManager::GetInstance()->DoHint("SUSTAINED_PERFORMANCE");
} else {
HintManager::GetInstance()->EndHint("SUSTAINED_PERFORMANCE");
}
mSustainedPerfModeOn = enabled;
mSustainedPerfModeOn = true;
break;
case Mode::LAUNCH:
if (mSustainedPerfModeOn) {
break;
}
[[fallthrough]];
case Mode::FIXED_PERFORMANCE:
[[fallthrough]];

View file

@ -52,14 +52,11 @@ static inline int64_t ns_to_100us(int64_t ns) {
return ns / 100000;
}
} // namespace
int64_t PowerHintSession::convertWorkDurationToBoostByPid(
const std::vector<WorkDuration> &actualDurations) {
std::shared_ptr<AdpfConfig> adpfConfig = HintManager::GetInstance()->GetAdpfProfile();
const nanoseconds &targetDuration = mDescriptor->duration;
int64_t &integral_error = mDescriptor->integral_error;
int64_t &previous_error = mDescriptor->previous_error;
static int64_t convertWorkDurationToBoostByPid(std::shared_ptr<AdpfConfig> adpfConfig,
nanoseconds targetDuration,
const std::vector<WorkDuration> &actualDurations,
int64_t *integral_error, int64_t *previous_error,
const std::string &idstr) {
uint64_t samplingWindowP = adpfConfig->mSamplingWindowP;
uint64_t samplingWindowI = adpfConfig->mSamplingWindowI;
uint64_t samplingWindowD = adpfConfig->mSamplingWindowD;
@ -83,38 +80,46 @@ int64_t PowerHintSession::convertWorkDurationToBoostByPid(
// PID control algorithm
int64_t error = ns_to_100us(actualDurationNanos - targetDurationNanos);
if (i >= d_start) {
derivative_sum += error - previous_error;
derivative_sum += error - (*previous_error);
}
if (i >= p_start) {
err_sum += error;
}
if (i >= i_start) {
integral_error += error * dt;
integral_error = std::min(adpfConfig->getPidIHighDivI(), integral_error);
integral_error = std::max(adpfConfig->getPidILowDivI(), integral_error);
*integral_error = *integral_error + error * dt;
*integral_error = std::min(adpfConfig->getPidIHighDivI(), *integral_error);
*integral_error = std::max(adpfConfig->getPidILowDivI(), *integral_error);
}
previous_error = error;
*previous_error = error;
}
int64_t pOut = static_cast<int64_t>((err_sum > 0 ? adpfConfig->mPidPo : adpfConfig->mPidPu) *
err_sum / (length - p_start));
int64_t iOut = static_cast<int64_t>(adpfConfig->mPidI * integral_error);
int64_t iOut = static_cast<int64_t>(adpfConfig->mPidI * (*integral_error));
int64_t dOut =
static_cast<int64_t>((derivative_sum > 0 ? adpfConfig->mPidDo : adpfConfig->mPidDu) *
derivative_sum / dt / (length - d_start));
int64_t output = pOut + iOut + dOut;
if (ATRACE_ENABLED()) {
traceSessionVal("pid.err", err_sum / (length - p_start));
traceSessionVal("pid.integral", integral_error);
traceSessionVal("pid.derivative", derivative_sum / dt / (length - d_start));
traceSessionVal("pid.pOut", pOut);
traceSessionVal("pid.iOut", iOut);
traceSessionVal("pid.dOut", dOut);
traceSessionVal("pid.output", output);
std::string sz = StringPrintf("adpf.%s-pid.err", idstr.c_str());
ATRACE_INT(sz.c_str(), err_sum / (length - p_start));
sz = StringPrintf("adpf.%s-pid.integral", idstr.c_str());
ATRACE_INT(sz.c_str(), *integral_error);
sz = StringPrintf("adpf.%s-pid.derivative", idstr.c_str());
ATRACE_INT(sz.c_str(), derivative_sum / dt / (length - d_start));
sz = StringPrintf("adpf.%s-pid.pOut", idstr.c_str());
ATRACE_INT(sz.c_str(), pOut);
sz = StringPrintf("adpf.%s-pid.iOut", idstr.c_str());
ATRACE_INT(sz.c_str(), iOut);
sz = StringPrintf("adpf.%s-pid.dOut", idstr.c_str());
ATRACE_INT(sz.c_str(), dOut);
sz = StringPrintf("adpf.%s-pid.output", idstr.c_str());
ATRACE_INT(sz.c_str(), output);
}
return output;
}
} // namespace
PowerHintSession::PowerHintSession(std::shared_ptr<AdaptiveCpu> adaptiveCpu, int32_t tgid,
int32_t uid, const std::vector<int32_t> &threadIds,
@ -122,14 +127,16 @@ PowerHintSession::PowerHintSession(std::shared_ptr<AdaptiveCpu> adaptiveCpu, int
: mAdaptiveCpu(adaptiveCpu) {
mDescriptor = new AppHintDesc(tgid, uid, threadIds);
mDescriptor->duration = std::chrono::nanoseconds(durationNanos);
mIdString = StringPrintf("%" PRId32 "-%" PRId32 "-%" PRIxPTR, mDescriptor->tgid,
mDescriptor->uid, reinterpret_cast<uintptr_t>(this) & 0xffff);
mStaleTimerHandler = sp<StaleTimerHandler>(new StaleTimerHandler(this));
mPowerManagerHandler = PowerSessionManager::getInstance();
mLastUpdatedTime.store(std::chrono::steady_clock::now());
if (ATRACE_ENABLED()) {
traceSessionVal("target", mDescriptor->duration.count());
traceSessionVal("active", mDescriptor->is_active.load());
const std::string idstr = getIdString();
std::string sz = StringPrintf("adpf.%s-target", idstr.c_str());
ATRACE_INT(sz.c_str(), (int64_t)mDescriptor->duration.count());
sz = StringPrintf("adpf.%s-active", idstr.c_str());
ATRACE_INT(sz.c_str(), mDescriptor->is_active.load());
}
PowerSessionManager::getInstance()->addPowerSession(this);
// init boost
@ -141,15 +148,21 @@ PowerHintSession::~PowerHintSession() {
close();
ALOGV("PowerHintSession deleted: %s", mDescriptor->toString().c_str());
if (ATRACE_ENABLED()) {
traceSessionVal("target", 0);
traceSessionVal("actl_last", 0);
traceSessionVal("active", 0);
const std::string idstr = getIdString();
std::string sz = StringPrintf("adpf.%s-target", idstr.c_str());
ATRACE_INT(sz.c_str(), 0);
sz = StringPrintf("adpf.%s-actl_last", idstr.c_str());
ATRACE_INT(sz.c_str(), 0);
sz = sz = StringPrintf("adpf.%s-active", idstr.c_str());
ATRACE_INT(sz.c_str(), 0);
}
delete mDescriptor;
}
void PowerHintSession::traceSessionVal(char const *identifier, int64_t val) const {
ATRACE_INT(StringPrintf("adpf.%s-%s", mIdString.c_str(), identifier).c_str(), val);
std::string PowerHintSession::getIdString() const {
std::string idstr = StringPrintf("%" PRId32 "-%" PRId32 "-%" PRIxPTR, mDescriptor->tgid,
mDescriptor->uid, reinterpret_cast<uintptr_t>(this) & 0xffff);
return idstr;
}
bool PowerHintSession::isAppSession() {
@ -162,7 +175,7 @@ void PowerHintSession::updateUniveralBoostMode() {
return;
}
if (ATRACE_ENABLED()) {
const std::string tag = StringPrintf("%s:updateUniveralBoostMode()", mIdString.c_str());
const std::string tag = StringPrintf("%s:updateUniveralBoostMode()", getIdString().c_str());
ATRACE_BEGIN(tag.c_str());
}
PowerHintMonitor::getInstance()->getLooper()->sendMessage(mPowerManagerHandler, NULL);
@ -182,7 +195,9 @@ int PowerHintSession::setSessionUclampMin(int32_t min) {
PowerSessionManager::getInstance()->setUclampMin(this, min);
if (ATRACE_ENABLED()) {
traceSessionVal("min", min);
const std::string idstr = getIdString();
std::string sz = StringPrintf("adpf.%s-min", idstr.c_str());
ATRACE_INT(sz.c_str(), min);
}
return 0;
}
@ -192,7 +207,7 @@ int PowerHintSession::getUclampMin() {
}
void PowerHintSession::dumpToStream(std::ostream &stream) {
stream << "ID.Min.Act.Timeout(" << mIdString;
stream << "ID.Min.Act.Timeout(" << getIdString();
stream << ", " << mDescriptor->current_min;
stream << ", " << mDescriptor->is_active;
stream << ", " << isTimeout() << ")";
@ -209,7 +224,9 @@ ndk::ScopedAStatus PowerHintSession::pause() {
mDescriptor->is_active.store(false);
setStale();
if (ATRACE_ENABLED()) {
traceSessionVal("active", mDescriptor->is_active.load());
const std::string idstr = getIdString();
std::string sz = StringPrintf("adpf.%s-active", idstr.c_str());
ATRACE_INT(sz.c_str(), mDescriptor->is_active.load());
}
updateUniveralBoostMode();
return ndk::ScopedAStatus::ok();
@ -226,7 +243,9 @@ ndk::ScopedAStatus PowerHintSession::resume() {
// resume boost
setSessionUclampMin(mDescriptor->current_min);
if (ATRACE_ENABLED()) {
traceSessionVal("active", mDescriptor->is_active.load());
const std::string idstr = getIdString();
std::string sz = StringPrintf("adpf.%s-active", idstr.c_str());
ATRACE_INT(sz.c_str(), mDescriptor->is_active.load());
}
updateUniveralBoostMode();
return ndk::ScopedAStatus::ok();
@ -265,7 +284,9 @@ ndk::ScopedAStatus PowerHintSession::updateTargetWorkDuration(int64_t targetDura
mDescriptor->duration = std::chrono::nanoseconds(targetDurationNanos);
if (ATRACE_ENABLED()) {
traceSessionVal("target", mDescriptor->duration.count());
const std::string idstr = getIdString();
std::string sz = StringPrintf("adpf.%s-target", idstr.c_str());
ATRACE_INT(sz.c_str(), (int64_t)mDescriptor->duration.count());
}
return ndk::ScopedAStatus::ok();
@ -293,13 +314,18 @@ ndk::ScopedAStatus PowerHintSession::reportActualWorkDuration(
mDescriptor->update_count++;
bool isFirstFrame = isTimeout();
if (ATRACE_ENABLED()) {
traceSessionVal("batch_size", actualDurations.size());
traceSessionVal("actl_last", actualDurations.back().durationNanos);
traceSessionVal("target", mDescriptor->duration.count());
traceSessionVal("hint.count", mDescriptor->update_count);
traceSessionVal("hint.overtime",
actualDurations.back().durationNanos - mDescriptor->duration.count() > 0);
traceSessionVal("session_hint", -1);
const std::string idstr = getIdString();
std::string sz = StringPrintf("adpf.%s-batch_size", idstr.c_str());
ATRACE_INT(sz.c_str(), actualDurations.size());
sz = StringPrintf("adpf.%s-actl_last", idstr.c_str());
ATRACE_INT(sz.c_str(), actualDurations.back().durationNanos);
sz = StringPrintf("adpf.%s-target", idstr.c_str());
ATRACE_INT(sz.c_str(), (int64_t)mDescriptor->duration.count());
sz = StringPrintf("adpf.%s-hint.count", idstr.c_str());
ATRACE_INT(sz.c_str(), mDescriptor->update_count);
sz = StringPrintf("adpf.%s-hint.overtime", idstr.c_str());
ATRACE_INT(sz.c_str(),
actualDurations.back().durationNanos - mDescriptor->duration.count() > 0);
}
mLastUpdatedTime.store(std::chrono::steady_clock::now());
@ -311,13 +337,16 @@ ndk::ScopedAStatus PowerHintSession::reportActualWorkDuration(
setSessionUclampMin(adpfConfig->mUclampMinHigh);
return ndk::ScopedAStatus::ok();
}
int64_t output = convertWorkDurationToBoostByPid(actualDurations);
int64_t output = convertWorkDurationToBoostByPid(
adpfConfig, mDescriptor->duration, actualDurations, &(mDescriptor->integral_error),
&(mDescriptor->previous_error), getIdString());
/* apply to all the threads in the group */
int next_min = std::min(static_cast<int>(adpfConfig->mUclampMinHigh),
mDescriptor->current_min + static_cast<int>(output));
next_min = std::max(static_cast<int>(adpfConfig->mUclampMinLow), next_min);
setSessionUclampMin(next_min);
mStaleTimerHandler->updateTimer(getStaleTime());
mAdaptiveCpu->ReportWorkDurations(actualDurations, mDescriptor->duration);
@ -351,12 +380,7 @@ bool PowerHintSession::isActive() {
bool PowerHintSession::isTimeout() {
auto now = std::chrono::steady_clock::now();
time_point<steady_clock> staleTime =
mLastUpdatedTime.load() +
nanoseconds(static_cast<int64_t>(
mDescriptor->duration.count() *
HintManager::GetInstance()->GetAdpfProfile()->mStaleTimeFactor));
return now >= staleTime;
return now >= getStaleTime();
}
const std::vector<int> &PowerHintSession::getTidList() const {
@ -369,25 +393,41 @@ void PowerHintSession::setStale() {
// Deliver a task to check if all sessions are inactive.
updateUniveralBoostMode();
if (ATRACE_ENABLED()) {
traceSessionVal("min", 0);
const std::string idstr = getIdString();
std::string sz = StringPrintf("adpf.%s-min", idstr.c_str());
ATRACE_INT(sz.c_str(), 0);
}
}
time_point<steady_clock> PowerHintSession::getStaleTime() {
return mLastUpdatedTime.load() +
nanoseconds(static_cast<int64_t>(
mDescriptor->duration.count() *
HintManager::GetInstance()->GetAdpfProfile()->mStaleTimeFactor));
}
void PowerHintSession::StaleTimerHandler::updateTimer() {
auto now = std::chrono::steady_clock::now();
nanoseconds staleDuration = std::chrono::nanoseconds(
static_cast<int64_t>(mSession->mDescriptor->duration.count() *
HintManager::GetInstance()->GetAdpfProfile()->mStaleTimeFactor));
mStaleTime.store(now + staleDuration);
int64_t next = static_cast<int64_t>(staleDuration.count());
time_point<steady_clock> staleTime =
std::chrono::steady_clock::now() +
nanoseconds(static_cast<int64_t>(
mSession->mDescriptor->duration.count() *
HintManager::GetInstance()->GetAdpfProfile()->mStaleTimeFactor));
updateTimer(staleTime);
}
void PowerHintSession::StaleTimerHandler::updateTimer(time_point<steady_clock> staleTime) {
mStaleTime.store(staleTime);
{
std::lock_guard<std::mutex> guard(mMessageLock);
PowerHintMonitor::getInstance()->getLooper()->removeMessages(mSession->mStaleTimerHandler);
PowerHintMonitor::getInstance()->getLooper()->sendMessageDelayed(
next, mSession->mStaleTimerHandler, NULL);
PowerHintMonitor::getInstance()->getLooper()->sendMessage(mSession->mStaleTimerHandler,
NULL);
}
mIsMonitoring.store(true);
if (ATRACE_ENABLED()) {
mSession->traceSessionVal("timer.stale", 0);
const std::string idstr = mSession->getIdString();
std::string sz = StringPrintf("adpf.%s-timer.stale", idstr.c_str());
ATRACE_INT(sz.c_str(), 0);
}
}
@ -406,12 +446,12 @@ void PowerHintSession::StaleTimerHandler::handleMessage(const Message &) {
next, mSession->mStaleTimerHandler, NULL);
} else {
mSession->setStale();
if (ATRACE_ENABLED()) {
mSession->traceSessionVal("session_hint", -1);
}
mIsMonitoring.store(false);
}
if (ATRACE_ENABLED()) {
mSession->traceSessionVal("timer.stale", next > 0 ? 0 : 1);
const std::string idstr = mSession->getIdString();
std::string sz = StringPrintf("adpf.%s-timer.stale", idstr.c_str());
ATRACE_INT(sz.c_str(), mIsMonitoring ? 0 : 1);
}
}

View file

@ -93,8 +93,10 @@ class PowerHintSession : public BnPowerHintSession {
private:
class StaleTimerHandler : public MessageHandler {
public:
StaleTimerHandler(PowerHintSession *session) : mSession(session), mIsSessionDead(false) {}
StaleTimerHandler(PowerHintSession *session)
: mSession(session), mIsMonitoring(false), mIsSessionDead(false) {}
void updateTimer();
void updateTimer(time_point<steady_clock> staleTime);
void handleMessage(const Message &message) override;
void setSessionDead();
@ -103,14 +105,14 @@ class PowerHintSession : public BnPowerHintSession {
std::mutex mStaleLock;
std::mutex mMessageLock;
std::atomic<time_point<steady_clock>> mStaleTime;
std::atomic<bool> mIsMonitoring;
bool mIsSessionDead;
};
private:
void updateUniveralBoostMode();
int setSessionUclampMin(int32_t min);
int64_t convertWorkDurationToBoostByPid(const std::vector<WorkDuration> &actualDurations);
void traceSessionVal(char const *identifier, int64_t val) const;
std::string getIdString() const;
const std::shared_ptr<AdaptiveCpu> mAdaptiveCpu;
AppHintDesc *mDescriptor = nullptr;
sp<StaleTimerHandler> mStaleTimerHandler;
@ -118,7 +120,6 @@ class PowerHintSession : public BnPowerHintSession {
sp<MessageHandler> mPowerManagerHandler;
std::mutex mSessionLock;
std::atomic<bool> mSessionClosed = false;
std::string mIdString;
};
} // namespace pixel

View file

@ -70,7 +70,7 @@ debug.sf.early.sf.duration=27600000
debug.sf.early.app.duration=20000000
debug.sf.earlyGl.sf.duration=27600000
debug.sf.earlyGl.app.duration=20000000
debug.sf.hwc.min.duration=17000000
debug.sf.hwc.min.duration=23000000
debug.sf.hw=1
debug.sf.enable_egl_image_tracker=true
debug.sf.disable_backpressure=1

View file

@ -119,7 +119,6 @@ ro.audio.spatializer_enabled=true
persist.vendor.audio.spatializer.speaker_enabled=true
# Camera
persist.camera.perfd.enable=true
vendor.camera.aux.packageblacklist=com.discord
# Crypto

View file

@ -43,8 +43,8 @@ vendor/lib/rfsa/adsp/libvpp_svc_skel.so|2da97f61c1d14f1f9a38aecd8ab89a1f6fa8d991
vendor/lib/rfsa/adsp/dirac_resource.dar|1e5c52f2a41bdbec4f38ebdcb83d4fc73edc0ec9
vendor/lib/rfsa/adsp/libdirac-capiv2.so|e56031dfaee094d5267e3cc16625cfceaa07cc27
# Audio - from LA.QSSI.14.0.r1-14100-qssi.0
system_ext/bin/qxrsplitauxservice|916af06b278375a3e1f6d5be76df2952b15843b3
# Audio - from LA.QSSI.14.0.r1-13500-qssi.0
system_ext/bin/qxrsplitauxservice|c5f22a864f40c91000e78382fb5fec37d09420ca
system_ext/etc/init/sxrauxd_ext.rc|fbaa12e37788fa17524fec02b842902d4e3a6f53
system_ext/etc/seccomp_policy/sxraux-arm.policy|641a5c68c9842e9defc052b6b401c5e8a4c2d2de
-system_ext/framework/vendor.qti.voiceprint-V1.0-java.jar|6698f97a70e9384b05745ceeee27310ceabbd557
@ -464,10 +464,6 @@ vendor/lib64/libmm-hdcpmgr.so|a06cea03836085c088b04a2ce39048bf191e9a3f
vendor/lib64/librmp.so|530fddca962ec88bf683e3999705b44b53deaf89
vendor/lib64/libwvhidl.so|39a5766f1b64c9bddc2af63421edcc515fe030ea
# DRM - from Miatoll
vendor/lib64/libops.so|79efbf6cad2617a6d1de6c649cca9ddeb1a0c1e5
vendor/lib64/libspl.so|e2b3e2dd28b0eee567d72de696cd1e01288ae06f
# DSP - from Zebra/helios/helios:13/13-22-18.00-TG-U02-STD-HEL-04/84:user/release-keys
vendor/bin/dspservice|4ff6bac615c12a3a732eccca4b1e25e280acf880
vendor/etc/init/vendor.qti.hardware.dsp@1.0-service.rc|fbf2bb38ca6bdddf98c7123da9e1f263a4eec55f
@ -605,9 +601,9 @@ vendor/lib64/libVkLayer_q3dtools.so|55b486927aed5589f13e1fa66162e845d44e1c43
vendor/lib/libhdr_tm.so|dd0e01284e1e76244a849e5a2e0393a21bd36508
vendor/lib64/libhdr_tm.so|28117de78d64d15d1454a13b50c17b168170e456
# Graphics (Postprocessing) - from LA.QSSI.14.0.r1-14100-qssi.0
system_ext/lib64/libsd_sdk_display.qti.so|2300df780204b5bf55dcf249a2e593bc27ffd255
system_ext/lib64/libsdm-disp-apis.qti.so|ea85c8ce078646b4a28d6250366421e4ffa5b061
# Graphics (Postprocessing) - from LA.QSSI.14.0.r1-11100-qssi.0
system_ext/lib64/libsd_sdk_display.qti.so|9c057656ea604a9d5ca1f98ba9cf974bb81de7e9
system_ext/lib64/libsdm-disp-apis.qti.so|8f86d32c087601356ac009358e16fcba9995610d
system_ext/lib64/vendor.display.color@1.0.so|2d294cf3b8d175e78abef277a04772adb387debd
system_ext/lib64/vendor.display.color@1.1.so|06c473e2a82e2eb928e375c1ecf69a0f64a3133d
system_ext/lib64/vendor.display.color@1.2.so|5614bff70d2ed3fa8d3cfd12ec5986728889280f
@ -696,11 +692,11 @@ vendor/lib64/libgcs-osal.so|158586fa96dc726ae661767ecaa08b28d8ea1bf8
vendor/lib64/libgcs.so|678c7956f4aaae15ff044192850e1d879e98fb90
vendor/lib64/libmulawdec.so|0fffe1bfb77a6cdf6fada5833369a6445d67a7d0
# Media - from LA.QSSI.14.0.r1-15100-qssi.0
# Media - from LA.QSSI.14.0.r1-12000-qssi.0
system_ext/lib/extractors/libmmparserextractor.so|a27fcdac0d65fe9be9514a48c4b330c051fa5500
system_ext/lib/libavenhancements.so|2c4e7fe65f00e3d4c010c12250149834fa7e0ad0
system_ext/lib/libavenhancements.so|ce5b60d951ecdecae867e3b4e122b9b9e71f928c
system_ext/lib64/extractors/libmmparserextractor.so|ec7b03f56f0d4f18c40c6fd0391e0d489ea11059
system_ext/lib64/libavenhancements.so|561a175ba1b1e81b46889fad665e55d649bafd16
system_ext/lib64/libavenhancements.so|784e9cb97c639de7b249f685a2c3023ab01b58c8
# Media - from Zebra/helios/helios:13/13-22-18.00-TG-U02-STD-HEL-04/84:user/release-keys
vendor/lib/libAlacSwDec.so|13abcbb9a93bf945d6377aea7c60f5ddbfb92927
@ -809,7 +805,7 @@ vendor/lib/vendor.qti.hardware.qseecom@1.0.so|1ae7ccce14972437e28c276c5f140386b1
vendor/lib64/hw/vendor.qti.hardware.qseecom@1.0-impl.so|a0950b63719a54dce170f69c512db3ff5a93b06b
vendor/lib64/vendor.qti.hardware.qseecom@1.0.so|f0846863eaee7fcefd0d8bfa24c8f78a34122388
# Radio - from LA.QSSI.14.0.r1-14100-qssi.0
# Radio - from LA.QSSI.14.0.r1-11100-qssi.0
system_ext/app/DeviceInfo/DeviceInfo.apk|9151091e029c31228100a4c471b5a499acdf8129
system_ext/app/QtiTelephonyService/QtiTelephonyService.apk|6649715fb5d956ca7e92a747dc6e73a24f3c025e
system_ext/app/uceShimService/uceShimService.apk|38ea630d6d94ba85de4218854d12c68957c8c422
@ -819,7 +815,7 @@ system_ext/etc/permissions/telephony_system-ext_privapp-permissions-qti.xml|a7e1
system_ext/etc/cdma_call_conf.xml|d1ae6bf84ec5b68ea6659d6b0558835af69aa8c0
system_ext/etc/spn-conf.xml|ac8a0750445f66091e7e77928fc055ff50369f42
system_ext/framework/qcrilhook.jar|d9778a3f8da09bf25c4905fb4e5d0fd7310f1f42
system_ext/framework/qti-telephony-common.jar|bb3ab85fcc841cb41e7f7c911eecf4de110d09b9
system_ext/framework/qti-telephony-common.jar|049c0c81597db329a433f38625119c76feab76ec
system_ext/lib64/libembmsmmosal.so|8b0fff20a21f42673c8608f7d840397209f3b6d0
system_ext/lib64/libembmsmmparser_lite.so|13441492d157fde30b6d13d7db358387dd62c788
system_ext/lib64/libembmstinyxml.so|b0dc45b8ec331a4572191016c3166a552f7215dc
@ -850,7 +846,7 @@ system_ext/lib64/vendor.qti.hardware.radio.uim_remote_client@1.1.so|a19ecac9a0c9
system_ext/lib64/vendor.qti.hardware.radio.uim_remote_client@1.2.so|883b0b971473b6e43709eaaea11943e72580c33b
system_ext/lib64/vendor.qti.hardware.radio.uim_remote_server@1.0.so|c918ca8f28ac1ce27b4c2c9ac9a0f042fb3cad5d
# Radio - from Zebra/helios/helios:13/13-29-10.00-TG-U00-STD-HEL-04/120:user/release-keys
# Radio - from Zebra/helios/helios:13/13-26-09.00-TG-U00-STD-HEL-04/103:user/release-keys
vendor/bin/hw/qcrild|452be3cc159d7f0a001f03cd00845b159b002b13
vendor/bin/adpl|3de10f1c962aac60a5b9f35935e5322aa80d897b
vendor/bin/netmgrd|3ec640be13470f608ed8c476e31c4bfeab6a4a21
@ -890,8 +886,8 @@ vendor/lib64/libqrtr.so|948619679d57ca85512ddef90684468df1b23d70
vendor/lib64/libqsocket.so|bee3fe87b9a515912368e2e25283e72d02bf4fc0
vendor/lib64/libril-qc-hal-qmi.so|239abe3c65b96ec5b8b9fecf38fe4a65e3d94280
vendor/lib64/libril-qc-logger.so|103045dba0de411366d7d4884096838663b80941
vendor/lib64/libril-qc-ltedirectdisc.so|a09eb575b3fca9229b390e1c6f56db21df5cf1ca
vendor/lib64/libril-qc-radioconfig.so|f3ba568b59b41c90a0c1d0fe192371b972ba7d20
vendor/lib64/libril-qc-ltedirectdisc.so|b91a7c664a998f138752edf28d602e88211cad3b
vendor/lib64/libril-qc-radioconfig.so|f67c013e1fc37947f1840b8c3efc6a65f9476165
vendor/lib64/libril-qcril-hook-oem.so|b1e21403183c82c62953345cc8b6307b10e9ceb3
vendor/lib64/librilqmiservices.so|f00c0ff8198f3eb72fff243a6a58f532c2b52269
vendor/lib64/libsettings.so|2ac0b04632293f9e2050e2113cd10af9ccf121b2
@ -936,7 +932,7 @@ vendor/radio/qcril_database/upgrade/8_version_update_ecc_table.sql|a0603a5c46e8e
vendor/radio/qcril_database/upgrade/9_version_update_ecc_table.sql|4701219a79190995eda651e5c45e11c9b111a478
vendor/radio/qcril_database/qcril.db|77ea8412ac1a5f1a198d1adb1dcd265d7899959f
# Radio - IMS - from LA.QSSI.14.0.r1-15800-qssi.0
# Radio - IMS - from LA.QSSI.14.0.r1-13500-qssi.0
system_ext/etc/permissions/com.qualcomm.qti.imscmservice-V2.0-java.xml|bd9fc166b542b4e730f194ebc996957770d9d497
system_ext/etc/permissions/com.qualcomm.qti.imscmservice-V2.1-java.xml|b40fc74f7d5e58b4e918f952b89a79cf2a5c4088
system_ext/etc/permissions/com.qualcomm.qti.imscmservice-V2.2-java.xml|bfceff47fb0b55a418bed71de6050d876a776ac7
@ -986,12 +982,12 @@ system_ext/lib64/com.qualcomm.qti.uceservice@2.0.so|c872a91663d82643bbd92041978e
system_ext/lib64/com.qualcomm.qti.uceservice@2.1.so|fd07e9de5508f20f077cd7cc61f17b8595cb274e
system_ext/lib64/com.qualcomm.qti.uceservice@2.2.so|a8b06abf636604b815468e4cedc87ef4f0e22e66
system_ext/lib64/com.qualcomm.qti.uceservice@2.3.so|741285b15d3cb272269e4244898e8239b9f089a6
system_ext/lib64/lib-imsvideocodec.so|fe3f4e54ef28d6739dae639faed9e56672bce707
system_ext/lib64/lib-imsvt.so|ccd0a8655f950d3fa418ec9ec717ba2e96b2ac87
system_ext/lib64/lib-imsvideocodec.so|b1244bb8cf9b43d6136042cf73dec5c7443c695a
system_ext/lib64/lib-imsvt.so|0517dff9db29cbf4a2a62706e1ce3b322cf1d681
system_ext/lib64/lib-imsvtextutils.so|19b0a5b9119388e735729e9a86ee7ee0a1355077
system_ext/lib64/lib-imsvtutils.so|8a8d4f3c6b57fc3a31f0982a9cd43b990514e1a7
system_ext/lib64/libdiag_system.qti.so|c275d82ed804f30367dc1f133f6e4b9d2ca453db
system_ext/lib64/libdiag_system.so|b479225f6d2a3e39dde96a22563a149dcb7f90d8
system_ext/lib64/libdiag_system.qti.so|60aa3154c931cccb71f33eedd044d5b995db7f36
system_ext/lib64/libdiag_system.so|a906457ce24cd76db5bc7b868f093a2623bf82d0
system_ext/lib64/libimscamera_jni.so|ca67ceb33d74db1f2d84d06a827c1c7d06bd3256
system_ext/lib64/libimsmedia_jni.so|19889926ad7e21124b32bcd56139a9343be5e768
system_ext/lib64/vendor.qti.hardware.radio.ims@1.0.so|46f647cff2a3cfa3cdbf265f5f0ac97dfd0522aa
@ -1035,7 +1031,7 @@ system_ext/lib64/vendor.qti.imsrtpservice@3.0.so|919c4398097c8b818a415efccc57e98
system_ext/lib64/vendor.qti.imsrtpservice@3.1.so|d1b6a6eabf17e43e98dcc4372fdabea4890f7cd8
system_ext/lib64/vendor.qti.ImsRtpService-V1-ndk.so|bb32703c026364da33ca1b4f83c839e1e312ae9b
system_ext/lib64/vendor.qti.mstatservice@1.0.so|563e00dd5b8c45d63d6a3b304a1411a357822261
system_ext/priv-app/ims/ims.apk|a52f115f281d22025272791b7414775bb30feb4d
system_ext/priv-app/ims/ims.apk|eb896ad88f5c4d7ae26f6474e7fe4ccff8cc1efd
# Radio - IMS - from Zebra/helios/helios:13/13-22-18.00-TG-U02-STD-HEL-04/84:user/release-keys
vendor/bin/ims_rtp_daemon|4a32f19d478ed6d03b7c7d59e99768989a509483
@ -1107,11 +1103,11 @@ vendor/lib64/libscveObjectTracker_stub.so|c8d4ee447045e0bcd4bc9fe101ff3ad5089250
vendor/lib64/vendor.qti.hardware.scve.objecttracker@1.0.so|20dca87cf73b1e69b1650aff7c5c72f9e0b74fe0
vendor/lib64/vendor.qti.hardware.scve.panorama@1.0.so|aab964d5e947d461c190aa3841d136dfa0fd9b44
# Sensors - from Zebra/helios/helios:13/13-29-10.00-TG-U00-STD-HEL-04/120:user/release-keys
# Sensors - from Zebra/helios/helios:13/13-26-09.00-TG-U00-STD-HEL-04/103:user/release-keys
-system_ext/framework/vendor.qti.hardware.sensorscalibrate-V1.0-java.jar|662159c62a683a2096a73adf1d52b1074c1ab960
system_ext/lib/vendor.qti.hardware.sensorscalibrate@1.0.so|50e57a9ffcf1483061fef4e48e8a831f61886ba4
system_ext/lib64/vendor.qti.hardware.sensorscalibrate@1.0.so|b381c166cb399c3fec5163f7128f2de305c8004d
vendor/bin/sensors.qti|9ee2cc97ca9e4ff3296c654674ac786cf9f0b19c
vendor/bin/sensors.qti|897bd3f348a91214e0e356c9d70e48e3ce3d4f96
vendor/lib/libsensor1.so|084f1bb499dfca2b2a23fd19d4ff4c45dab26293
vendor/lib/libsensor_reg.so|8b1e757e0fbdfd740c6b6513473902d36d2235bc
vendor/lib/libssc_default_listener.so|ddc720778e4610fd8b14b2bc92d9ec7b37682992

View file

@ -172,6 +172,10 @@ on boot
#enable camera read sensors data
setprop persist.camera.gyro.disable 0
#Remove SUID bit for iproute2 ip tool
chmod 0755 /system/bin/ip
chmod 0444 /sys/devices/platform/msm_hsusb/gadget/usb_state
setprop net.tcp.2g_init_rwnd 10

View file

@ -650,7 +650,7 @@
<!-- Minimum screen brightness setting allowed by power manager.
The user is forbidden from setting the brightness below this level.-->
<item name="config_screenBrightnessSettingMinimumFloat" format="float" type="dimen">0.0025</item>
<item name="config_screenBrightnessSettingMinimumFloat" format="float" type="dimen">0.0</item>
<!-- Maximum screen brightness allowed by the power manager.
The user is forbidden from setting the brightness above this level.-->
@ -795,6 +795,9 @@
<item>"/system/bin/surfaceflinger"</item>
</string-array>
<!-- Should the pinner service pin the Home application? -->
<bool name="config_pinnerHomeApp">true</bool>
<!-- Flag indicating whether the current device is "voice capable".
If true, this means that the device supports circuit-switched
(i.e. voice) phone calls over the telephony network, and is

View file

@ -11,6 +11,13 @@ $(call inherit-product-if-exists, build/target/product/embedded.mk)
# Disable deprecated sdcardfs, enable casefold, projid
$(call inherit-product, $(SRC_TARGET_DIR)/product/emulated_storage.mk)
# Enable updating of APEXes
ifeq ($(ENABLE_APEX), true)
TARGET_SUPPORTS_UPDATABLE_APEX := true
$(call inherit-product, $(SRC_TARGET_DIR)/product/updatable_apex.mk)
$(call inherit-product-if-exists, vendor/prebuilts/config/apex.mk)
endif
# Inherit proprietary files
$(call inherit-product, vendor/xiaomi/sdm660-common/sdm660-common-vendor.mk)
$(call inherit-product-if-exists, vendor/xiaomi/MiuiCamera/config.mk)
@ -59,7 +66,6 @@ endif
PRODUCT_PACKAGES += \
android.hardware.audio@7.1-impl \
android.hardware.audio.effect@7.0-impl \
android.hardware.audio.sounddose-vendor-impl \
android.hardware.audio.service \
audio.primary.sdm660 \
audio.r_submix.default \
@ -67,7 +73,6 @@ PRODUCT_PACKAGES += \
audio.usbv2.default \
liba2dpoffload \
libaudio-resampler \
libaudioroute.vendor \
libhdmiedid \
libhfp \
libsndmonitor \
@ -208,7 +213,6 @@ PRODUCT_PACKAGES += \
PRODUCT_PACKAGES += \
android.hardware.gatekeeper@1.0.vendor \
android.hardware.keymaster@4.1.vendor \
libion.vendor
# Freeform Multiwindow
PRODUCT_COPY_FILES += \
@ -259,7 +263,6 @@ PRODUCT_PACKAGES += \
PRODUCT_PACKAGES += \
android.hidl.base@1.0 \
android.hidl.base@1.0.vendor \
libhidlmemory.vendor \
libhidltransport \
libhidltransport.vendor \
libhwbinder \
@ -320,27 +323,6 @@ PRODUCT_PACKAGES += \
PRODUCT_PACKAGES += \
android.hardware.light-service.xiaomi
# Logging
SPAMMY_LOG_TAGS := \
MiStcImpl \
SDM \
SDM-histogram \
SRE \
WifiHAL \
cnss-daemon \
libcitsensorservice@2.0-impl \
libsensor-displayalgo \
libsensor-parseRGB \
libsensor-ssccalapi \
sensors \
vendor.qti.hardware.display.composer-service \
vendor.xiaomi.sensor.citsensorservice@2.0-service
ifneq ($(TARGET_BUILD_VARIANT),eng)
PRODUCT_VENDOR_PROPERTIES += \
$(foreach tag,$(SPAMMY_LOG_TAGS),log.tag.$(tag)=E)
endif
# Media
PRODUCT_PACKAGES += \
libgui_vendor
@ -484,7 +466,6 @@ PRODUCT_DEXPREOPT_SPEED_APPS += \
PRODUCT_PACKAGES += \
libprotobuf-cpp-full-vendorcompat \
libprotobuf-cpp-lite-vendorcompat \
libprotobuf-cpp-full-3.9.1-vendorcompat \
libprotobuf-cpp-lite-3.9.1-vendorcompat
# Privapp-Permissions
@ -518,9 +499,7 @@ PRODUCT_PACKAGES += \
android.hardware.radio.config@1.3.vendor \
android.hardware.radio@1.6.vendor \
android.hardware.radio.deprecated@1.0.vendor \
android.hardware.secure_element@1.2.vendor \
libnetutils.vendor \
libsqlite.vendor:64
android.hardware.secure_element@1.2.vendor
# RIL
PRODUCT_PACKAGES += \
@ -556,7 +535,6 @@ PRODUCT_PACKAGES += \
android.frameworks.sensorservice@1.0.vendor \
android.hardware.sensors@1.0-impl \
android.hardware.sensors@1.0-service \
libpower.vendor \
libsensorndkbridge
# Sensor Config
@ -578,6 +556,10 @@ PRODUCT_SYSTEM_SERVER_COMPILER_FILTER := speed-profile
PRODUCT_USE_PROFILE_FOR_BOOT_IMAGE := true
PRODUCT_DEX_PREOPT_BOOT_IMAGE_PROFILE_LOCATION := frameworks/base/config/boot-image-profile.txt
# System
PRODUCT_VENDOR_PROPERTIES += \
persist.sys.binary_xml=false
# Tetheroffload
PRODUCT_PACKAGES += \
ipacm \