自制一个属于自己的X86电视盒子

前段时间在用TCL电视的时候发现电视有广告,还有很多卸载不掉的软件,找客服处理客服就说搞不定,投诉也没用,刚好最近在收拾东西的时候搜出了之前的几台小工控机,就想着你既然不给卸,那我就自己弄个小盒子看,不用你的。我也是第一次搞这个,所以就尽量写细一点!

一、环境及工具

1、4+64G双网口千兆工控机一台
2、U盘16G一个
3、安卓TVx86镜像一个(好像是一个境外大佬的作品)
4、BalenaEtcher烧录工具 点击这里BalenaEtcher官方下载
5、houdini9_y.sfs文件
6、 Android System WebView
7、apkmirror

二、步骤

1、刻录系统盘

我这里是windows的系统,所以下载windows版本的

kelu1
kelu2
kelu3
kelu4
kelu5

2、安装系统

anzhuang1
anzhuang2
anzhuang3
anzhuang4
anzhuang5
anzhuang6
anzhuang7

3、初始化系统

chushihua1
chushihua2
chushihua3

这里需要注意,因为这个系统是老外做的,需要付费,但是作者已经没有维护了,你即使付了钱也未必能 拿到激活码,所以我们可以绕过这个激活。

还有一点就是绕过激活后,因为在大陆没办法使用Google的服务,所以我们需要绕过检查更新和登陆Google帐号。

等你有魔法后,如果你还想登陆Google帐号,我们需要更新下WebView,不然你点击登陆,还是会返回到输入帐号密码的页面,这是因为WebView版本太低导致的,更新下就好了,但是WebView两百多M太大了,我们分区没那么多空间,我们不能直接替换WebView,只能通过ApkMirror这个工具来安装更新,所以需要安装个ApkMirror。

chushihua4
chushihua5

因为我们是X86的架构,所以在运行一些arm版本的软件时会闪退,这里我们需要将houdini9_y.sfs文件复制到 /system/etc/system/bin底下,然后再执行 enable_nativebridge

chushihua6

接下来就是更新WebView的步骤了

chushihua7
chushihua8
chushihua9
chushihua10
chushihua11
chushihua12
chushihua13
chushihua14
chushihua15
chushihua16

上述操作完后,重启下就行。

三、常见问题说明

问题一

问:那个命令行怎么调用出来?
答: Alt+F1 就可以切换到命令行,Alt+F7 切换到正常图形界面

问题二

问:系统安装好后需要激活怎么办?
答:先按 Alt+F1 切换到命令行模式,然后执行 pm disable com.tosanthony.tv.networkprovider

问题三

问:绕过激活后一直显示正在检查更新或者需要登陆谷歌帐号怎么办?
答: 先按 Alt+F1 切换到命令行模式,然后执行 pm disable com.google.android.tungsten.setupwraith

问题四

问:我现在有魔法了,但是登陆谷歌帐号的时候输入完帐号和密码后怎么又自动退回到登陆界面了?
答: 这是因为你系统的WebView版本太低导致的,更新下WebView版本就能恢复正常。

问题五

问:为什么很多软件都闪退?
答:因为大部分的软件都是 arm 架构的,无法在 x86 架构的系统上运行,所以需要开启 arm 兼容。将 houdini9_y.sfs 拷贝到 U 盘并插入电脑,按 Alt+F1 进入控制台,输入 ls 命令,这里会显示 storage 目录,然后输入 cd storage 命令,再输入 ls ,查看 U 盘名称(名称一般会显示“XXXX-XXXX”的格式),输入 cd XXXX-XXXX(U 盘名称) ,并输入 lshoudini9_y.sfs 文件是否在当前文件夹中,输入 cp houdini9_y.sfs /system/etc && cp houdini9_y.sfs /system/bin 将文件拷贝到 /system/etc/system/bin 目录,然后执行 enable_nativebridge 命令,最后执行 reboot 命令重启就可以了

问题六

问:上述操作完后,为什么打开了开发者模式后,里面显示“此用户无法使用开发者选项”?
答:具体原因我也不清楚,但是解决方案是有的,按 Alt+F1 进入命令行模式,然后输入 adb shell settings put secure user_setup_complete 1adb shell settings put global device_provisioned 1 ,然后重启下系统就能恢复正常。

问题七

问:我想设置我的桌面为默认桌面,并且开机后自动启动我自己的桌面,该怎么做?
答:按 Alt+F1 进入命令行模式,然后输入 pm disable-user com.google.android.tvlauncher 禁用原来的启动器,然后输入 cmd package set-home-activity com.oversea.aslauncher/.ui.main.MainActivity 来设置新的启动器,重启后你就能发现它用的是你自己桌面了。

问题八

问:最开始的时候输入的禁止检查更新和登陆的命令 pm disable com.google.android.tungsten.setupwraith ,现在我需要登录谷歌帐号,需要再把这个给打开吗?不打开会不会有什么影响?
答:打开也行,不打开也行,影响到时没什么影响,但是我自己最后面是打开的就是,打开命令是 pm enable com.google.android.tungsten.setupwraith

命令集合

禁用激活

