דילוג לתוכן
  • חוקי הפורום
  • פופולרי
  • לא נפתר
  • משתמשים
  • חיפוש גוגל בפורום
  • צור קשר
עיצובים
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • ברירת מחדל (ללא עיצוב (ברירת מחדל))
  • ללא עיצוב (ברירת מחדל)
כיווץ
מתמחים טופ
  1. דף הבית
  2. אנדרואיד - כללי
  3. עזרה הדדית - אנדרואיד
  4. שיתוף | תיקון הבאג של ה-3 אפליקציות ביישומים אחרונים ב-m36

שיתוף | תיקון הבאג של ה-3 אפליקציות ביישומים אחרונים ב-m36

מתוזמן נעוץ נעול הועבר עזרה הדדית - אנדרואיד
20 פוסטים 8 כותבים 314 צפיות 9 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • עדלאידעע עדלאידע

    אז אחרי שעות של זיהוי ותיקון הבעיה,
    מצאתי את הבאג המכוון של היצרן שדאג לנו לשלל באגים במכשיר,
    היצרן שלנו הוסיף בsmali של services.jar פונקציה שדואגת שלא יהיה יותר משלוש אפליקציות ביישומים אחרונים

    עזבו את הרעיון הגרוע כשלעצמו, הוא גם השתמש בפונקציה ישנה של אנדרואיד, שפועלת רק על המשתמש הראשי, כך שאם פותחים משתמש חדש הפונקציה לא פועלת עליו...

    אז ערכתי את הפונקציה הזאת שבכלל לא תתחיל, ויצרתי מודול מאג'יסק שדוחף את ה-services.jar המתוקן לסיסטם,
    פשוט להתקין את המודול ולהפעיל מחדש, כמובן דורש רוט...
    Recent Apps Limit Fix.zip

    ליוצרי הגירסאות, זה הservices.jar המתוקן, לשים ב-/system/framework

    פ מנותק
    פ מנותק
    פיני10
    כתב נערך לאחרונה על ידי
    #2

    @עדלאידע כתב בשיתוף | תיקון הבאג של ה-3 אפליקציות ביישומים אחרונים ב-m36:

    אז אחרי שעות של זיהוי ותיקון הבעיה,
    מצאתי את הבאג המכוון של היצרן שדאג לנו לשלל באגים במכשיר,
    היצרן שלנו הוסיף בsmali של services.jar פונקציה שדואגת שלא יהיה יותר משלוש אפליקציות ביישומים אחרונים

    עזבו את הרעיון הגרוע כשלעצמו, הוא גם השתמש בפונקציה ישנה של אנדרואיד, שפועלת רק על המשתמש הראשי, כך שאם פותחים משתמש חדש הפונקציה לא פועלת עליו...

    אז ערכתי את הפונקציה הזאת שבכלל לא תתחיל, ויצרתי מודול מאג'יסק שדוחף את ה-services.jar המתוקן לסיסטם,
    פשוט להתקין את המודול ולהפעיל מחדש, כמובן דורש רוט...
    Recent Apps Limit Fix.zip

    ליוצרי הגירסאות, זה הservices.jar המתוקן, לשים ב-/system/framework

    ואוו סוף סוף אין עליך (למה התעוררת לכתוב את זה רק עכשיו?)
    מותר לשאול מי כיוון אותך לשם?

    עדלאידעע תגובה 1 תגובה אחרונה
    0
    • עדלאידעע עדלאידע

      אז אחרי שעות של זיהוי ותיקון הבעיה,
      מצאתי את הבאג המכוון של היצרן שדאג לנו לשלל באגים במכשיר,
      היצרן שלנו הוסיף בsmali של services.jar פונקציה שדואגת שלא יהיה יותר משלוש אפליקציות ביישומים אחרונים

      עזבו את הרעיון הגרוע כשלעצמו, הוא גם השתמש בפונקציה ישנה של אנדרואיד, שפועלת רק על המשתמש הראשי, כך שאם פותחים משתמש חדש הפונקציה לא פועלת עליו...

      אז ערכתי את הפונקציה הזאת שבכלל לא תתחיל, ויצרתי מודול מאג'יסק שדוחף את ה-services.jar המתוקן לסיסטם,
      פשוט להתקין את המודול ולהפעיל מחדש, כמובן דורש רוט...
      Recent Apps Limit Fix.zip

      ליוצרי הגירסאות, זה הservices.jar המתוקן, לשים ב-/system/framework

      י מנותק
      י מנותק
      יאיר דניאל
      כתב נערך לאחרונה על ידי
      #3

      @עדלאידע כתב בשיתוף | תיקון הבאג של ה-3 אפליקציות ביישומים אחרונים ב-m36:

      ויצרתי מודול מאג'יסק שדוחף את ה-services.jar המתוקן לסיסטם,
      פשוט להתקין את המודול ולהפעיל מחדש, כמובן דורש רוט...

      אשמח להסבר לבורים וע"ה, כמוני למשל...

      למה באתיל תגובה 1 תגובה אחרונה
      1
      • י יאיר דניאל

        @עדלאידע כתב בשיתוף | תיקון הבאג של ה-3 אפליקציות ביישומים אחרונים ב-m36:

        ויצרתי מודול מאג'יסק שדוחף את ה-services.jar המתוקן לסיסטם,
        פשוט להתקין את המודול ולהפעיל מחדש, כמובן דורש רוט...

        אשמח להסבר לבורים וע"ה, כמוני למשל...

        למה באתיל מנותק
        למה באתיל מנותק
        למה באתי
        מדריכים
        כתב נערך לאחרונה על ידי
        #4

        @יאיר-דניאל כתב בשיתוף | תיקון הבאג של ה-3 אפליקציות ביישומים אחרונים ב-m36:

        @עדלאידע כתב בשיתוף | תיקון הבאג של ה-3 אפליקציות ביישומים אחרונים ב-m36:

        ויצרתי מודול מאג'יסק שדוחף את ה-services.jar המתוקן לסיסטם,
        פשוט להתקין את המודול ולהפעיל מחדש, כמובן דורש רוט...

        אשמח להסבר לבורים וע"ה, כמוני למשל...

        לפתוח מגיסק. לשונית מודלים. לבחור את הזיפ. ואז להפעיל מחדש.

        תגובה 1 תגובה אחרונה
        3
        • פ פיני10

          @עדלאידע כתב בשיתוף | תיקון הבאג של ה-3 אפליקציות ביישומים אחרונים ב-m36:

          אז אחרי שעות של זיהוי ותיקון הבעיה,
          מצאתי את הבאג המכוון של היצרן שדאג לנו לשלל באגים במכשיר,
          היצרן שלנו הוסיף בsmali של services.jar פונקציה שדואגת שלא יהיה יותר משלוש אפליקציות ביישומים אחרונים

          עזבו את הרעיון הגרוע כשלעצמו, הוא גם השתמש בפונקציה ישנה של אנדרואיד, שפועלת רק על המשתמש הראשי, כך שאם פותחים משתמש חדש הפונקציה לא פועלת עליו...

          אז ערכתי את הפונקציה הזאת שבכלל לא תתחיל, ויצרתי מודול מאג'יסק שדוחף את ה-services.jar המתוקן לסיסטם,
          פשוט להתקין את המודול ולהפעיל מחדש, כמובן דורש רוט...
          Recent Apps Limit Fix.zip

          ליוצרי הגירסאות, זה הservices.jar המתוקן, לשים ב-/system/framework

          ואוו סוף סוף אין עליך (למה התעוררת לכתוב את זה רק עכשיו?)
          מותר לשאול מי כיוון אותך לשם?

          עדלאידעע מנותק
          עדלאידעע מנותק
          עדלאידע
          מדריכים
          כתב נערך לאחרונה על ידי עדלאידע
          #5

          @פיני10 כתב בשיתוף | תיקון הבאג של ה-3 אפליקציות ביישומים אחרונים ב-m36:

          (למה התעוררת לכתוב את זה רק עכשיו?)

          כי רק עכשיו היה לי זמן לחקור איפה בדיוק הבעיה...

          מותר לשאול מי כיוון אותך לשם?

          עשיתי Logcat ב-ADB ובדקתי מה קורה כשאני פותח את האפליקציה הרביעית, ראיתי שהוא סוגר את האפליקציה הראשונה בגלל הפונקציה removeTask,
          חיפשתי את הפונקציה הזאת ב-SystemUI ולא מצאתי, חיפשתי ב-framework-res וראיתי את הפונקציה הרגילה של ניהול אפליקציות אבל היה שם משהו מוזר כאילו הוא מחכה לפונקציה שתדרוס אותו,
          אז האזנתי עם Frida לפונקציה removeTask וראיתי שמה שמפעיל אותה זה הפונקציה checkRecentTask בקלאס RecentTasks
          אז בדקתי ב-services.jar וב"ה מצאתי את הפונקציה.

          אם זה מעניין אותך זה הפונקציה:

          .method private checkRecentTask()V
          .registers 10
          code
          Code
          .line 1192
          iget-object v0, p0, Lcom/android/server/wm/RecentTasks;->mService:Lcom/android/server/wm/ActivityTaskManagerService;
          
          iget-object v0, v0, Lcom/android/server/wm/ActivityTaskManagerService;->mContext:Landroid/content/Context;
          
          iget-object v1, p0, Lcom/android/server/wm/RecentTasks;->mService:Lcom/android/server/wm/ActivityTaskManagerService;
          
          iget-object v1, v1, Lcom/android/server/wm/ActivityTaskManagerService;->mContext:Landroid/content/Context;
          
          const-string v1, "activity"
          
          invoke-virtual {v0, v1}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
          
          move-result-object v0
          
          check-cast v0, Landroid/app/ActivityManager;
          
          .line 1194
          .local v0, "mAm":Landroid/app/ActivityManager;
          const/16 v1, 0xa
          
          .line 1195
          .local v1, "minNumTasksToQuery":I
          :try_start_12
          invoke-static {}, Landroid/app/ActivityManager;->getMaxRecentTasksStatic()I
          
          move-result v2
          
          invoke-static {v1, v2}, Ljava/lang/Math;->max(II)I
          
          move-result v2
          
          .line 1196
          .local v2, "numTasksToQuery":I
          const/4 v3, 0x3
          
          .line 1198
          .local v3, "flag":I
          invoke-virtual {v0, v2, v3}, Landroid/app/ActivityManager;->getRecentTasks(II)Ljava/util/List;
          
          move-result-object v4
          
          iput-object v4, p0, Lcom/android/server/wm/RecentTasks;->tasks2:Ljava/util/List;
          
          .line 1199
          invoke-interface {v4}, Ljava/util/List;->size()I
          
          move-result v4
          
          const/4 v5, 0x3
          
          if-le v4, v5, :cond_64
          
          .line 1200
          const/4 v4, 0x3
          
          .local v4, "i":I
          :goto_29
          iget-object v5, p0, Lcom/android/server/wm/RecentTasks;->tasks2:Ljava/util/List;
          
          invoke-interface {v5}, Ljava/util/List;->size()I
          
          move-result v5
          
          if-ge v4, v5, :cond_64
          
          .line 1201
          iget-object v5, p0, Lcom/android/server/wm/RecentTasks;->tasks2:Ljava/util/List;
          
          invoke-interface {v5, v4}, Ljava/util/List;->get(I)Ljava/lang/Object;
          
          move-result-object v5
          
          check-cast v5, Landroid/app/ActivityManager$RecentTaskInfo;
          
          .line 1202
          .local v5, "info":Landroid/app/ActivityManager$RecentTaskInfo;
          if-eqz v5, :cond_61
          
          .line 1203
          const-string v6, "kenTestTag"
          
          new-instance v7, Ljava/lang/StringBuilder;
          
          invoke-direct {v7}, Ljava/lang/StringBuilder;-><init>()V
          
          const-string/jumbo v8, "removeTask....."
          
          invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
          
          move-result-object v7
          
          iget-object v8, v5, Landroid/app/ActivityManager$RecentTaskInfo;->realActivity:Landroid/content/ComponentName;
          
          invoke-virtual {v8}, Landroid/content/ComponentName;->getPackageName()Ljava/lang/String;
          
          move-result-object v8
          
          invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
          
          move-result-object v7
          
          invoke-virtual {v7}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
          
          move-result-object v7
          
          invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
          
          .line 1204
          iget-object v6, p0, Lcom/android/server/wm/RecentTasks;->mService:Lcom/android/server/wm/ActivityTaskManagerService;
          
          iget v7, v5, Landroid/app/ActivityManager$RecentTaskInfo;->persistentId:I
          
          invoke-virtual {v6, v7}, Lcom/android/server/wm/ActivityTaskManagerService;->removeTask(I)Z
          :try_end_61
          .catch Ljava/lang/Exception; {:try_start_12 .. :try_end_61} :catch_65
          
          .line 1200
          .end local v5    # "info":Landroid/app/ActivityManager$RecentTaskInfo;
          :cond_61
          add-int/lit8 v4, v4, 0x1
          
          goto :goto_29
          
          .line 1210
          .end local v1    # "minNumTasksToQuery":I
          .end local v2    # "numTasksToQuery":I
          .end local v3    # "flag":I
          .end local v4    # "i":I
          :cond_64
          goto :goto_6d
          
          .line 1208
          :catch_65
          move-exception v1
          
          .line 1209
          .local v1, "e":Ljava/lang/Exception;
          const-string v2, "ActivityTaskManager"
          
          const-string v3, "Failed to get recent tasks"
          
          invoke-static {v2, v3, v1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
          
          .line 1211
          .end local v1    # "e":Ljava/lang/Exception;
          :goto_6d
          return-void
          .end method
          

          ה מישהו12מ פ 3 תגובות תגובה אחרונה
          8
          • עדלאידעע עדלאידע

            @פיני10 כתב בשיתוף | תיקון הבאג של ה-3 אפליקציות ביישומים אחרונים ב-m36:

            (למה התעוררת לכתוב את זה רק עכשיו?)

            כי רק עכשיו היה לי זמן לחקור איפה בדיוק הבעיה...

            מותר לשאול מי כיוון אותך לשם?

            עשיתי Logcat ב-ADB ובדקתי מה קורה כשאני פותח את האפליקציה הרביעית, ראיתי שהוא סוגר את האפליקציה הראשונה בגלל הפונקציה removeTask,
            חיפשתי את הפונקציה הזאת ב-SystemUI ולא מצאתי, חיפשתי ב-framework-res וראיתי את הפונקציה הרגילה של ניהול אפליקציות אבל היה שם משהו מוזר כאילו הוא מחכה לפונקציה שתדרוס אותו,
            אז האזנתי עם Frida לפונקציה removeTask וראיתי שמה שמפעיל אותה זה הפונקציה checkRecentTask בקלאס RecentTasks
            אז בדקתי ב-services.jar וב"ה מצאתי את הפונקציה.

            אם זה מעניין אותך זה הפונקציה:

            .method private checkRecentTask()V
            .registers 10
            code
            Code
            .line 1192
            iget-object v0, p0, Lcom/android/server/wm/RecentTasks;->mService:Lcom/android/server/wm/ActivityTaskManagerService;
            
            iget-object v0, v0, Lcom/android/server/wm/ActivityTaskManagerService;->mContext:Landroid/content/Context;
            
            iget-object v1, p0, Lcom/android/server/wm/RecentTasks;->mService:Lcom/android/server/wm/ActivityTaskManagerService;
            
            iget-object v1, v1, Lcom/android/server/wm/ActivityTaskManagerService;->mContext:Landroid/content/Context;
            
            const-string v1, "activity"
            
            invoke-virtual {v0, v1}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
            
            move-result-object v0
            
            check-cast v0, Landroid/app/ActivityManager;
            
            .line 1194
            .local v0, "mAm":Landroid/app/ActivityManager;
            const/16 v1, 0xa
            
            .line 1195
            .local v1, "minNumTasksToQuery":I
            :try_start_12
            invoke-static {}, Landroid/app/ActivityManager;->getMaxRecentTasksStatic()I
            
            move-result v2
            
            invoke-static {v1, v2}, Ljava/lang/Math;->max(II)I
            
            move-result v2
            
            .line 1196
            .local v2, "numTasksToQuery":I
            const/4 v3, 0x3
            
            .line 1198
            .local v3, "flag":I
            invoke-virtual {v0, v2, v3}, Landroid/app/ActivityManager;->getRecentTasks(II)Ljava/util/List;
            
            move-result-object v4
            
            iput-object v4, p0, Lcom/android/server/wm/RecentTasks;->tasks2:Ljava/util/List;
            
            .line 1199
            invoke-interface {v4}, Ljava/util/List;->size()I
            
            move-result v4
            
            const/4 v5, 0x3
            
            if-le v4, v5, :cond_64
            
            .line 1200
            const/4 v4, 0x3
            
            .local v4, "i":I
            :goto_29
            iget-object v5, p0, Lcom/android/server/wm/RecentTasks;->tasks2:Ljava/util/List;
            
            invoke-interface {v5}, Ljava/util/List;->size()I
            
            move-result v5
            
            if-ge v4, v5, :cond_64
            
            .line 1201
            iget-object v5, p0, Lcom/android/server/wm/RecentTasks;->tasks2:Ljava/util/List;
            
            invoke-interface {v5, v4}, Ljava/util/List;->get(I)Ljava/lang/Object;
            
            move-result-object v5
            
            check-cast v5, Landroid/app/ActivityManager$RecentTaskInfo;
            
            .line 1202
            .local v5, "info":Landroid/app/ActivityManager$RecentTaskInfo;
            if-eqz v5, :cond_61
            
            .line 1203
            const-string v6, "kenTestTag"
            
            new-instance v7, Ljava/lang/StringBuilder;
            
            invoke-direct {v7}, Ljava/lang/StringBuilder;-><init>()V
            
            const-string/jumbo v8, "removeTask....."
            
            invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
            
            move-result-object v7
            
            iget-object v8, v5, Landroid/app/ActivityManager$RecentTaskInfo;->realActivity:Landroid/content/ComponentName;
            
            invoke-virtual {v8}, Landroid/content/ComponentName;->getPackageName()Ljava/lang/String;
            
            move-result-object v8
            
            invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
            
            move-result-object v7
            
            invoke-virtual {v7}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
            
            move-result-object v7
            
            invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
            
            .line 1204
            iget-object v6, p0, Lcom/android/server/wm/RecentTasks;->mService:Lcom/android/server/wm/ActivityTaskManagerService;
            
            iget v7, v5, Landroid/app/ActivityManager$RecentTaskInfo;->persistentId:I
            
            invoke-virtual {v6, v7}, Lcom/android/server/wm/ActivityTaskManagerService;->removeTask(I)Z
            :try_end_61
            .catch Ljava/lang/Exception; {:try_start_12 .. :try_end_61} :catch_65
            
            .line 1200
            .end local v5    # "info":Landroid/app/ActivityManager$RecentTaskInfo;
            :cond_61
            add-int/lit8 v4, v4, 0x1
            
            goto :goto_29
            
            .line 1210
            .end local v1    # "minNumTasksToQuery":I
            .end local v2    # "numTasksToQuery":I
            .end local v3    # "flag":I
            .end local v4    # "i":I
            :cond_64
            goto :goto_6d
            
            .line 1208
            :catch_65
            move-exception v1
            
            .line 1209
            .local v1, "e":Ljava/lang/Exception;
            const-string v2, "ActivityTaskManager"
            
            const-string v3, "Failed to get recent tasks"
            
            invoke-static {v2, v3, v1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            
            .line 1211
            .end local v1    # "e":Ljava/lang/Exception;
            :goto_6d
            return-void
            .end method
            

            ה מנותק
            ה מנותק
            הרב של השכונה
            כתב נערך לאחרונה על ידי הרב של השכונה
            #6

            @עדלאידע איזה ראש הלוואי עלי...
            כל הכבוד עבודה יפה תודה רבה עוזר הרבה לאלו שיש להם את הm36

            למה באתיל תגובה 1 תגובה אחרונה
            0
            • ה הרב של השכונה

              @עדלאידע איזה ראש הלוואי עלי...
              כל הכבוד עבודה יפה תודה רבה עוזר הרבה לאלו שיש להם את הm36

              למה באתיל מנותק
              למה באתיל מנותק
              למה באתי
              מדריכים
              כתב נערך לאחרונה על ידי
              #7

              @הרב-של-השכונה כתב בשיתוף | תיקון הבאג של ה-3 אפליקציות ביישומים אחרונים ב-m36:

              @עדלאידע איזה ראש הלוואי עלי...

              @הרב-של-השכונה כתב בשיתוף | תיקון הבאג של ה-3 אפליקציות ביישומים אחרונים ב-m36:

              @עדלאידע איזה ראש הלוואי עלי...

              לא ראש. ידע

              ה תגובה 1 תגובה אחרונה
              0
              • למה באתיל למה באתי

                @הרב-של-השכונה כתב בשיתוף | תיקון הבאג של ה-3 אפליקציות ביישומים אחרונים ב-m36:

                @עדלאידע איזה ראש הלוואי עלי...

                @הרב-של-השכונה כתב בשיתוף | תיקון הבאג של ה-3 אפליקציות ביישומים אחרונים ב-m36:

                @עדלאידע איזה ראש הלוואי עלי...

                לא ראש. ידע

                ה מנותק
                ה מנותק
                הרב של השכונה
                כתב נערך לאחרונה על ידי הרב של השכונה
                #8

                @למה-באתי נו בשביל הידע צריך גם ראש לא אלו חלק מהדרישות?
                ||סטינו מהנושא...||

                תגובה 1 תגובה אחרונה
                1
                • עדלאידעע עדלאידע

                  אז אחרי שעות של זיהוי ותיקון הבעיה,
                  מצאתי את הבאג המכוון של היצרן שדאג לנו לשלל באגים במכשיר,
                  היצרן שלנו הוסיף בsmali של services.jar פונקציה שדואגת שלא יהיה יותר משלוש אפליקציות ביישומים אחרונים

                  עזבו את הרעיון הגרוע כשלעצמו, הוא גם השתמש בפונקציה ישנה של אנדרואיד, שפועלת רק על המשתמש הראשי, כך שאם פותחים משתמש חדש הפונקציה לא פועלת עליו...

                  אז ערכתי את הפונקציה הזאת שבכלל לא תתחיל, ויצרתי מודול מאג'יסק שדוחף את ה-services.jar המתוקן לסיסטם,
                  פשוט להתקין את המודול ולהפעיל מחדש, כמובן דורש רוט...
                  Recent Apps Limit Fix.zip

                  ליוצרי הגירסאות, זה הservices.jar המתוקן, לשים ב-/system/framework

                  E מנותק
                  E מנותק
                  ezerphone
                  כתב נערך לאחרונה על ידי
                  #9

                  @עדלאידע דבר ראשון תודה!!!!
                  דבר שני כרגע אין לי את הנגן ככה שאני לא יכול לערוך את הגירסה בהמשך אי"ה אני אעדכן

                  תגובה 1 תגובה אחרונה
                  0
                  • עדלאידעע עדלאידע

                    אז אחרי שעות של זיהוי ותיקון הבעיה,
                    מצאתי את הבאג המכוון של היצרן שדאג לנו לשלל באגים במכשיר,
                    היצרן שלנו הוסיף בsmali של services.jar פונקציה שדואגת שלא יהיה יותר משלוש אפליקציות ביישומים אחרונים

                    עזבו את הרעיון הגרוע כשלעצמו, הוא גם השתמש בפונקציה ישנה של אנדרואיד, שפועלת רק על המשתמש הראשי, כך שאם פותחים משתמש חדש הפונקציה לא פועלת עליו...

                    אז ערכתי את הפונקציה הזאת שבכלל לא תתחיל, ויצרתי מודול מאג'יסק שדוחף את ה-services.jar המתוקן לסיסטם,
                    פשוט להתקין את המודול ולהפעיל מחדש, כמובן דורש רוט...
                    Recent Apps Limit Fix.zip

                    ליוצרי הגירסאות, זה הservices.jar המתוקן, לשים ב-/system/framework

                    E מנותק
                    E מנותק
                    ezerphone
                    כתב נערך לאחרונה על ידי
                    #10

                    @עדלאידע כתב בשיתוף | תיקון הבאג של ה-3 אפליקציות ביישומים אחרונים ב-m36:

                    לשלל באגים במכשיר

                    ואיזה עוד?

                    תגובה 1 תגובה אחרונה
                    0
                    • עדלאידעע עדלאידע

                      @פיני10 כתב בשיתוף | תיקון הבאג של ה-3 אפליקציות ביישומים אחרונים ב-m36:

                      (למה התעוררת לכתוב את זה רק עכשיו?)

                      כי רק עכשיו היה לי זמן לחקור איפה בדיוק הבעיה...

                      מותר לשאול מי כיוון אותך לשם?

                      עשיתי Logcat ב-ADB ובדקתי מה קורה כשאני פותח את האפליקציה הרביעית, ראיתי שהוא סוגר את האפליקציה הראשונה בגלל הפונקציה removeTask,
                      חיפשתי את הפונקציה הזאת ב-SystemUI ולא מצאתי, חיפשתי ב-framework-res וראיתי את הפונקציה הרגילה של ניהול אפליקציות אבל היה שם משהו מוזר כאילו הוא מחכה לפונקציה שתדרוס אותו,
                      אז האזנתי עם Frida לפונקציה removeTask וראיתי שמה שמפעיל אותה זה הפונקציה checkRecentTask בקלאס RecentTasks
                      אז בדקתי ב-services.jar וב"ה מצאתי את הפונקציה.

                      אם זה מעניין אותך זה הפונקציה:

                      .method private checkRecentTask()V
                      .registers 10
                      code
                      Code
                      .line 1192
                      iget-object v0, p0, Lcom/android/server/wm/RecentTasks;->mService:Lcom/android/server/wm/ActivityTaskManagerService;
                      
                      iget-object v0, v0, Lcom/android/server/wm/ActivityTaskManagerService;->mContext:Landroid/content/Context;
                      
                      iget-object v1, p0, Lcom/android/server/wm/RecentTasks;->mService:Lcom/android/server/wm/ActivityTaskManagerService;
                      
                      iget-object v1, v1, Lcom/android/server/wm/ActivityTaskManagerService;->mContext:Landroid/content/Context;
                      
                      const-string v1, "activity"
                      
                      invoke-virtual {v0, v1}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
                      
                      move-result-object v0
                      
                      check-cast v0, Landroid/app/ActivityManager;
                      
                      .line 1194
                      .local v0, "mAm":Landroid/app/ActivityManager;
                      const/16 v1, 0xa
                      
                      .line 1195
                      .local v1, "minNumTasksToQuery":I
                      :try_start_12
                      invoke-static {}, Landroid/app/ActivityManager;->getMaxRecentTasksStatic()I
                      
                      move-result v2
                      
                      invoke-static {v1, v2}, Ljava/lang/Math;->max(II)I
                      
                      move-result v2
                      
                      .line 1196
                      .local v2, "numTasksToQuery":I
                      const/4 v3, 0x3
                      
                      .line 1198
                      .local v3, "flag":I
                      invoke-virtual {v0, v2, v3}, Landroid/app/ActivityManager;->getRecentTasks(II)Ljava/util/List;
                      
                      move-result-object v4
                      
                      iput-object v4, p0, Lcom/android/server/wm/RecentTasks;->tasks2:Ljava/util/List;
                      
                      .line 1199
                      invoke-interface {v4}, Ljava/util/List;->size()I
                      
                      move-result v4
                      
                      const/4 v5, 0x3
                      
                      if-le v4, v5, :cond_64
                      
                      .line 1200
                      const/4 v4, 0x3
                      
                      .local v4, "i":I
                      :goto_29
                      iget-object v5, p0, Lcom/android/server/wm/RecentTasks;->tasks2:Ljava/util/List;
                      
                      invoke-interface {v5}, Ljava/util/List;->size()I
                      
                      move-result v5
                      
                      if-ge v4, v5, :cond_64
                      
                      .line 1201
                      iget-object v5, p0, Lcom/android/server/wm/RecentTasks;->tasks2:Ljava/util/List;
                      
                      invoke-interface {v5, v4}, Ljava/util/List;->get(I)Ljava/lang/Object;
                      
                      move-result-object v5
                      
                      check-cast v5, Landroid/app/ActivityManager$RecentTaskInfo;
                      
                      .line 1202
                      .local v5, "info":Landroid/app/ActivityManager$RecentTaskInfo;
                      if-eqz v5, :cond_61
                      
                      .line 1203
                      const-string v6, "kenTestTag"
                      
                      new-instance v7, Ljava/lang/StringBuilder;
                      
                      invoke-direct {v7}, Ljava/lang/StringBuilder;-><init>()V
                      
                      const-string/jumbo v8, "removeTask....."
                      
                      invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
                      
                      move-result-object v7
                      
                      iget-object v8, v5, Landroid/app/ActivityManager$RecentTaskInfo;->realActivity:Landroid/content/ComponentName;
                      
                      invoke-virtual {v8}, Landroid/content/ComponentName;->getPackageName()Ljava/lang/String;
                      
                      move-result-object v8
                      
                      invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
                      
                      move-result-object v7
                      
                      invoke-virtual {v7}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
                      
                      move-result-object v7
                      
                      invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
                      
                      .line 1204
                      iget-object v6, p0, Lcom/android/server/wm/RecentTasks;->mService:Lcom/android/server/wm/ActivityTaskManagerService;
                      
                      iget v7, v5, Landroid/app/ActivityManager$RecentTaskInfo;->persistentId:I
                      
                      invoke-virtual {v6, v7}, Lcom/android/server/wm/ActivityTaskManagerService;->removeTask(I)Z
                      :try_end_61
                      .catch Ljava/lang/Exception; {:try_start_12 .. :try_end_61} :catch_65
                      
                      .line 1200
                      .end local v5    # "info":Landroid/app/ActivityManager$RecentTaskInfo;
                      :cond_61
                      add-int/lit8 v4, v4, 0x1
                      
                      goto :goto_29
                      
                      .line 1210
                      .end local v1    # "minNumTasksToQuery":I
                      .end local v2    # "numTasksToQuery":I
                      .end local v3    # "flag":I
                      .end local v4    # "i":I
                      :cond_64
                      goto :goto_6d
                      
                      .line 1208
                      :catch_65
                      move-exception v1
                      
                      .line 1209
                      .local v1, "e":Ljava/lang/Exception;
                      const-string v2, "ActivityTaskManager"
                      
                      const-string v3, "Failed to get recent tasks"
                      
                      invoke-static {v2, v3, v1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
                      
                      .line 1211
                      .end local v1    # "e":Ljava/lang/Exception;
                      :goto_6d
                      return-void
                      .end method
                      

                      מישהו12מ מנותק
                      מישהו12מ מנותק
                      מישהו12
                      מדריכים
                      כתב נערך לאחרונה על ידי
                      #11

                      @עדלאידע כתב בשיתוף | תיקון הבאג של ה-3 אפליקציות ביישומים אחרונים ב-m36:

                      אבל היה שם משהו מוזר כאילו הוא מחכה לפונקציה שתדרוס אותו,

                      אפשר הסבר מה הכוונה? מה היה מוזר?

                      הבלוג שלי
                      https://aiv-dev.com/he-IL/

                      עדלאידעע תגובה 1 תגובה אחרונה
                      0
                      • עדלאידעע עדלאידע

                        @פיני10 כתב בשיתוף | תיקון הבאג של ה-3 אפליקציות ביישומים אחרונים ב-m36:

                        (למה התעוררת לכתוב את זה רק עכשיו?)

                        כי רק עכשיו היה לי זמן לחקור איפה בדיוק הבעיה...

                        מותר לשאול מי כיוון אותך לשם?

                        עשיתי Logcat ב-ADB ובדקתי מה קורה כשאני פותח את האפליקציה הרביעית, ראיתי שהוא סוגר את האפליקציה הראשונה בגלל הפונקציה removeTask,
                        חיפשתי את הפונקציה הזאת ב-SystemUI ולא מצאתי, חיפשתי ב-framework-res וראיתי את הפונקציה הרגילה של ניהול אפליקציות אבל היה שם משהו מוזר כאילו הוא מחכה לפונקציה שתדרוס אותו,
                        אז האזנתי עם Frida לפונקציה removeTask וראיתי שמה שמפעיל אותה זה הפונקציה checkRecentTask בקלאס RecentTasks
                        אז בדקתי ב-services.jar וב"ה מצאתי את הפונקציה.

                        אם זה מעניין אותך זה הפונקציה:

                        .method private checkRecentTask()V
                        .registers 10
                        code
                        Code
                        .line 1192
                        iget-object v0, p0, Lcom/android/server/wm/RecentTasks;->mService:Lcom/android/server/wm/ActivityTaskManagerService;
                        
                        iget-object v0, v0, Lcom/android/server/wm/ActivityTaskManagerService;->mContext:Landroid/content/Context;
                        
                        iget-object v1, p0, Lcom/android/server/wm/RecentTasks;->mService:Lcom/android/server/wm/ActivityTaskManagerService;
                        
                        iget-object v1, v1, Lcom/android/server/wm/ActivityTaskManagerService;->mContext:Landroid/content/Context;
                        
                        const-string v1, "activity"
                        
                        invoke-virtual {v0, v1}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
                        
                        move-result-object v0
                        
                        check-cast v0, Landroid/app/ActivityManager;
                        
                        .line 1194
                        .local v0, "mAm":Landroid/app/ActivityManager;
                        const/16 v1, 0xa
                        
                        .line 1195
                        .local v1, "minNumTasksToQuery":I
                        :try_start_12
                        invoke-static {}, Landroid/app/ActivityManager;->getMaxRecentTasksStatic()I
                        
                        move-result v2
                        
                        invoke-static {v1, v2}, Ljava/lang/Math;->max(II)I
                        
                        move-result v2
                        
                        .line 1196
                        .local v2, "numTasksToQuery":I
                        const/4 v3, 0x3
                        
                        .line 1198
                        .local v3, "flag":I
                        invoke-virtual {v0, v2, v3}, Landroid/app/ActivityManager;->getRecentTasks(II)Ljava/util/List;
                        
                        move-result-object v4
                        
                        iput-object v4, p0, Lcom/android/server/wm/RecentTasks;->tasks2:Ljava/util/List;
                        
                        .line 1199
                        invoke-interface {v4}, Ljava/util/List;->size()I
                        
                        move-result v4
                        
                        const/4 v5, 0x3
                        
                        if-le v4, v5, :cond_64
                        
                        .line 1200
                        const/4 v4, 0x3
                        
                        .local v4, "i":I
                        :goto_29
                        iget-object v5, p0, Lcom/android/server/wm/RecentTasks;->tasks2:Ljava/util/List;
                        
                        invoke-interface {v5}, Ljava/util/List;->size()I
                        
                        move-result v5
                        
                        if-ge v4, v5, :cond_64
                        
                        .line 1201
                        iget-object v5, p0, Lcom/android/server/wm/RecentTasks;->tasks2:Ljava/util/List;
                        
                        invoke-interface {v5, v4}, Ljava/util/List;->get(I)Ljava/lang/Object;
                        
                        move-result-object v5
                        
                        check-cast v5, Landroid/app/ActivityManager$RecentTaskInfo;
                        
                        .line 1202
                        .local v5, "info":Landroid/app/ActivityManager$RecentTaskInfo;
                        if-eqz v5, :cond_61
                        
                        .line 1203
                        const-string v6, "kenTestTag"
                        
                        new-instance v7, Ljava/lang/StringBuilder;
                        
                        invoke-direct {v7}, Ljava/lang/StringBuilder;-><init>()V
                        
                        const-string/jumbo v8, "removeTask....."
                        
                        invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
                        
                        move-result-object v7
                        
                        iget-object v8, v5, Landroid/app/ActivityManager$RecentTaskInfo;->realActivity:Landroid/content/ComponentName;
                        
                        invoke-virtual {v8}, Landroid/content/ComponentName;->getPackageName()Ljava/lang/String;
                        
                        move-result-object v8
                        
                        invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
                        
                        move-result-object v7
                        
                        invoke-virtual {v7}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
                        
                        move-result-object v7
                        
                        invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
                        
                        .line 1204
                        iget-object v6, p0, Lcom/android/server/wm/RecentTasks;->mService:Lcom/android/server/wm/ActivityTaskManagerService;
                        
                        iget v7, v5, Landroid/app/ActivityManager$RecentTaskInfo;->persistentId:I
                        
                        invoke-virtual {v6, v7}, Lcom/android/server/wm/ActivityTaskManagerService;->removeTask(I)Z
                        :try_end_61
                        .catch Ljava/lang/Exception; {:try_start_12 .. :try_end_61} :catch_65
                        
                        .line 1200
                        .end local v5    # "info":Landroid/app/ActivityManager$RecentTaskInfo;
                        :cond_61
                        add-int/lit8 v4, v4, 0x1
                        
                        goto :goto_29
                        
                        .line 1210
                        .end local v1    # "minNumTasksToQuery":I
                        .end local v2    # "numTasksToQuery":I
                        .end local v3    # "flag":I
                        .end local v4    # "i":I
                        :cond_64
                        goto :goto_6d
                        
                        .line 1208
                        :catch_65
                        move-exception v1
                        
                        .line 1209
                        .local v1, "e":Ljava/lang/Exception;
                        const-string v2, "ActivityTaskManager"
                        
                        const-string v3, "Failed to get recent tasks"
                        
                        invoke-static {v2, v3, v1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
                        
                        .line 1211
                        .end local v1    # "e":Ljava/lang/Exception;
                        :goto_6d
                        return-void
                        .end method
                        

                        פ מנותק
                        פ מנותק
                        פיני10
                        כתב נערך לאחרונה על ידי פיני10
                        #12

                        @עדלאידע מי קורא לפונקציה system ui או blueshark?
                        (אגב זה רק מחזק את ההשערה שלי שהרום שמגיע עם המכשיר זה בעצם gsi שהלבישו עליו...)

                        למה באתיל תגובה 1 תגובה אחרונה
                        0
                        • פ פיני10

                          @עדלאידע מי קורא לפונקציה system ui או blueshark?
                          (אגב זה רק מחזק את ההשערה שלי שהרום שמגיע עם המכשיר זה בעצם gsi שהלבישו עליו...)

                          למה באתיל מנותק
                          למה באתיל מנותק
                          למה באתי
                          מדריכים
                          כתב נערך לאחרונה על ידי
                          #13

                          @פיני10 כתב בשיתוף | תיקון הבאג של ה-3 אפליקציות ביישומים אחרונים ב-m36:

                          (אגב זה רק מחזק את ההשערה שלי שהרום שמגיע עם המכשיר זה בעצם gsi שהלבישו עליו...)

                          מה ההו"א?

                          פ תגובה 1 תגובה אחרונה
                          0
                          • למה באתיל למה באתי

                            @פיני10 כתב בשיתוף | תיקון הבאג של ה-3 אפליקציות ביישומים אחרונים ב-m36:

                            (אגב זה רק מחזק את ההשערה שלי שהרום שמגיע עם המכשיר זה בעצם gsi שהלבישו עליו...)

                            מה ההו"א?

                            פ מנותק
                            פ מנותק
                            פיני10
                            כתב נערך לאחרונה על ידי
                            #14

                            @למה-באתי שהרום המקורי של המכשיר הוא באמת אנדרואיד 13 ולא משהו יותר נמוך...

                            למה באתיל תגובה 1 תגובה אחרונה
                            0
                            • פ פיני10

                              @למה-באתי שהרום המקורי של המכשיר הוא באמת אנדרואיד 13 ולא משהו יותר נמוך...

                              למה באתיל מנותק
                              למה באתיל מנותק
                              למה באתי
                              מדריכים
                              כתב נערך לאחרונה על ידי
                              #15

                              @פיני10 כתב בשיתוף | תיקון הבאג של ה-3 אפליקציות ביישומים אחרונים ב-m36:

                              @למה-באתי שהרום המקורי של המכשיר הוא באמת אנדרואיד 13 ולא משהו יותר נמוך...

                              מה מביא אותך להסכמה שזה GSI?

                              פ תגובה 1 תגובה אחרונה
                              0
                              • למה באתיל למה באתי

                                @פיני10 כתב בשיתוף | תיקון הבאג של ה-3 אפליקציות ביישומים אחרונים ב-m36:

                                @למה-באתי שהרום המקורי של המכשיר הוא באמת אנדרואיד 13 ולא משהו יותר נמוך...

                                מה מביא אותך להסכמה שזה GSI?

                                פ מנותק
                                פ מנותק
                                פיני10
                                כתב נערך לאחרונה על ידי
                                #16

                                @למה-באתי אין לי הסכמה שזה gsi אלא הנחה כזאת שאני לא בטוח שהיא נכונה

                                תגובה 1 תגובה אחרונה
                                0
                                • מישהו12מ מישהו12

                                  @עדלאידע כתב בשיתוף | תיקון הבאג של ה-3 אפליקציות ביישומים אחרונים ב-m36:

                                  אבל היה שם משהו מוזר כאילו הוא מחכה לפונקציה שתדרוס אותו,

                                  אפשר הסבר מה הכוונה? מה היה מוזר?

                                  עדלאידעע מנותק
                                  עדלאידעע מנותק
                                  עדלאידע
                                  מדריכים
                                  כתב נערך לאחרונה על ידי
                                  #17

                                  @מישהו12 כתב בשיתוף | תיקון הבאג של ה-3 אפליקציות ביישומים אחרונים ב-m36:

                                  @עדלאידע כתב בשיתוף | תיקון הבאג של ה-3 אפליקציות ביישומים אחרונים ב-m36:

                                  אבל היה שם משהו מוזר כאילו הוא מחכה לפונקציה שתדרוס אותו,

                                  אפשר הסבר מה הכוונה? מה היה מוזר?

                                  היה שם בקובץ integers.xml את הערך הבא:

                                  config_maxNumVisibleRecentTasks = "-1"
                                  

                                  מה שבפועל לא נכון כי תכלס' ההגבלה היא 3...
                                  ובמקום פשוט לכתוב שם את הערך 3 היצרן בחר לקבוע את ההגבלה בקומבינה מטופשת ישירות ב-services.jar...

                                  תגובה 1 תגובה אחרונה
                                  1
                                  • עדלאידעע עדלאידע

                                    אז אחרי שעות של זיהוי ותיקון הבעיה,
                                    מצאתי את הבאג המכוון של היצרן שדאג לנו לשלל באגים במכשיר,
                                    היצרן שלנו הוסיף בsmali של services.jar פונקציה שדואגת שלא יהיה יותר משלוש אפליקציות ביישומים אחרונים

                                    עזבו את הרעיון הגרוע כשלעצמו, הוא גם השתמש בפונקציה ישנה של אנדרואיד, שפועלת רק על המשתמש הראשי, כך שאם פותחים משתמש חדש הפונקציה לא פועלת עליו...

                                    אז ערכתי את הפונקציה הזאת שבכלל לא תתחיל, ויצרתי מודול מאג'יסק שדוחף את ה-services.jar המתוקן לסיסטם,
                                    פשוט להתקין את המודול ולהפעיל מחדש, כמובן דורש רוט...
                                    Recent Apps Limit Fix.zip

                                    ליוצרי הגירסאות, זה הservices.jar המתוקן, לשים ב-/system/framework

                                    פ מנותק
                                    פ מנותק
                                    פיני10
                                    כתב נערך לאחרונה על ידי
                                    #18

                                    @עדלאידע המודל לא עובד לי בהתקנה אני מקבל שגיאה שהפתיחה של הזיפ נכשלה

                                    E שניאור שמחש 2 תגובות תגובה אחרונה
                                    0
                                    • פ פיני10

                                      @עדלאידע המודל לא עובד לי בהתקנה אני מקבל שגיאה שהפתיחה של הזיפ נכשלה

                                      E מנותק
                                      E מנותק
                                      ezerphone
                                      כתב נערך לאחרונה על ידי
                                      #19

                                      @פיני10 אם אתה רוצה עשיתי גרסה מסודרת

                                      תגובה 1 תגובה אחרונה
                                      0
                                      • פ פיני10

                                        @עדלאידע המודל לא עובד לי בהתקנה אני מקבל שגיאה שהפתיחה של הזיפ נכשלה

                                        שניאור שמחש מנותק
                                        שניאור שמחש מנותק
                                        שניאור שמח
                                        מדריכים עימוד
                                        כתב נערך לאחרונה על ידי
                                        #20

                                        @פיני10 כתב בשיתוף | תיקון הבאג של ה-3 אפליקציות ביישומים אחרונים ב-m36:

                                        @עדלאידע המודל לא עובד לי בהתקנה אני מקבל שגיאה שהפתיחה של הזיפ נכשלה

                                        איזה גרסת מגיסק יש לך?

                                        "אם לא תנסה, איך תדע?"

                                        תגובה 1 תגובה אחרונה
                                        0

                                        • התחברות

                                        • אין לך חשבון עדיין? הרשמה

                                        • התחברו או הירשמו כדי לחפש.
                                        • פוסט ראשון
                                          פוסט אחרון
                                        0
                                        • חוקי הפורום
                                        • פופולרי
                                        • לא נפתר
                                        • משתמשים
                                        • חיפוש גוגל בפורום
                                        • צור קשר