當(dāng)您在Android TV上安裝群暉DSvideo應(yīng)用后發(fā)現(xiàn)無圖標(biāo)顯示時(shí),不必?fù)?dān)憂。這可能是由于系統(tǒng)兼容、安裝問題或權(quán)限設(shè)置不當(dāng)?shù)仍蛟斐傻摹=酉聛?,我們將為您解析這一現(xiàn)象的原理,并提供相應(yīng)的解決方案。
前兩天,家里電視炸了(你沒看錯(cuò),就是炸了,前一天還好好的,睡一覺起來看到屏幕自己裂了),第二天買了個(gè)某米5(別噴,便宜就行),想著家里那臺(tái)只當(dāng)備份用著的DS218+,加上近期媳婦在看慶某年,順手去官網(wǎng)下了個(gè)AndroidTV-DSvideo安裝上,但發(fā)現(xiàn)安裝好了沒圖標(biāo)。查了資料,發(fā)現(xiàn)群暉提供的App只支持AndroidTV,而不支持國內(nèi)大部分深度定制的原版Android,詳查后發(fā)現(xiàn)只是啟動(dòng)器的問題,ADB am start測(cè)試可以正常打開,那就簡單了。
二、如何啟動(dòng)
使用的工具
ApkTool https://ibotpeaches.github.io/Apktool/
AnroidStudio https://developer.android.google.cn/studio
AdbTools https://adbdriver.com/downloads/
1. 獲取到App的包名和Launcher路徑
官網(wǎng)下載AndroidTV-DSvideo:https://www.synology.cn/zh-cn/support/download#androids
由于APP沒有啟動(dòng), 不能直接通過dumpsys獲取到頂層應(yīng)用的包名和Activity路徑,所以就不能直接:adb shell dumpsys window w |findstr / |findstr name=
那么就祭出神器,ApkTool,直接先反編譯解包。
.\apktool d .\AndroidTV-DSvideo.1.1.7-10060.apk
QQ截圖20240625104735.jpg (31 KB, 下載次數(shù): 4)
下載附件
保存到相冊(cè)
2024-6-25 10:47 上傳
反編譯完成后,會(huì)在同目錄下生成Apk同名的文件夾,進(jìn)去查看AndroidManifest.xml
<application android:allowBackup="true" android:icon="@mipmap/app_icon" android:label="@string/app_name" android:largeHeap="true" android:name="com.synology.dsvideo.App" android:supportsRtl="true" android:theme="@style/Theme.DSvideo.Leanback">
<meta-data android:name="userAgentName" android:value="TV DS video"/>
<activity android:banner="@mipmap/card_ds_video" android:icon="@mipmap/card_ds_video" android:label="@string/app_name" android:logo="@mipmap/card_ds_video" android:name="com.synology.dsvideo.ui.WelcomeActivity" android:screenOrientation="landscape">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LEANBACK_LAUNCHER"/>
</intent-filter>
</activity>
......
App包名為:com.synology.dsvideo
Launcher類名為:com.synology.dsvideo.ui.WelcomeActivity
2. 測(cè)試啟動(dòng)DSvideo
首先測(cè)試用ADB啟動(dòng)該Activity,是否能成功:
adb shell am start -n {包名(package)}/{包名}.{Activity路徑}
adb shell am start -n com.synology.dsvideo/com.synology.dsvideo.ui.WelcomeActivity
然后電視正常打開了DsVideo,登陸后測(cè)試讀取、播放一切正常,那么就是只是一個(gè)沒圖標(biāo)的問題了。
3. 解決方案
初步想了兩種方案:
1 . 給AndroidManifest中WelcomeActivity節(jié)點(diǎn)加上
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.LAUNCHER" />
讓AndroidTV的應(yīng)用變?yōu)槠胀ˋpp(未測(cè)試、理論可行),重新打包后安裝。但該方法不通用,每次官方App更新后,就需要重新再去編輯打包一次,而且重打包過程中可能會(huì)遇到各種坑,只是為了給媳婦看一個(gè)視頻,沒必要這么折騰,放棄。
2 . 寫個(gè)有桌面圖標(biāo)的App,來啟動(dòng)AndroidTV-DSVideo。通用性好,官方升級(jí)也能一直使用。
果斷選擇第二種方案
0x00 一句代碼:
import android.app.Activity;
import android.content.ComponentName;
import android.content.Intent;
import android.os.Bundle;
public class MainActivity extends Activity {
private static final String PACKAGE = "com.synology.dsvideo";
private static final String ACTIVITY = ".ui.WelcomeActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 此處應(yīng)先做一個(gè)包名判斷,是否已安裝AndroidTV-DSvideo
// 需要的自行百度,兩句代碼的問題
Intent intent = new Intent();
intent.setComponent(new ComponentName(PACKAGE, PACKAGE + ACTIVITY));
startActivity(intent);
finish();
}
}
0x01 再用Android自帶的透明主題處理APP啟動(dòng)時(shí)的白屏:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.itxca.dsgo">
<application
android:allowBackup="true"
android:icon="@drawable/app_icon"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@android:style/Theme.Translucent" >
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
0x02 刪除build.gradle中多余的AndroidX引用,壓縮Apk體積
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
}
0x03 從剛解包的AndroidTV-DSVideo文件夾中…\res\mipmap-xxxhdpi\app_icon.png拷貝一個(gè)圖標(biāo),刪除工程內(nèi)多余的圖片及其它資源。
QQ截圖20240625104744.jpg (15.7 KB, 下載次數(shù): 5)
下載附件
保存到相冊(cè)
2024-6-25 10:47 上傳
0x04 最后AndroidStudio -> Build -> Generate Signed Bundle/APK…打包apk。然后adb install把剛編譯的apk安裝到電視上,圖標(biāo)出來了,點(diǎn)擊后會(huì)自動(dòng)啟動(dòng)AndroidTV-DSideo,完成。
三、成品及使用方法
1. 安裝方法
U盤、帶WIFI安裝的文件管理器、ADB,由于各個(gè)電視廠家的安裝方法不盡相同,這里只給出家里使用的某米5安裝方法。
設(shè)置 -> 關(guān)于 -> 產(chǎn)品型號(hào),然后在產(chǎn)品型號(hào)上快速的按確認(rèn)鍵五次以上,提示“您已經(jīng)處于開發(fā)者模式”。
回到設(shè)置頁,依次點(diǎn)擊:賬號(hào)與安全->ADB調(diào)試,按向右方向鍵選擇允許,然后你選擇確定打開。
在設(shè)置 -> 關(guān)于 里查看電視IP
adb connect ip連接上電視(注意電視彈出的是否允許調(diào)試要選擇允許)
adb install 安裝
adb conncet 192.168.1.88
adb install AndroidTV-DSvideo.1.1.7-10060.apk
adb install DsVideoLauncher.apk
提示無Adb的,可以在這個(gè)網(wǎng)站下載https://adbdriver.com/downloads/
2. 成品打包下載
游客,如果您要查看本帖隱藏內(nèi)容請(qǐng) 回復(fù)
群暉AndroidTV-DSvideo只支持Google AndroidTv,不支持國內(nèi)大部分深度定制的普通Android。通過安裝原版App及一起打包的啟動(dòng)器,可以在電視的桌面生成DSvideo的圖標(biāo),從而在國內(nèi)普通電視上使用DSvideo Tv。
兩個(gè)都要安裝:AndroidTV-DSvideo.1.1.7-10060.apk (群暉提供的Tv DSVideo)
DsVideoLauncher.apk (創(chuàng)建一個(gè)桌面圖標(biāo)的啟動(dòng)器)
相關(guān)閱讀:美洲杯2024賽程表直播在哪看 電視怎么看2024年美洲杯賽況
手把手教你通過armbian-ddbr命令實(shí)現(xiàn)eMMC系統(tǒng)的備份與還原
U盤怎么擴(kuò)容 一文看懂利用armbian-tf命令擴(kuò)展系統(tǒng)U盤容量
黑豹X2盒子怎么刷機(jī) 黑豹盒子RK3566芯片搞定Armbian系統(tǒng)安裝
|