Open tkawajir opened 10 years ago
ストックカーネルとCMカーネル間でワンセグに関係しそうなコンフィグの差は、
CONFIG_MEDIA_TUNER_SIMPLE=m CONFIG_MEDIA_TUNER_TDA8290=m CONFIG_MEDIA_TUNER_TDA827X=m CONFIG_MEDIA_TUNER_TDA18271=m CONFIG_MEDIA_TUNER_TDA9887=m CONFIG_MEDIA_TUNER_TEA5761=m CONFIG_MEDIA_TUNER_TEA5767=m CONFIG_MEDIA_TUNER_MT20XX=m CONFIG_MEDIA_TUNER_MT2060=m CONFIG_MEDIA_TUNER_MT2063=m CONFIG_MEDIA_TUNER_MT2266=m CONFIG_MEDIA_TUNER_MT2131=m CONFIG_MEDIA_TUNER_QT1010=m CONFIG_MEDIA_TUNER_XC2028=m CONFIG_MEDIA_TUNER_XC5000=m CONFIG_MEDIA_TUNER_XC4000=m CONFIG_MEDIA_TUNER_MXL5005S=m CONFIG_MEDIA_TUNER_MXL5007T=m CONFIG_MEDIA_TUNER_MC44S803=m CONFIG_MEDIA_TUNER_MAX2165=m CONFIG_MEDIA_TUNER_TDA18218=m CONFIG_MEDIA_TUNER_TDA18212=m
boot_ramdisk内でワンセグに関連しそうな箇所
・fstab_dcm.qcom
/dev/block/platform/msm_sdcc.1/by-name/OneSeg /OneSeg ext4 nosuid,nodev,barrier=1,data=ordered,nodelalloc wait,check
・init.geefhd.rc
on emmc-fmt felica seclog mmbi 1seg partitoin format exec /sbin/setup_fs \ /dev/block/platform/msm_sdcc.1/by-name/felica \ /dev/block/platform/msm_sdcc.1/by-name/seclog \ /dev/block/platform/msm_sdcc.1/by-name/mmbi \ /dev/block/platform/msm_sdcc.1/by-name/OneSeg \ no_reboot
on fs-etc felica seclog 1seg mount mkdir /felica 0771 system system mkdir /seclog 0771 system system mkdir /OneSeg 0771 system system
chmod 0771 /OneSeg
chown system system /OneSeg
LGE_BROADCAST_ONESEG { service broadcast /system/bin/libbroadcast_server class main user media group system audio media graphics sdcard_rw LGE_BROADCAST_ONESEG }
・init.rc
LGE_BROADCAST_ONESEG && LGE_BROADCAST_TDMB { onrestart restart broadcast LGE_BROADCAST }
・ueventd.geefhd.rc
LGE_BROADCAST_ONESEG { For 1seg/MMBi device driver /dev/broadcast_isdbt 0666 system system LGE_BROADCAST_ONESEG }
/system/lib/libBML.so に必要な共有ライブラリ libnativehelper.so(○) liblog.so(○) libstdc++.so(○) libm.so(○) libc.so(○) libdl.so(○)
/system/bin/libbroadcast_server に必要な共有ライブラリ libaudioflinger.so(○) libmediaplayerservice.so(○) liblog.so(○) libutils.so(○) libbinder.so(○) libbroadcast_service.so(☓) libc.so(○) libstdc++.so(○) libm.so(○)
/system/lib/libbroadcast_service.so に必要な共有ライブラリ liblog.so(○) libcutils.so(○) libutils.so(○) libbinder.so(○) libmediaplayerservice.so(○) libstagefright.so(○) libmedia.so(○) libandroid_runtime.so(○) libbroadcast_frame.so(☓) libgui.so(○) libc.so(○) libstdc++.so(○) libm.so(○)
/system/lib/libbroadcast_frame.so に必要な共有ライブラリ liblog.so(○) libcutils.so(○) libutils.so(○) libbinder.so(○) libandroid_runtime.so(○) libnativehelper.so(○) libgui.so(○) libc.so(○) libstdc++.so(○) libm.so(○)
Stock
root@android:/ # id
uid=0(root) gid=0(root)
root@android:/ # ls -l /dev/broadcast_*
crw-rw-rw- system system 230, 0 2014-03-23 22:01 broadcast_chkdev0
crw-rw-rw- system system 231, 0 2014-03-23 22:01 broadcast_isdbt
root@android:/ # su system
system@android:/ $ id
uid=1000(system) gid=1000(system)
system@android:/ $
sharedUserIDを削除して、ドロワーに表示されるように。
04-02 07:17:24.698 W/WindowManager( 794): java.lang.RuntimeException: Binary XML file line #31: You must supply a layout_height attribute. 04-02 07:17:24.798 W/dalvikvm( 9165): Exception Ljava/lang/NoClassDefFoundError; thrown while initializing Lcom/lge/oneseg/util/TdmbUtility;
必要なクラスをストックのframework.jarから移植して、地域選択画面が表示されるように。 地域選択をしていくと落ちる。
04-06 10:07:15.087 E/AndroidRuntime( 6390): java.lang.NoSuchMethodError: android.os.IPowerManager.setBacklightBrightness 04-06 10:07:21.994 E/AndroidRuntime( 6602): java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol "_ZN7android7Surface14readFromParcelERKNS_6ParcelE" referenced by "libbroadcast_frame.so"...
アプリ:JDMB.apk
JDMB.apkからlibBML.soをloadLibrary
AndroidManifest.xmlより uses-library android:name="mmb.android.MmbStBmlMw" uses-library android:name="mmb.android.MmbStCtlMw" uses-library android:name="com.nttdocomo.mmb.android.mmbsv.library" uses-library android:name="com.nttdocomo.mmb.android.mmbsv.porting" uses-library android:name="com.lge.broadcast.oneseg" android:required="false"
/system/etc/permissions/XXX.xmlを参照し、必要なjarファイルを用意する。
boot_ramdiskのワンセグ関連を調べること。