AOSP framework 全志14 Settings内存作假、存储作假显示

内存作假、存储作假所需要修改的文件列表

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;

如果这篇文章有帮助到你,欢迎打赏,支持我的创作。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值