antutu跑分 火力全开

  • 首先说明不是作假,是让antutu跑分的时候全开cpu

我们要知道向antutu 鲁大师等跑分app作为三方app运行在手机上的时候,也是收到cpu调度影响的,正常情况是不可能全核满频率跑的,对系统来说它就是个三方app 没啥特殊对待的。所以我们想要跑分上去可以在系统上做特殊处理

  • 熟悉activity的启动流程的就知道Instrumentation.java 这个大管家的重要性,我们可以在这里监听应用是否在跑
public void callActivityOnResume(Activity activity) {
         activity.mResumed = true;
         activity.onResume();    
+        String packageName = activity.getComponentName().getPackageName();
+        if("com.antutu.ABenchMark".equals(packageName)||"com.antutu.benchmark.full".equals(packageName)){
+            IActivityManager am = ActivityManager.getService();
+            try {
+                am.setCpuAll(true);
+            } catch (RemoteException ex) {
+                throw ex.rethrowFromSystemServer();
+            }
+        
+

  public void callActivityOnPause(Activity activity) {
         activity.performPause();
+        String packageName = activity.getComponentName().getPackageName();
+        if("com.antutu.ABenchMark".equals(packageName)||"com.antutu.benchmark.full".equals(packageName)){
+            IActivityManager am = ActivityManager.getService();
+            try {
+                am.setCpuAll(false);
+            } catch (RemoteException ex) {
+                throw ex.rethrowFromSystemServer();
+            }
+        }
     }
  • 我们把全开cpu的方法放这里 ActivityManagerService.java (这里mtk平台提供了一个方法perfLockAcquire,高通平台类似,都能满足我们的目的)
+    @Override
+    public void setCpuAll(boolean enable){
+        //SystemProperties.set("persist.sys.cpu_all", enable? "1":"0");
+        if(enable){
+            setAllCpuOpen();
+        }else{
+            perfUnLockAcquireCpu();
+        }
+    }
+    /// @}
+
+    private int hander =0;
+    private void setAllCpuOpen(){
+        if(mPowerProxy==null) return;
+            int PERF_RES_CPUFREQ_MIN_CLUSTER_0 = 0x00400000;
+            int PERF_RES_CPUFREQ_MIN_CLUSTER_1 = 0x00400100;
+            int PERF_RES_CPUCORE_MIN_CLUSTER_0 = 0x00800000;
+            int PERF_RES_CPUCORE_MIN_CLUSTER_1 = 0x00800100;
+            int PERF_RES_DRAM_OPP_MIN = 0x01000000;
+            /* min of cluster 0 = 4 core=> 4L  && L runs @ 1.3GHz atleast */
+            int[] perf_lock_opts =
+                    {PERF_RES_CPUCORE_MIN_CLUSTER_0, 4,
+                            PERF_RES_CPUCORE_MIN_CLUSTER_1, 4,
+                            PERF_RES_CPUFREQ_MIN_CLUSTER_0, 2001000,//mt8788
+                            PERF_RES_CPUFREQ_MIN_CLUSTER_1,1500000,
+                           PERF_RES_DRAM_OPP_MIN,0};//mt8788
+            if (hander != 0) {
+                mPowerProxy.perfLockRelease(hander);
+                hander = 0;
+            }
+            hander = mPowerProxy.perfLockAcquire(hander, 10000, perf_lock_opts);//max 30s
+            if(hander>0){
+                mHandler.removeMessages(MSG_OPEN_ALL_CPU);
+                 mHandler.sendEmptyMessageDelayed(MSG_OPEN_ALL_CPU,10000);
+            }
+    }
+    /**
+     * unlockCpu
+     */
+    public void perfUnLockAcquireCpu(){
+        if (hander != 0) {
+            if(mPowerProxy==null) return;
+           mHandler.removeMessages(MSG_OPEN_ALL_CPU);
+            mPowerProxy.perfLockRelease(hander);
+            hander = 0;
+        }
+    }
  • 对于一些性能问题,可以让cpu全核开,看看还有没有问题,如果好了可以对这个场景做拉高cpu操作

固定当前频率
adb shell "echo 4 > /proc/ppm/policy/ut_fix_core_num"
adb shell "echo 0 > /proc/ppm/policy/ut_fix_freq_idx "
adb shell "echo 570000 > /proc/gpufreq/gpufreq_opp_freq"

adb shell cat /proc/cpufreq/MT_CPU_DVFS_LL/cpufreq_oppidx
adb shell cat /proc/cpufreq/MT_CPU_DVFS_LL/cpufreq_freq
adb shell cat /proc/gpufreq/gpufreq_opp_dump
adb shell "cat /proc/gpufreq/gpufreq_var_dump"

adb shell cat /proc/cpufreq/MT_CPU_DVFS_LL/cpufreq_oppidx
adb shell cat /proc/cpufreq/MT_CPU_DVFS_L/cpufreq_oppidx

大核:
cat /proc/cpufreq/MT_CPU_DVFS_L/cpufreq

小核:

cat /proc/cpufreq/MT_CPU_DVFS_LL/cpufreq

查看

:/ # cat /proc/cpufreq/MT_CPU_DVFS_L/cpufreq_oppidx 大核
[MT_CPU_DVFS_L/0]
cpufreq_oppidx = 15
0 (2001000, 101875)
1 (1961000, 101875)
2 (1927000, 101250)
3 (1897000, 100625)
4 (1868000, 100000)
5 (1838000, 97500)
6 (1809000, 93750)
7 (1779000, 90000)
8 (1750000, 85625)
9 (1617000, 81875)
10 (1484000, 78125)
11 (1351000, 74375)
12 (1218000, 70625)
13 (1085000, 66250)
14 (979000, 63125)
15 (900000, 61250)
:/ # cat /proc/ppm/policy/ut_fix_core_num 查看核数
cluster 0 fix core num = -1
cluster 1 fix core num = -1
:/ # ^C
/ # cat /proc/cpufreq/MT_CPU_DVFS_LL/cpufreq_oppidx 小核
[MT_CPU_DVFS_LL/4]
cpufreq_oppidx = 15
0 (1500000, 101875)
1 (1429000, 99375)
2 (1367000, 96250)
3 (1314000, 94375)
4 (1261000, 93125)
5 (1208000, 91250)
6 (1155000, 89375)
7 (1102000, 87500)
8 (1050000, 86250)
9 (948000, 82500)
10 (846000, 78750)
11 (745000, 75000)
12 (643000, 71250)
13 (542000, 67500)
14 (501000, 65625)
15 (400000, 62500)
Tab_10:/ #

切换成userspace
/ # echo userspace> sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
/ # echo userspace> sys/devices/system/cpu/cpu1/cpufreq/scaling_governor
:/ # echo userspace> sys/devices/system/cpu/cpu2/cpufreq/scaling_governor
:/ # echo userspace> sys/devices/system/cpu/cpu3/cpufreq/scaling_governor
/ # echo userspace> sys/devices/system/cpu/cpu4/cpufreq/scaling_governor
:/ # echo userspace> sys/devices/system/cpu/cpu5/cpufreq/scaling_governor
/ # echo userspace> sys/devices/system/cpu/cpu6/cpufreq/scaling_governor
:/ # echo userspace> sys/devices/system/cpu/cpu7/cpufreq/scaling_governor

有效的固定频率方法:
怀疑是CPU 高档位有问题, 需要做实验确认.
adb shell "echo 4 4 > /proc/ppm/policy/ut_fix_core_num"
adb shell "echo 0 > /proc/ppm/root_cluster"
adb shell "echo 0 0 > /proc/ppm/policy/ut_fix_freq_idx"

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,012评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,628评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,653评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,485评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,574评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,590评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,596评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,340评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,794评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,102评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,276评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,940评论 5 339
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,583评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,201评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,441评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,173评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,136评论 2 352

推荐阅读更多精彩内容