1. android tv 無限重啟或黑屏怎麼辦
刷機把豌豆莢退出掉。解鎖後先在2.3的基礎上獲取root許可權,這個很簡單的,再刷入第三方的recoved,然後再進行卡刷,如果出現問題就換刷機包吧。過程比較繁瑣,可以網路一下教程。
2. 有什麼軟體可以使androidtv 重啟到recovery
本文內容ROM開發者聯盟小編將給大家介紹的就是怎樣在中關機菜單加入重啟模式!
一、修改framework-res.apk
1、反編譯後添加三張圖片到resdrawable-hdpi目錄下。
2、打開resvaluesstrings.xml,在最下面添加:
<string name="reboot">Reboot</string>
<string name="recovery">Recovery</string>
<string name="bootloader">Bootloader</string>
3、打開resvalues-zh-rCNstrings.xml,在最下面添加:
<string name="reboot">重啟</string>
<string name="recovery">重啟至Recovery</string>
<string name="bootloader">重啟至Bootloader</string>
4、重新編譯framework-res為framework-res-new.apk,解出resources.arsc以不壓縮的形式替換到原版framework-res.apk中,然後將三張圖片加入到相應位置。
二、修改android.policy.jar
1、打開.smali文件,在
.method private createDialog()Landroid/app/AlertDialog;
范圍內(電源選項)查找
[Lcom/android/internal/policy/impl/GlobalActions$Action;
找到後修改為:
const/4 v0, 0x4
new-array v0, v0, [Lcom/android/internal/policy/impl/GlobalActions$Action;
註:0x4表示電源選項中有4個菜單,可修改為自己需要的條目數量。
2、
const/4 v1, 0x
0
new-instance v2, Lcom/android/internal/policy/impl/GlobalActions$
4
;
const v3,
0x1080030
# 所對應的圖標
const v4,
0x104011a
# 所對應的文字
invoke-direct {v2, p0, v3, v4}, Lcom/android/internal/policy/impl/GlobalActions$
4
;-><init>(Lcom/android/internal/policy/impl/GlobalActions;II)V
aput-object v2, v0, v1
此為一個完整的菜單命令。一般有多個,可改變它們的順序、亦可增加或刪減。
註:0x1080030在framework-res esvaluespublic.xml中所對應的數值為:0x01080030。
一般修改的話復制關機的那條命令修改,修改的地方為上面代碼紅色部分。
3、這段代碼最後總的結尾為:
invoke-static {v0}, Lcom/google/android/collect/Lists;->newArrayList([Ljava/lang/Object;)Ljava/util/ArrayList;
move-result-object v0
iput-object v0, p0, Lcom/android/internal/policy/impl/GlobalActions;->mItemsjava/util/ArrayList;
所以添加命令的時候一定要注意加在上一個代碼的aput-object v2, v0, v1後面和總結尾的前面。
4、將GlobalActions$4.smali(關機所對應的那個文件)復制三份,分別命名為:GlobalActions$8.smali、
GlobalActions$9.smali、GlobalActions$10.smali(命名規則是:GlobalActions$xx.smali,「xx-1」為最後一個數
字)。
5、以修改GlobalActions$8.smali為例說明:
(1)打開後替換GlobalActions$4為GlobalActions$8,一共三處。
(2)找到:
invoke-static {v0, v1}, Lcom/android/internal/app/ShutdownThread;->shutdown(Landroid/content/Context;Z)V
修改為: (重啟)
const-string v2, "now"
invoke-static {v0, v2, v1}, Lcom/android/internal/app/ShutdownThread;->reboot(Landroid/content/Context;Ljava/lang/String;Z)V
修改為: (重啟到recovery)
const-string v2, "recovery"
invoke-static {v0, v2, v1}, Lcom/android/internal/app/ShutdownThread;->reboot(Landroid/content/Context;Ljava/lang/String;Z)V
修改為: (重啟到bootloader)
const-string v2, "bootloader"
invoke-static {v0, v2, v1}, Lcom/android/internal/app/ShutdownThread;->reboot(Landroid/content/Context;Ljava/lang/String;Z)V
註:有的機器重啟到bootloader命令為download,例如三星的機器。
要使用ANSI編碼
6、打包
java -jar smali.jar 1132 -o classes.dex
7、刷入即可。
如果為odex化的rom修改方法如下:
1、解包android.policy.odex
復制/system/framework目錄下的所有文件到smali文件夾下(可用adb命令)
然後執行:
java -Xmx1024m -jar baksmali.jar -c :core.jar:bouncycastle.jar:ext.jar:framework.jar:android.policy.jar:services.jar:core-junit.jar -x android.policy.odex
得到out目錄
修改過程同上。
2、打包:
java -Xmx1024m -jar smali.jar out -o classes.dex
3、用winrar打開android.policy.jar把得到的classes.dex拖放進去。
4、把dexopt-wrapper上傳到手機,並給許可權
adb push dexopt-wrapper /system/bin
adb shell chmod 755 /system/bin/dexopt-wrapper
5、把android.policy.jar傳送到手機/sdcard/
adb push android.policy.jar /sdcard/android.policy.jar
6、然後執行以下命令:
adb shell
busybox mount -o remount,rw /system
busybox cp -f /system/framework/android.policy.jar /system/framework/android.policy.jar.bak
busybox cp -f /system/framework/android.policy.odex /system/framework/android.policy.odex.bak
busybox cp -f /sdcard/android.policy.jar /system/framework/android.policy.jar
rm /system/framework/android.policy.odex
dexopt-wrapper /system/framework/android.policy.jar /system/framework/android.policy.odex /system/framework/core.jar:/system/framework/bouncycastle.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/android.policy.jar:/system/framework/services.jar:/system/framework/core-junit.jar
busybox dd if=/system/framework/android.policy.odex.bak of=/system/framework/android.policy.odex bs=1 count=20 skip=52 seek=52 conv=notrunc
busybox cp -f /system/framework/android.policy.jar.bak /system/framework/android.policy.jar
rm /system/framework/android.policy.jar.bak
rm /system/framework/android.policy.odex.bak
reboot
命令解釋:
busybox dd if=/system/framework/android.policy.odex.bak of=/system/framework/android.policy.odex bs=1 count=20 skip=52 seek=52 conv=notrunc
意思為復制android.policy.odex.bak中的簽名到android.policy.odex中即可。