• Android进行字符串替换


    做项目中经常遇到客户要求ddr,flash,摄像头像素等信息作假,还要求在Antutu,Aida64,CPU-Z,DevCheck等检测app中显示正确,但是我们毕竟能做的有限,所以很多情况下只能通过TextView.java进行字符串替换达到作假的效果,在这里将修改记录一下,以防后面忘记或者丢失,具体修改如下:(提一句:antutu这个app调用的api是append,跟其他检测app不一样)

    1. diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java
    2. old mode 100644
    3. new mode 100755
    4. index 450bb1e77ec8..cbda951841cc
    5. --- a/core/java/android/widget/TextView.java
    6. +++ b/core/java/android/widget/TextView.java
    7. @@ -6114,6 +6114,14 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
    8. ((Editable) mText).append(text, start, end);
    9. + String pkg2 = mContext.getPackageName();
    10. + if(pkg2.equals("com.antutu.ABenchMark")) {
    11. + Log.d("hzw","mText = " + mText.toString());
    12. + if(mText.toString().contains("10.09") || mText.toString().contains("10.08")) {
    13. + mText = ((Editable)mText).replace(0,5,"10.1");
    14. + }
    15. + }
    16. +
    17. if (mAutoLinkMask != 0) {
    18. boolean linksWereAdded = Linkify.addLinks(mSpannable, mAutoLinkMask);
    19. // Do not change the movement method for text that support text selection as it
    20. @@ -6404,6 +6412,44 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
    21. @android.view.RemotableViewMethod
    22. public final void setText(CharSequence text) {
    23. setText(text, mBufferType);
    24. +
    25. + String pkg = mContext.getPackageName();
    26. + String str = String.valueOf(text);
    27. + //Log.d("wzh","str = " + str);
    28. + if(pkg.equals("com.finalwire.aida64") || pkg.equals("com.cpuid.cpu_z") || pkg.equals("mark.fakedevicetest")){
    29. + if(str.contains("4+") || str.contains("10.08") || str.contains("10.09") || str.contains("2924 MB") || str.contains("3 GB")){
    30. + str = str.replace("4+","5.0").replace("10.08","10.1").replace("10.09","10.1").replace("2924 MB","3924 MB").replace("3 GB","4 GB");
    31. + setText(str,mBufferType);
    32. + }else {
    33. + setText(text,mBufferType);
    34. + }
    35. +
    36. + }else if(pkg.equals("com.android.settings")){
    37. + if(str.contains("3.0 GB")) {
    38. + str = str.replace("3.0 GB","4.0 GB");
    39. + setText(str,mBufferType);
    40. + }else{
    41. + setText(text,mBufferType);
    42. + }
    43. + }else if(pkg.equals("flar2.devcheck")) {
    44. + if(str.contains("1.9 MP")) {
    45. + str = str.replace("1.9 MP","5 MP");
    46. + setText(str,mBufferType);
    47. + }else if(str.contains("5 MP")){
    48. + str = str.replace("5 MP","8 MP");
    49. + setText(str,mBufferType);
    50. + }else if(str.contains("10.08")){
    51. + str = str.replace("10.08","10.1");
    52. + setText(str,mBufferType);
    53. + }else if(str.contains("10.09")){
    54. + str = str.replace("10.09","10.1");
    55. + setText(str,mBufferType);
    56. + }else{
    57. + setText(text,mBufferType);
    58. + }
    59. + }else{
    60. + setText(text,mBufferType);
    61. + }
    62. }
    63. /**

  • 相关阅读:
    Selenium获取本地已打开的浏览器页面进行跟踪和自定义日志记录
    【Electron】electron-builder打包失败问题记录
    C++的类型转换
    Python网络编程多线程实现异步服务端
    免杀Veil-evasion
    【 SuperPoint 】图像特征提取上的对比实验
    再谈C语言——理解指针(四)
    [附源码]java毕业设计网上报销管理系统
    网络安全的主要威胁及应对方法
    arthas 线上更新代码不生效的问题Memory compiler error, exception message: Compilation Error
  • 原文地址:https://blog.csdn.net/wzh048503/article/details/134049347