内存作假、存储作假所需要修改的文件列表
lyw@bnd96:~/work2/U_AW_1/u_aw/u_aw_sys$ git show --name-only 692f9e95b8461e39769029f73e3d2a8f5be587a4
commit 692f9e95b8461e39769029f73e3d2a8f5be587a4
Author: lyw <lyw@szbnd.cn>
Date: Tue Aug 13 10:10:05 2024 +0000
内存作假、存储空间作假代码配置,可通过persist.sys.odm.bnd_ddr、persist.sys.odm.bnd_flash设置对应作假值,显示作假,默认不作假
1.MTP电脑端容量显示(MtpStorage.cpp)
2.导航栏-任务键-内存,可用x.xxG,总x.xxG(OverviewActionsView.java)
3.设置-系统-开发者选项-内存,总内存x.x GB,可用x.x GB(ProcessStatsSummary.java)
4.设置-系统-开发者选项,平均内存用量为x.x GB,共x.x GB(MemoryUsagePreferenceController.java)
5.设置-存储,已使用xx%-还剩xx.xx GB(TopLevelStoragePreferenceController.java)
6.设置-关于平板电脑-型号-存储空间(FlashPreferenceController.java)
7.设置-关于平板电脑-型号-运行内存(RamPreferenceController.java)
8.设置-存储,已使用xx GB,共xx GB(StorageUsageProgressBarPreferenceController.java)
9.设置-系统-内存扩展-总内存,xxxx MB + xxxx MB(MemoryExtensionFragment.java)
frameworks/av/media/mtp/Android.bp
frameworks/av/media/mtp/MtpStorage.cpp
packages/apps/Launcher3/quickstep/src/com/android/quickstep/views/OverviewActionsView.java
packages/apps/Settings/src/com/android/settings/applications/ProcessStatsSummary.java
packages/apps/Settings/src/com/android/settings/development/MemoryUsagePreferenceController.java
packages/apps/Settings/src/com/android/settings/deviceinfo/TopLevelStoragePreferenceController.java
packages/apps/Settings/src/com/android/settings/deviceinfo/hardwareinfo/FlashPreferenceController.java
packages/apps/Settings/src/com/android/settings/deviceinfo/hardwareinfo/RamPreferenceController.java
packages/apps/Settings/src/com/android/settings/deviceinfo/storage/StorageUsageProgressBarPreferenceController.java
packages/apps/Settings/src/com/android/settings/system/MemoryExtensionFragment.java
具体修改如下:
commit 692f9e95b8461e39769029f73e3d2a8f5be587a4
Author: lyw <lyw@szbnd.cn>
Date: Tue Aug 13 10:10:05 2024 +0000
内存作假、存储空间作假代码配置,可通过persist.sys.odm.bnd_ddr、persist.sys.odm.bnd_flash设置对应作假值,显示作假,默认不作假
1.MTP电脑端容量显示(MtpStorage.cpp)
2.导航栏-任务键-内存,可用x.xxG,总x.xxG(OverviewActionsView.java)
3.设置-系统-开发者选项-内存,总内存x.x GB,可用x.x GB(ProcessStatsSummary.java)
4.设置-系统-开发者选项,平均内存用量为x.x GB,共x.x GB(MemoryUsagePreferenceController.java)
5.设置-存储,已使用xx%-还剩xx.xx GB(TopLevelStoragePreferenceController.java)
6.设置-关于平板电脑-型号-存储空间(FlashPreferenceController.java)
7.设置-关于平板电脑-型号-运行内存(RamPreferenceController.java)
8.设置-存储,已使用xx GB,共xx GB(StorageUsageProgressBarPreferenceController.java)
9.设置-系统-内存扩展-总内存,xxxx MB + xxxx MB(MemoryExtensionFragment.java)
diff --git a/frameworks/av/media/mtp/Android.bp b/frameworks/av/media/mtp/Android.bp
index 719d05aa9f..27b2c589ae 100644
--- a/frameworks/av/media/mtp/Android.bp
+++ b/frameworks/av/media/mtp/Android.bp
@@ -68,6 +68,7 @@ cc_defaults {
"libbase",
"liblog",
"libusbhost",
+ "libcutils",
],
header_libs: ["libcutils_headers"],
}
diff --git a/frameworks/av/media/mtp/MtpStorage.cpp b/frameworks/av/media/mtp/MtpStorage.cpp
index a147325bee..685a81be7a 100644
--- a/frameworks/av/media/mtp/MtpStorage.cpp
+++ b/frameworks/av/media/mtp/MtpStorage.cpp
@@ -28,6 +28,7 @@
#include <string.h>
#include <stdio.h>
#include <limits.h>
+#include <cutils/properties.h>
namespace android {
@@ -63,7 +64,15 @@ uint64_t MtpStorage::getMaxCapacity() {
struct statfs stat;
if (statfs(getPath(), &stat))
return -1;
+ char val[PROPERTY_VALUE_MAX];
mMaxCapacity = (uint64_t)stat.f_blocks * (uint64_t)stat.f_bsize;
+ if(!mRemovable){
+ property_get("persist.sys.odm.bnd_flash", val, "0");
+ int mtpTotal = atoi(val);
+ if(mtpTotal != 0){
+ mMaxCapacity = (uint64_t)mtpTotal * 1024 * 1024 * 1024;
+ }
+ }
}
return mMaxCapacity;
}
@@ -72,6 +81,17 @@ uint64_t MtpStorage::getFreeSpace() {
struct statfs stat;
if (statfs(getPath(), &stat))
return -1;
+ char val[PROPERTY_VALUE_MAX];
+ if(!mRemovable){
+ property_get("persist.sys.odm.bnd_flash", val, "0");
+ int mtpTotal = atoi(val);
+ if(mtpTotal != 0){
+ uint64_t mAddTotalBytes = (uint64_t)mtpTotal * 1024 * 1024 * 1024;
+ uint64_t mTotalBytes = (uint64_t)stat.f_blocks * (uint64_t)stat.f_bsize;
+ uint64_t mMultiple = mAddTotalBytes/mTotalBytes;
+ return (uint64_t)stat.f_bavail * (uint64_t)stat.f_bsize * mMultiple;
+ }
+ }
return (uint64_t)stat.f_bavail * (uint64_t)stat.f_bsize;
}
diff --git a/packages/apps/Launcher3/quickstep/src/com/android/quickstep/views/OverviewActionsView.java b/packages/apps/Launcher3/quickstep/src/com/android/quickstep/views/OverviewActionsView.java
index e4456c4aae..653ff12e88 100644
--- a/packages/apps/Launcher3/quickstep/src/com/android/quickstep/views/OverviewActionsView.java
+++ b/packages/apps/Launcher3/quickstep/src/com/android/quickstep/views/OverviewActionsView.java
@@ -23,6 +23,7 @@ import android.content.Context;
import android.content.Intent;
import android.content.res.Configuration;
import android.graphics.Rect;
+import android.os.SystemProperties;//add by lyw
import android.util.AttributeSet;
import android.util.Log;
import android.view.View;
@@ -170,9 +171,21 @@ public class OverviewActionsView<T extends OverlayUICallbacks> extends FrameLayo
ActivityManager.MemoryInfo memoryInfo = new ActivityManager.MemoryInfo();
ActivityManager am = (ActivityManager) getContext().getSystemService(Context.ACTIVITY_SERVICE);
am.getMemoryInfo(memoryInfo);
+ //add by lyw
+ //导航栏-任务键-内存,可用x.xxG,总x.xxG
+ long availMem = memoryInfo.availMem;
+ long totalMem = memoryInfo.totalMem;
+ int bnd_ddr = SystemProperties.getInt("persist.sys.odm.bnd_ddr", 0);
+ if (bnd_ddr != 0) {
+ long bnd_ddr_value = bnd_ddr * 1000 * 1000 * 1000L;
+ float ratio = bnd_ddr_value * 1.0f / totalMem;
+ availMem = (long) (availMem * ratio);
+ totalMem = bnd_ddr_value;
+ }
+ //add end
return getContext().getString(R.string.recent_memory_info,
- String.format(Locale.getDefault(), DECIMAL_RULE, memoryInfo.availMem / UNIT_G),
- String.format(Locale.getDefault(), DECIMAL_RULE, memoryInfo.totalMem / UNIT_G));
+ String.format(Locale.getDefault(), DECIMAL_RULE, availMem / UNIT_G),//modify by lyw
+ String.format(Locale.getDefault(), DECIMAL_RULE, totalMem / UNIT_G));//modify by lyw
}
/// AW: add end
diff --git a/packages/apps/Settings/src/com/android/settings/applications/ProcessStatsSummary.java b/packages/apps/Settings/src/com/android/settings/applications/ProcessStatsSummary.java
index 4044794e71..8ebd63deb6 100644
--- a/packages/apps/Settings/src/com/android/settings/applications/ProcessStatsSummary.java
+++ b/packages/apps/Settings/src/com/android/settings/applications/ProcessStatsSummary.java
@@ -19,6 +19,7 @@ import android.app.settings.SettingsEnums;
import android.content.Context;
import android.icu.text.MessageFormat;
import android.os.Bundle;
+import android.os.SystemProperties;//add by lyw
import android.text.format.Formatter;
import android.text.format.Formatter.BytesResult;
@@ -78,6 +79,19 @@ public class ProcessStatsSummary extends ProcessStatsBase implements OnPreferenc
double freeRam = memInfo.realFreeRam;
BytesResult usedResult = Formatter.formatBytes(context.getResources(), (long) usedRam,
Formatter.FLAG_SHORTER);
+ //add by lyw
+ //设置-系统-开发者选项-内存,总内存x.x GB,可用x.x GB
+ int bnd_ddr = SystemProperties.getInt("persist.sys.odm.bnd_ddr", 0);
+ double ratio = 0;
+ if (bnd_ddr != 0) {
+ double fakeTotalRam = bnd_ddr * 1000 * 1000 * 1000L;
+ ratio = fakeTotalRam / totalRam;
+ totalRam = fakeTotalRam;
+ }
+ if (ratio > 0) {
+ freeRam = freeRam * ratio;
+ }
+ //add end
String totalString = Formatter.formatShortFileSize(context, (long) totalRam);
String freeString = Formatter.formatShortFileSize(context, (long) freeRam);
CharSequence memString;
diff --git a/packages/apps/Settings/src/com/android/settings/development/MemoryUsagePreferenceController.java b/packages/apps/Settings/src/com/android/settings/development/MemoryUsagePreferenceController.java
index 1b20e70a57..af240c4674 100644
--- a/packages/apps/Settings/src/com/android/settings/development/MemoryUsagePreferenceController.java
+++ b/packages/apps/Settings/src/com/android/settings/development/MemoryUsagePreferenceController.java
@@ -17,6 +17,7 @@
package com.android.settings.development;
import android.content.Context;
+import android.os.SystemProperties;//add by lyw
import android.text.format.Formatter;
import androidx.annotation.VisibleForTesting;
@@ -61,10 +62,22 @@ public class MemoryUsagePreferenceController extends DeveloperOptionsPreferenceC
ThreadUtils.postOnBackgroundThread(() -> {
mProcStatsData.refreshStats(true);
final ProcStatsData.MemInfo memInfo = mProcStatsData.getMemInfo();
+ //add by lyw
+ //设置-系统-开发者选项,平均内存用量为x.x GB,共x.x GB
+ long realUsedRam = (long) memInfo.realUsedRam;
+ long realTotalRam = (long) memInfo.realTotalRam;
+ int bnd_ddr = SystemProperties.getInt("persist.sys.odm.bnd_ddr", 0);
+ if (bnd_ddr != 0) {
+ long bnd_ddr_value = bnd_ddr * 1000 * 1000 * 1000L;
+ float ratio = bnd_ddr_value * 1.0f / realTotalRam;
+ realUsedRam = (long) (realUsedRam * ratio);
+ realTotalRam = bnd_ddr_value;
+ }
+ //add end
final String usedResult = Formatter.formatShortFileSize(mContext,
- (long) memInfo.realUsedRam);
+ realUsedRam);//modify by lyw
final String totalResult = Formatter.formatShortFileSize(mContext,
- (long) memInfo.realTotalRam);
+ realTotalRam);//modify by lyw
ThreadUtils.postOnMainThread(
() -> mPreference.setSummary(mContext.getString(R.string.memory_summary,
usedResult, totalResult)));
diff --git a/packages/apps/Settings/src/com/android/settings/deviceinfo/TopLevelStoragePreferenceController.java b/packages/apps/Settings/src/com/android/settings/deviceinfo/TopLevelStoragePreferenceController.java
index e6827832a8..e630cf9877 100644
--- a/packages/apps/Settings/src/com/android/settings/deviceinfo/TopLevelStoragePreferenceController.java
+++ b/packages/apps/Settings/src/com/android/settings/deviceinfo/TopLevelStoragePreferenceController.java
@@ -17,6 +17,7 @@
package com.android.settings.deviceinfo;
import android.content.Context;
+import android.os.SystemProperties;//add by lyw
import android.os.UserManager;
import android.os.storage.StorageManager;
import android.text.format.Formatter;
@@ -90,6 +91,16 @@ public class TopLevelStoragePreferenceController extends BasePreferenceControlle
private String getSummary(long usedBytes, long totalBytes) {
NumberFormat percentageFormat = NumberFormat.getPercentInstance();
+ //add by lyw
+ //设置-存储,已使用xx%-还剩xx.xx GB
+ int bnd_flash = SystemProperties.getInt("persist.sys.odm.bnd_flash", 0);
+ if (bnd_flash != 0) {
+ long bnd_flash_value = bnd_flash * 1000 * 1000 * 1000L;
+ float ratio = bnd_flash_value * 1.0f / totalBytes;
+ totalBytes = bnd_flash_value;
+ usedBytes = (long) (usedBytes * ratio);
+ }
+ //add end
return mContext.getString(R.string.storage_summary,
totalBytes == 0L ? "0" : percentageFormat.format(((double) usedBytes) / totalBytes),
Formatter.formatFileSize(mContext, totalBytes - usedBytes));
diff --git a/packages/apps/Settings/src/com/android/settings/deviceinfo/hardwareinfo/FlashPreferenceController.java b/packages/apps/Settings/src/com/android/settings/deviceinfo/hardwareinfo/FlashPreferenceController.java
index b45f95a012..2788538205 100644
--- a/packages/apps/Settings/src/com/android/settings/deviceinfo/hardwareinfo/FlashPreferenceController.java
+++ b/packages/apps/Settings/src/com/android/settings/deviceinfo/hardwareinfo/FlashPreferenceController.java
@@ -56,6 +56,13 @@ public class FlashPreferenceController extends BasePreferenceController {
@Override
public CharSequence getSummary() {
+ //add by lyw
+ //设置-关于平板电脑-型号-存储空间
+ float bnd_flash = (float)SystemProperties.getInt("persist.sys.odm.bnd_flash", 0);
+ if (bnd_flash != 0) {
+ return String.format("%.1f", bnd_flash) + "GB";
+ }
+ //add end
//return getFlashTotal();
float size = (float)SystemProperties.getInt(PROPERTY_STORAGE_SIZE, 0);
return String.format("%.1f", size)+ "GB";
diff --git a/packages/apps/Settings/src/com/android/settings/deviceinfo/hardwareinfo/RamPreferenceController.java b/packages/apps/Settings/src/com/android/settings/deviceinfo/hardwareinfo/RamPreferenceController.java
index f5d49d513a..85dad17512 100644
--- a/packages/apps/Settings/src/com/android/settings/deviceinfo/hardwareinfo/RamPreferenceController.java
+++ b/packages/apps/Settings/src/com/android/settings/deviceinfo/hardwareinfo/RamPreferenceController.java
@@ -55,6 +55,13 @@ public class RamPreferenceController extends BasePreferenceController {
@Override
public CharSequence getSummary() {
+ //add by lyw
+ //设置-关于平板电脑-型号-运行内存
+ float bnd_ddr = (float)SystemProperties.getInt("persist.sys.odm.bnd_ddr", 0);
+ if (bnd_ddr != 0) {
+ return String.format("%.1f", bnd_ddr) + "GB";
+ }
+ //add end
/*
String ramSize = getConfigRam();
if (ramSize == null) {
diff --git a/packages/apps/Settings/src/com/android/settings/deviceinfo/storage/StorageUsageProgressBarPreferenceController.java b/packages/apps/Settings/src/com/android/settings/deviceinfo/storage/StorageUsageProgressBarPreferenceController.java
index be2a64abf5..597c1aa156 100644
--- a/packages/apps/Settings/src/com/android/settings/deviceinfo/storage/StorageUsageProgressBarPreferenceController.java
+++ b/packages/apps/Settings/src/com/android/settings/deviceinfo/storage/StorageUsageProgressBarPreferenceController.java
@@ -18,6 +18,7 @@ package com.android.settings.deviceinfo.storage;
import android.app.usage.StorageStatsManager;
import android.content.Context;
+import android.os.SystemProperties;//add by lyw
import android.os.UserHandle;
import android.util.Log;
@@ -49,6 +50,7 @@ public class StorageUsageProgressBarPreferenceController extends BasePreferenceC
private StorageEntry mStorageEntry;
boolean mIsUpdateStateFromSelectedStorageEntry;
private StorageCacheHelper mStorageCacheHelper;
+ private long lastInvokeMills;//add by lyw
public StorageUsageProgressBarPreferenceController(Context context, String key) {
super(context, key);
@@ -60,6 +62,15 @@ public class StorageUsageProgressBarPreferenceController extends BasePreferenceC
/** Set StorageEntry to display. */
public void setSelectedStorageEntry(StorageEntry storageEntry) {
mStorageEntry = storageEntry;
+ //add by lyw
+ int bnd_flash = SystemProperties.getInt("persist.sys.ro.odm.bnd_flash", 0);
+ if (bnd_flash != 0) {
+ if (System.currentTimeMillis() - lastInvokeMills < 1000) {
+ return;
+ }
+ lastInvokeMills = System.currentTimeMillis();
+ }
+ //add end
getStorageStatsAndUpdateUi();
}
@@ -94,7 +105,19 @@ public class StorageUsageProgressBarPreferenceController extends BasePreferenceC
mTotalBytes = mStorageStatsManager.getTotalBytes(mStorageEntry.getFsUuid());
mUsedBytes = mTotalBytes
- mStorageStatsManager.getFreeBytes(mStorageEntry.getFsUuid());
+ //add by lyw
+ //内部存储
+ //设置-存储,已使用xx GB,共xx GB
+ int bnd_flash = SystemProperties.getInt("persist.sys.odm.bnd_flash", 0);
+ if (bnd_flash != 0) {
+ long totalBytes = bnd_flash * 1000 * 1000 * 1000L;
+ long ratio = totalBytes / mTotalBytes;
+ mTotalBytes = totalBytes;
+ mUsedBytes = mUsedBytes * ratio;
+ }
+ //add end
} else {
+ //外部存储 add by lyw
final File rootFile = mStorageEntry.getPath();
if (rootFile == null) {
Log.d(TAG, "Mounted public storage has null root path: " + mStorageEntry);
diff --git a/packages/apps/Settings/src/com/android/settings/system/MemoryExtensionFragment.java b/packages/apps/Settings/src/com/android/settings/system/MemoryExtensionFragment.java
index 969cbf61e6..9d657291c6 100644
--- a/packages/apps/Settings/src/com/android/settings/system/MemoryExtensionFragment.java
+++ b/packages/apps/Settings/src/com/android/settings/system/MemoryExtensionFragment.java
@@ -236,6 +236,13 @@ public class MemoryExtensionFragment extends SettingsPreferenceFragment implemen
}
private int getTotalMemorySizeMb() {
+ //add by lyw
+ //设置-系统-内存扩展-总内存,xxxx MB + xxxx MB
+ int bnd_ddr = SystemProperties.getInt("persist.sys.odm.bnd_ddr", 0);
+ if (bnd_ddr != 0) {
+ return bnd_ddr * 1024;
+ }
+ //add end
int value = SystemProperties.getInt(TOTAL_MEM_PROPERTY, 1024);
Log.d(TAG, "getTotalMemorySizeMb" + " value=" + value);
return value;
如果这篇文章有帮助到你,欢迎打赏,支持我的创作。