1
2
3
4
pm disable com.tosanthony.tv.networkprovider  
```

**禁用检查更新和谷歌登陆**

pm disable com.google.android.tungsten.setupwraith

1
2

**解决软件闪退**

cd /storage/xxxx(你的U盘名称)
cp houdini9_y.sfs /system/etc
cp houdini9_y.sfs /system/bin
enable_nativebridge

1
2

**解决开发者显示此用户无法使用开发者选项**

adb shell settings put secure user_setup_complete 1
adb shell settings put global device_provisioned 1

1
2

**设置自己的桌面为默认桌面**

先查看自己默认启动器叫什么
cmd package resolve-activity -a android.intent.action.MAIN -c android.intent.category.HOME

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
```
你会得到下面这样的结果,结果显示,我目前默认的启动器是Google TV Launcher

priority=2 preferredOrder=0 match=0x108000 specificIndex=-1 isDefault=true
ActivityInfo:
name=com.google.android.tvlauncher.MainActivity
packageName=com.google.android.tvlauncher
enabled=true exported=true directBootAware=false
taskAffinity=.TvLauncher targetActivity=null persistableMode=PERSIST_ROOT_ONLY
launchMode=2 flags=0x220 theme=0x0
screenOrientation=0 configChanges=0x3 softInputMode=0x0
lockTaskLaunchMode=LOCK_TASK_LAUNCH_MODE_DEFAULT
resizeMode=RESIZE_MODE_RESIZEABLE_VIA_SDK_VERSION
ApplicationInfo:
name=com.google.android.tvlauncher.application.TvLauncherApplication
packageName=com.google.android.tvlauncher
labelRes=0x7f120029 nonLocalizedLabel=null icon=0x7f0f0000 banner=0x7f0800d5
className=com.google.android.tvlauncher.application.TvLauncherApplication
processName=com.google.android.tvlauncher
taskAffinity=com.google.android.tvlauncher
uid=10018 flags=0x38c83e45 privateFlags=0x1008 theme=0x7f130007
requiresSmallestWidthDp=0 compatibleWidthLimitDp=0 largestWidthLimitDp=0
sourceDir=/system/priv-app/TVLauncher/TVLauncher.apk
seinfo=default:privapp:targetSdkVersion=28
seinfoUser=:complete
dataDir=/data/user/0/com.google.android.tvlauncher
deviceProtectedDataDir=/data/user_de/0/com.google.android.tvlauncher
credentialProtectedDataDir=/data/user/0/com.google.android.tvlauncher
enabled=true minSdkVersion=26 targetSdkVersion=28 versionCode=1010900090 targetSandboxVersion=1
supportsRtl=true
fullBackupContent=true
   HiddenApiEnforcementPolicy=2

1
2
3
4
禁用系统默认的启动器

adb shell pm disable-user com.google.android.tvlauncher
```

将自己安装的启动器设为默认启动器
adb shell cmd package set-home-activity com.oversea.aslauncher/.ui.main.MainActivity

如果不成功,就试试下面这个,直接启动。

adb shell am start -n com.oversea.aslauncher/.ui.main.MainActivity

最后重启生效

1
2
3
4
5
6
7
8
```
恢复系统自带的启动器为默认启动器
adb shell pm enable com.google.android.tvlauncher
adb shell cmd package set-home-activity com.google.android.tvlauncher/.MainActivity

或者
adb shell pm enable com.google.android.tvlauncher
adb shell am start -n com.google.android.tvlauncher/.ui.main.MainActivity

1
2
3
4
安装软件,我这里用的软件有ApkMirror安装器和Emotn桌面  
pm install apkmirror.apk

pm install com.oversea.aslauncher_1.0.9.0_5094.apk

四、总结

先用BalenaEthcer刻盘,记住,千万别用什么ventoy之类的刻盘然后将镜像丢进去,我试过ventoy,在安装的时候会直接卡在正在检测AndroidTV,你需要单独的将这个镜像刻成一个启动盘来引导,安装完后就是把激活和检查更新和强制登陆谷歌帐号禁用掉,强制登陆谷歌帐号不禁用的话,你是没办法进入到桌面进行后续操作的,除非你有魔法,禁用完后,就是装软件,ApkMirror是必须装的,不然你更新不了WebView,接下里对WebView更新,更新完后设置第三方桌面为默认桌面启动器,然后重启,等你有魔法的时候可以到GooglePlay下载一些应用,不然你就只能自己拷贝到U盘里面插盒子上手动安装了。

五、微信扫一扫关注我吧

戴戴的Linux 戴戴的Linux

文章目录
  1. 1. 前段时间在用TCL电视的时候发现电视有广告,还有很多卸载不掉的软件,找客服处理客服就说搞不定,投诉也没用,刚好最近在收拾东西的时候搜出了之前的几台小工控机,就想着你既然不给卸,那我就自己弄个小盒子看,不用你的。我也是第一次搞这个,所以就尽量写细一点!
  • 一、环境及工具
  • 二、步骤
    1. 1、刻录系统盘
    2. 2、安装系统
    3. 3、初始化系统
  • 三、常见问题说明
    1. 1. 问题一
    2. 2. 问题二
    3. 3. 问题三
    4. 4. 问题四
    5. 5. 问题五
    6. 6. 问题六
    7. 7. 问题七
    8. 8. 问题八
  • 命令集合
  • 四、总结
  • 五、微信扫一扫关注我吧


  • 本站总访问量 本文总阅读量