این هک بر روی framework.jar انجام میگیرد.
هدف: روان شدن اسکرولینگ در برنامه ها
1- framework.jar را دیکامپایل کنید.
2- فایل زیر را باز کنید:
3- به دنبال متد زیر بگردیدکد:android/widget/AbsListView.smali
و آنرا به شکل زیر تغییر دهید:کد:.method private createScrollingCache()V .registers 3 const/4 v1, 0x1 iget-boolean v0, p0, Landroid/widget/AbsListView;->mScrollingCacheEnabled:Z if-eqz v0, :cond_11 iget-boolean v0, p0, Landroid/widget/AbsListView;->mCachingStarted:Z if-nez v0, :cond_11 invoke-virtual {p0, v1}, Landroid/widget/AbsListView;->setChildrenDrawnWithCacheEnabled(Z)V invoke-virtual {p0, v1}, Landroid/widget/AbsListView;->setChildrenDrawingCacheEnabled(Z)V iput-boolean v1, p0, Landroid/widget/AbsListView;->mCachingStarted:Z :cond_11 return-void .end method
کد:.method private createScrollingCache()V .registers 3 const/4 v1, 0x0 iget-boolean v0, p0, Landroid/widget/AbsListView;->mScrollingCacheEnabled:Z if-eqz v0, :cond_11 iget-boolean v0, p0, Landroid/widget/AbsListView;->mCachingStarted:Z if-nez v0, :cond_11 invoke-virtual {p0, v1}, Landroid/widget/AbsListView;->setChildrenDrawnWithCacheEnabled(Z)V invoke-virtual {p0, v1}, Landroid/widget/AbsListView;->setChildrenDrawingCacheEnabled(Z)V iput-boolean v1, p0, Landroid/widget/AbsListView;->mCachingStarted:Z :cond_11 return-void .end method
---------------------------------------------------------------------------------------------------------------------
4- متد زیر را مطابق شکل زیر تغییر دهید:
به شکل زیر تغییر میدهیم:کد:.method private initAbsListView()V .registers 4 const/4 v2, 0x0 const/4 v1, 0x1 invoke-virtual {p0, v1}, Landroid/widget/AbsListView;->setClickable(Z)V invoke-virtual {p0, v1}, Landroid/widget/AbsListView;->setFocusableInTouchMode(Z)V invoke-virtual {p0, v2}, Landroid/widget/AbsListView;->setWillNotDraw(Z)V invoke-virtual {p0, v2}, Landroid/widget/AbsListView;->setAlwaysDrawnWithCacheEnabled(Z)V invoke-virtual {p0, v1}, Landroid/widget/AbsListView;->setScrollingCacheEnabled(Z)V iget-object v1, p0, Landroid/view/View;->mContext:Landroid/content/Context; invoke-static {v1}, Landroid/view/ViewConfiguration;->get(Landroid/content/Context;)Landroid/view/ViewConfiguration;
--------------------------------------------------------------------------------------------------------کد:.method private initAbsListView()V .registers 4 const/4 v2, 0x0 const/4 v1, 0x1 invoke-virtual {p0, v1}, Landroid/widget/AbsListView;->setClickable(Z)V invoke-virtual {p0, v1}, Landroid/widget/AbsListView;->setFocusableInTouchMode(Z)V invoke-virtual {p0, v2}, Landroid/widget/AbsListView;->setWillNotDraw(Z)V invoke-virtual {p0, v2}, Landroid/widget/AbsListView;->setAlwaysDrawnWithCacheEnabled(Z)V invoke-virtual {p0, v2}, Landroid/widget/AbsListView;->setScrollingCacheEnabled(Z)V iget-object v1, p0, Landroid/view/View;->mContext:Landroid/content/Context; invoke-static {v1}, Landroid/view/ViewConfiguration;->get(Landroid/content/Context;)Landroid/view/ViewConfiguration;
5- متد زیر را نیز تغییر دهید:
به شکل زیر:کد:.method public setScrollingCacheEnabled(Z)V .registers 3 iget-boolean v0, p0, Landroid/widget/AbsListView;->mScrollingCacheEnabled:Z if-eqz v0, :cond_9 if-nez p1, :cond_9 invoke-direct {p0}, Landroid/widget/AbsListView;->clearScrollingCache()V :cond_9 iput-boolean p1, p0, Landroid/widget/AbsListView;->mScrollingCacheEnabled:Z return-void .end method
کد:.method public setScrollingCacheEnabled(Z)V .registers 3 .parameter "disabled" iget-boolean v0, p0, Landroid/widget/AbsListView;->mScrollingCacheEnabled:Z if-eqz v0, :cond_9 if-nez p1, :cond_9 invoke-direct {p0}, Landroid/widget/AbsListView;->clearScrollingCache()V :cond_9 iput-boolean p1, p0, Landroid/widget/AbsListView;->mScrollingCacheEnabled:Z return-void .end method
اعتبار:
دوستان دقت نمایند، به هیچ عنوان مطالب تخصصی این سایت، مجاز به انتشار در سایت های دیگه نمیباشند.این آموزش توسط TEAM XPOSED انتشار داده شده است.
موضوعات مشابه:
بوک مارک ها