דילוג לתוכן

מדריכים

4 נושאים 4 פוסטים

ניתן לעקוב אחר קטגוריה זו מהאינטרנט החברתי הפתוח באמצעות הידית מדריכים@21f4c8pf.uks1.devtunnels.ms:7777

  • מדריך | תעודת אבטחה לאנדרואיד בלי רוט

    1
    1 הצבעות
    1 פוסטים
    62 צפיות
    מטען ניידמ
    לאחרונה שמתי לב שזה מסובך להתקין תעודת אבטחה לאנדרואיד (13) באתרוג. אז הנה מדריך קצר ופשוט. שלב ראשון: מורידים את התעודה הפשוטה הזאתי myca.crt שלב שני: נכנסים להגדרות ומחפשים את המילה ca ואז יש קטגוריה אישור ca תכנסו. ושמה יש התקנת ca תתקינו את התעודה וסיימתם. בהצלחה!
  • 0 הצבעות
    1 פוסטים
    15 צפיות
    מחנה ידידיםמ
    אחרי הרבה עבודה... המדריך באדיבות קלוד סונט 5 צילומי מסך: [image: 3385ecd8-6500-4267-b4f1-3d00e4a00ab9-image.jpeg] מדריך: הוספת מחווה לפתיחת מגירת האפליקציות ב-Launcher3QuickStep מדריך זה מתעד את השלבים המדויקים שביצעתי כדי לפתור בעיה נפוצה בבניות מבוססות Launcher3QuickStep (AOSP) על מכשירים עם מסך ביחס ממדים חריג (כמו Qin F21 Pro) כאשר החלקה למעלה במסך הבית לא פותחת את מגירת האפליקציות. שורש הבעיה ב-Launcher3QuickStep הסטנדרטי, המחווה של החלקה למעלה כדי לפתוח את המגירה מיושמת דרך מחלקה בשם PortraitStatesTouchController, שנרשמת בתוך QuickstepLauncher.createTouchControllers(). הבעיה: הרישום הזה מותנה בבדיקה DeviceProfile.isVerticalBarLayout(). במכשירים עם יחס ממדים חריג (מסכים קטנים/כמעט-מרובעים), הפונקציה הזו מחזירה true בטעות — מה שגורם לקוד לעבור לענף אחר (המיועד למכשירים עם hotseat אנכי, כמו טאבלטים/מכשירים מתקפלים), שבו PortraitStatesTouchController לא נרשם בכלל. התוצאה: אין שום דרך במגע לפתוח את המגירה. איך לזהות את זה בעצמכם ב-APK אחר # אחרי פירוק עם apktool: grep -n "createTouchControllers" smali_classes2/com/android/launcher3/uioverrides/QuickstepLauncher.smali חפשו בגוף המתודה הזו קריאה ל-DeviceProfile;->isVerticalBarLayout()Z — אם הענף שמוסיף PortraitStatesTouchController תלוי בבדיקה הזו, זו אותה בעיה. הפתרון שבחרתי במקום "לתקן" את isVerticalBarLayout() (מסוכן — הוא משפיע על עוד המון לוגיקת מסך), יצרתי controller עצמאי חדש שמזהה בעצמו החלקה למעלה על מסך הבית ופותח את המגירה — בלי שום תלות בענף השבור. הוא נרשם תמיד, בלי תנאי, כך שהוא עובד גם אם isVerticalBarLayout() ממשיך "לטעות". כלים נדרשים MT Manager מידע חשוב: המדריך דורש רוט עם הרשאות כתיבה שלב 1 — פתיחת ה-APK לעריכה במסך הקבצים של MT Manager, אתרו את ה-APK ולחצו עליו (לא לחיצה ארוכה) — ייפתח תפריט "פתח באמצעות". בחרו הצג. תיפתח תצוגת עץ שמראה את מבנה ה-APK כולל classes.dex, classes2.dex וכו', כל אחד ניתן לניווט עד רמת חבילות ה-Smali. נווטו לתוך classes2.dex (שם נמצא כל קוד ה-launcher עצמו ברוב הבניות) → com/android/launcher3/uioverrides/touchcontrollers/. שלב 2 — יצירת המחלקה החדשה בתוך התיקייה touchcontrollers/ שמצאתם, צרו קובץ Smali חדש (לחצו על הקובץ הראשון לחיצה ארוכה ובחרו "הוסף") בשם בדיוק: SimpleAppDrawerSwipeController.smali .class public Lcom/android/launcher3/uioverrides/touchcontrollers/SimpleAppDrawerSwipeController; .super Ljava/lang/Object; .source "SimpleAppDrawerSwipeController.java" # interfaces .implements Lcom/android/launcher3/util/TouchController; # instance fields .field private mCanIntercept:Z .field private mDownX:F .field private mDownY:F .field private final mLauncher:Lcom/android/launcher3/Launcher; .field private final mSwipeSlop:F # direct methods .method public constructor <init>(Lcom/android/launcher3/Launcher;)V .locals 2 .param p1, "launcher" # Lcom/android/launcher3/Launcher; invoke-direct {p0}, Ljava/lang/Object;-><init>()V iput-object p1, p0, Lcom/android/launcher3/uioverrides/touchcontrollers/SimpleAppDrawerSwipeController;->mLauncher:Lcom/android/launcher3/Launcher; invoke-static {p1}, Landroid/view/ViewConfiguration;->get(Landroid/content/Context;)Landroid/view/ViewConfiguration; move-result-object v0 invoke-virtual {v0}, Landroid/view/ViewConfiguration;->getScaledTouchSlop()I move-result v0 mul-int/lit8 v0, v0, 0x4 int-to-float v0, v0 iput v0, p0, Lcom/android/launcher3/uioverrides/touchcontrollers/SimpleAppDrawerSwipeController;->mSwipeSlop:F return-void .end method # virtual methods .method public onControllerInterceptTouchEvent(Landroid/view/MotionEvent;)Z .locals 6 .param p1, "ev" # Landroid/view/MotionEvent; invoke-virtual {p1}, Landroid/view/MotionEvent;->getActionMasked()I move-result v0 const/4 v1, 0x0 if-nez v0, :cond_1 iget-object v2, p0, Lcom/android/launcher3/uioverrides/touchcontrollers/SimpleAppDrawerSwipeController;->mLauncher:Lcom/android/launcher3/Launcher; sget-object v3, Lcom/android/launcher3/LauncherState;->NORMAL:Lcom/android/launcher3/LauncherState; invoke-virtual {v2, v3}, Lcom/android/launcher3/Launcher;->isInState(Lcom/android/launcher3/statemanager/BaseState;)Z move-result v2 iput-boolean v2, p0, Lcom/android/launcher3/uioverrides/touchcontrollers/SimpleAppDrawerSwipeController;->mCanIntercept:Z invoke-virtual {p1}, Landroid/view/MotionEvent;->getX()F move-result v2 iput v2, p0, Lcom/android/launcher3/uioverrides/touchcontrollers/SimpleAppDrawerSwipeController;->mDownX:F invoke-virtual {p1}, Landroid/view/MotionEvent;->getY()F move-result v2 iput v2, p0, Lcom/android/launcher3/uioverrides/touchcontrollers/SimpleAppDrawerSwipeController;->mDownY:F return v1 :cond_1 iget-boolean v2, p0, Lcom/android/launcher3/uioverrides/touchcontrollers/SimpleAppDrawerSwipeController;->mCanIntercept:Z if-nez v2, :cond_2 return v1 :cond_2 const/4 v2, 0x2 if-eq v0, v2, :cond_3 return v1 :cond_3 invoke-virtual {p1}, Landroid/view/MotionEvent;->getPointerCount()I move-result v2 const/4 v3, 0x1 if-eq v2, v3, :cond_4 return v1 :cond_4 iget v2, p0, Lcom/android/launcher3/uioverrides/touchcontrollers/SimpleAppDrawerSwipeController;->mDownY:F invoke-virtual {p1}, Landroid/view/MotionEvent;->getY()F move-result v4 sub-float/2addr v2, v4 invoke-virtual {p1}, Landroid/view/MotionEvent;->getX()F move-result v4 iget v5, p0, Lcom/android/launcher3/uioverrides/touchcontrollers/SimpleAppDrawerSwipeController;->mDownX:F sub-float/2addr v4, v5 invoke-static {v4}, Ljava/lang/Math;->abs(F)F move-result v4 iget v5, p0, Lcom/android/launcher3/uioverrides/touchcontrollers/SimpleAppDrawerSwipeController;->mSwipeSlop:F cmpl-float v5, v2, v5 if-lez v5, :cond_5 cmpl-float v5, v2, v4 if-lez v5, :cond_5 iget-object v5, p0, Lcom/android/launcher3/uioverrides/touchcontrollers/SimpleAppDrawerSwipeController;->mLauncher:Lcom/android/launcher3/Launcher; invoke-virtual {v5}, Lcom/android/launcher3/Launcher;->getStateManager()Lcom/android/launcher3/statemanager/StateManager; move-result-object v5 sget-object v0, Lcom/android/launcher3/LauncherState;->ALL_APPS:Lcom/android/launcher3/LauncherState; invoke-virtual {v5, v0}, Lcom/android/launcher3/statemanager/StateManager;->goToState(Lcom/android/launcher3/statemanager/BaseState;)V const/4 v0, 0x1 return v0 :cond_5 return v1 .end method .method public onControllerTouchEvent(Landroid/view/MotionEvent;)Z .locals 1 .param p1, "ev" # Landroid/view/MotionEvent; const/4 v0, 0x1 return v0 .end method איך זה עובד, בקצרה: onControllerInterceptTouchEvent עוקב אחרי כל מגע: ב-ACTION_DOWN הוא בודק שהמסך במצב NORMAL (מסך הבית, לא במגירה/overview כבר) ושומר את נקודת ההתחלה. ב-ACTION_MOVE, אם התזוזה האנכית כלפי מעלה עוברת סף (4 × touch-slop של המערכת) והיא דומיננטית יותר מהתזוזה האופקית (כלומר מחווה אנכית ולא גרירה בין מסכים) — הוא קורא ל-goToState(ALL_APPS) ומחזיר true, מה שגורם ל-DragLayer "לגנוב" את המגע משאר הרכיבים. onControllerTouchEvent פשוט בולע את המשך המחווה כדי שלא יקרו תופעות לוואי בזמן שהמעבר למגירה כבר קורה. שלב 3 — רישום ה-controller חזרו תיקייה אחת אחורה (uioverrides/) ופתחו לעריכה את QuickstepLauncher.smali. חפשו בתוך הקובץ (יש חיפוש טקסט בעורך) את המתודה: .method public createTouchControllers()[Lcom/android/launcher3/util/TouchController; בתוך המתודה הזו, מיד אחרי השורה הראשונה שמוסיפה פריט ל-ArrayList (זו שמוסיפה את ה-DragController — תזהו אותה לפי getDragController() ממש מעליה), הוסיפו את שלוש השורות הבאות: invoke-virtual {v2, v3}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z new-instance v3, Lcom/android/launcher3/uioverrides/touchcontrollers/SimpleAppDrawerSwipeController; invoke-direct {v3, p0}, Lcom/android/launcher3/uioverrides/touchcontrollers/SimpleAppDrawerSwipeController;-><init>(Lcom/android/launcher3/Launcher;)V invoke-virtual {v2, v3}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z חשוב לפני שאתם מדביקים: v2 בקוד הזה הוא ה-register שמחזיק את ה-ArrayList<TouchController>, ו-v3 הוא register שחייב להיות פנוי לשימוש חוזר באותה נקודה — בדקו בעצמכם בקובץ שלכם (חפשו למעלה איפה v3 משמש לאחרונה, ולמטה איפה הוא משמש הבא). אם v3 לא פנוי שם, או אם .locals בתחילת המתודה נמוך מדי בשביל ה-register שבחרתם — MT Manager יזרוק שגיאת קימפול Smali ברגע השמירה/יציאה מהעורך, ותצטרכו לבחור register אחר ואולי להעלות את מספר ה-.locals. שלב 4 — שמירה וקימפול צאו מעורך ה-Smali (בדרך כלל כפתור "שמור" או חץ אחורה) (לא לסמן את "חתימה אוטומטית"!) — MT Manager יקמפל אוטומטית את השינויים בחזרה ל-dex ברגע הזה. אם יש שגיאת תחביר Smali היא תופיע כאן; אם לא, ה-APK בתיקייה שערכתם כבר מעודכן. בהצלחה! לתגובות
  • מדריך | הוספת שורה בהגדרות> אפ' והתראות של התראות חירום

    1
    0 הצבעות
    1 פוסטים
    3 צפיות
    מחנה ידידיםמ
    הכנסו באפליקציית ההגדרות דרך מנהל MT לres/xml/app_and_notification.xml והוסיפו את השורה הזו: <Preference android:title="התרעות חירום אלחוטיות" android:key="my_custom_emergency_alerts_key" android:summary="ניהול התראות במצבי חירום, איומים ובדיקות מערכת" android:order="15"> <intent android:targetPackage="****" android:action="****" android:targetClass="****" /> </Preference> החליפו את הכוכביות הראשונות בשם החבילה ואת השניות והשלישיות באקטיביטי של התפריט בדרך כלל שם החבילה הוא: com.mediatek.cellbroadcastreceiver.module והאקטיביטי: com.mediatek.cellbroadcastreceiver.module.CellBroadcastSettings ㅤ ㅤ אם תרצו שבאנגלית השורה תהיה באנגלית תצטרכו להוסיף סטרינג. הכנסו בMT לקובץ resources.arsc בעורך arsc. לחצו על השורה התחתונה, הכנסו לstring ושוב לstring. לחצו בתפריט הצדדי על "הוסף" והדביקו שם: emergency_alerts_title זכרו את מזהה הכניסה. לחצו על הסטרינג, בשורה "תוכן" הכניסו Wireless emergency Alerts. צאו מstring, הכנסו לstring-iw ולחצו שוב על "הוסף". הכניסו את מזהה הכניסה של הסטרינג הקודם - והשם יהפך אוטומטית לemergency_alerts_title. לחצו על הסטרינג, בשורה "תוכן" הכניסו התרעות חירום אלחוטיות. אותו הדבר לסטרינג הsummary. רק שלו קוראים emergency_alerts_summary והתוכן הוא ניהול התראות במצבי חירום, איומים ובדיקות מערכת ובאנגלית Emergency alerts management עכשיו שימו במקום הטקסט הקודם את זה: <Preference android:title="@string/emergency_alerts_title" android:key="my_custom_emergency_alerts_key" android:summary="@string/emergency_alerts_summary" android:order="15"> <intent android:targetPackage="****" android:action="****" android:targetClass="****" /> </Preference>
  • 0 הצבעות
    1 פוסטים
    9 צפיות
    ח
    היי‌​‌‌​‌​​​​​‌ רציתי לסדר את זה יפה בשבילכם תהנו ========================================= קיצורי מקשים בסיסיים (שימוש יומיומי) --- פעולות קבצים וטקסט בסיסיות --- Ctrl + C -> העתקת הפריט או הטקסט שנבחר Ctrl + X -> גזירת הפריט או הטקסט שנבחר Ctrl + V -> הדבקת הפריט או הטקסט שהועתק/נגזר Ctrl + Z -> ביטול הפעולה האחרונה (Undo) Ctrl + Y -> ביצוע מחדש של הפעולה שבוטלה (Redo) Ctrl + A -> בחירת כל הפריטים במסמך, בתיקייה או בחלון Backspace -> מחיקת תו אחורה / חזרה לתיקייה הקודמת Delete -> מחיקת הפריט שנבחר והעברתו לסל המחזור F2 -> שינוי שם (Rename) של קובץ או תיקייה --- ניהול חלונות וניווט כללי --- Alt + Tab -> מעבר מהיר בין חלונות ואפליקציות פתוחות Alt + F4 -> סגירת החלון הפעיל או האפליקציה הנוכחית ⊞ Win -> פתיחה או סגירה של תפריט התחלה (Start) ⊞ Win + D -> הצגת שולחן העבודה והסתרת כל החלונות (ולחיצה נוספת להחזרתם) ⊞ Win + E -> פתיחת סייר הקבצים (File Explorer) ⊞ Win + L -> נעילת המחשב או החלפת משתמשים במערכת ⊞ Win + I -> פתיחת הגדרות המערכת (Settings) ⊞ Win + S -> פתיחת שורת החיפוש של Windows Alt + Shift -> החלפת שפת ההקלדה במקלדת Ctrl + Shift -> שינוי כיוון הטקסט (מימין לשמאל או משמאל לימין) --- דפדפנים וסייר הקבצים --- Ctrl + T -> פתיחת כרטיסייה חדשה בדפדפן Ctrl + N -> פתיחת חלון חדש (בדפדפן או בסייר הקבצים) Ctrl + W -> סגירת החלון או הכרטיסייה הנוכחית Ctrl + F -> פתיחת תיבת חיפוש בתוך הדף או המסמך הנוכחי F5 (או Ctrl + R) -> רענון החלון או הדף הנוכחי ========================================= קיצורי מקשים מתקדמים --- צילומי מסך, לוח ומערכת מתקדמת --- ⊞ Win + Shift + S -> צילום מסך מתקדם (חיתוך חלק ספציפי מהמסך) ⊞ Win + V -> פתיחת היסטוריית לוח ההעתקות (Clipboard History) ⊞ Win + . (נקודה) -> פתיחת פאנל האימוג'ים, סמלים מיוחדים וגיפים Ctrl + Shift + Esc -> פתיחה ישירה של מנהל המשימות (Task Manager) Ctrl + Alt + Delete -> פתיחת מסך האבטחה הראשי של Windows Shift + Delete -> מחיקת הפריט שנבחר לצמיתות (בלי לעבור בסל המחזור) ⊞ Win + R -> פתיחת תיבת הדו-שיח "הפעלה" (Run) ⊞ Win + X -> פתיחת תפריט הקישורים המהירים (תפריט כפתור ימני על התחלה) ⊞ Win + G -> פתיחת סרגל המשחקים של Xbox (להקלטת מסך) --- ניהול חלונות וצגים מתקדם --- ⊞ Win + חץ ימינה -> הצמדת החלון הנוכחי לחצי המסך הימני ⊞ Win + חץ שמאלה -> הצמדת החלון הנוכחי לחצי המסך השמאלי ⊞ Win + חץ למעלה -> הגדלת החלון הנוכחי למסך מלא (Maximize) ⊞ Win + חץ למטה -> הקטנת החלון הפעיל או מזעור שלו ⊞ Win + Home -> מזעור של כל החלונות ברקע, למעט החלון הפעיל ⊞ Win + Shift + חץ -> העברת החלון הנוכחי למסך פיזי אחר (בימין או שמאל) ⊞ Win + P -> בחירת מצב תצוגה בעבודה עם מספר מסכים (הרחבה/שכפול) ⊞ Win + Z -> פתיחת פריסות הצמדה מובנות לחלונות (Snap layouts) Alt + Spacebar -> פתיחת תפריט השליטה בחלון הנוכחי באמצעות המקלדת --- שולחנות עבודה וירטואליים (Virtual Desktops) --- ⊞ Win + Tab -> פתיחת תצוגת המשימות והשולחנות הווירטואליים ⊞ Win + Ctrl + D -> יצירת שולחן עבודה וירטואלי חדש ⊞ Win + Ctrl + חץ -> מעבר מהיר בין שולחנות העבודה הווירטואליים ⊞ Win + Ctrl + F4 -> סגירת שולחן העבודה הווירטואלי הנוכחי --- ניווט וניהול קבצים מתקדם --- Alt + D -> העברת המיקוד לשורת כתובת הנתיב (Address bar) Alt + Enter -> פתיחת חלון המאפיינים (Properties) של הקובץ שנבחר Alt + חץ למעלה -> עלייה שלב אחד למעלה במבנה התיקיות (תיקיית האם) Alt + חץ שמאלה/ימינה -> חזרה אחורה או קדימה בהיסטוריית הניווט של התיקיות Ctrl + גלילת עכבר -> שינוי גודל תצוגת הקבצים (רשימה, אייקונים גדולים וכו') Ctrl + Shift + N -> יצירת תיקייה חדשה במיקום הנוכחי Ctrl + Shift + T -> פתיחה מחדש של הכרטיסייה האחרונה שנסגרה בדפדפן Ctrl + F5 -> רענון קשיח (Hard Refresh) בדפדפנים המנקה את ה-Cache F11 -> מעבר למצב מסך מלא ובחזרה בסייר הקבצים ובדפדפן --- עריכת טקסט מתקדמת וניווט --- Ctrl + חץ ימינה/שמאלה -> הזזת הסמן מילה שלמה קדימה או אחורה Ctrl + Shift + חץ -> סימון ובחירה של מילה שלמה בכל לחיצה Ctrl + Backspace -> מחיקת מילה שלמה אחורה Ctrl + Delete -> מחיקת מילה שלמה קדימה Home -> העברת הסמן לתחילת השורה הנוכחית End -> העברת הסמן לסוף השורה הנוכחית Ctrl + Home -> מעבר ישיר לתחילת המסמך או הדף Ctrl + End -> מעבר ישיר לסוף המסמך או הדף Shift + Home/End -> סימון כל הטקסט מהסמן ועד תחילת/סוף השורה --- נגישות ותכונות מערכת נוספות --- ⊞ Win + U -> פתיחת הגדרות נגישות (Accessibility) ⊞ Win + A -> פתיחת מרכז ההגדרות המהירות (סאונד, ווייפיי וכו') ⊞ Win + H -> הפעלת שירות ההקלדה הקולית (דיבור לטקסט) ⊞ Win + K -> פתיחת תפריט התחברות לצגים ואביזרים אלחוטיים ⊞ Win + W -> פתיחת לוח הווידג'טים (Widgets) תהנו!!