Tamagnun wrote:Hi m2tk, thank you for interest in my trouble.m2tk wrote:Your run.sh is not called. Can you show us how your widgetlist.xml looks like? Is it:
<widget id="SamyGO">
I write some Main.js to autoscan all USBs for needed files, worked for me.
I agree with you about run.sh is not called at the TV boot time, the question is: WHY?!?!?
The Main.js provided by the developers with the root tool for F-series is yet capable to scan all the USB ports; the tool for F-series is quite different from the one for E-series: during the SamyGo Widget installation (that I performed by using the SammyWidget program, this prg simulates an http server and automatically provides to the TV the right widgetlist.xml file) only Main.js, run.sh and data.zip are copied on the TV, at widget execution (Main.js ran) the AutoStart and libSkype.so are copied into the TV Skype folders, during next TV boot the autostart process will execute a "function" stored into libSkype.so that, because the library had been substituted, will execute run.sh.
Something doesn't work on my TV: widget installation is regular, widget execution also (I have also modified the Main.js to get a copy of the original libSkype.so library before to overwrite it!), but at boot time the new libSkype.so doesn't perfom the planned actions, anyone seems to be capable to explain why...
I've posted the original libSkype.so (and nine guys have downloaded it at the present time!!), I hope someone will be able to explain which are the differences by the modded libSkype.so to explain what happen on my TV!
I ask you a pleasure: do you now a way to execute a bash script from Main.js?
[...]
Regards
Roberto
Code: Select all
//Param="filePlugin.Unzip('"+ Path +"/data/SamyGO.zip','/mtd_rwcommon/widgets/user/SamyGO/')";
//r = eval(Param);
//if (r==1) str = 'OK'; else str = 'No';
//Log("Unzip "+ usbPath +"/data/SamyGO.zip: " + str);
Log('/mtd_rwcommon/widgets/user/SamyGO : ' + filePlugin.IsExistedPath('/mtd_rwcommon/widgets/user/SamyGO'));
Param="filePlugin.Copy('/mtd_rwcommon/moip/engines/Skype/libSkype.so', '"+ usbPath +"/data/libSkype.so')";
r = eval(Param);
if (r==1) str = 'OK'; else str = 'No';
Log("Copy "+ Path +"/data/libSkype.so: " + str);
I propose you to add to Main.js that code. First part is optional and second will test if there is widget installed and copy modified libSkype.so to the usb drive to be sure if it's overwritten. Open it in some hex viewer and search for "SamyGO" (case sensitive).
You must be sure that original libSkype.so was substituted by the one from USB.
Set usbPath to your real usb i.e. '/dtv/usb/sda1' or '$USB_DIR'.
I think that setting Skype in autostart mode is not necessary, that code will probably turn it on:
Code: Select all
Param="filePlugin.Copy('"+ usbPath +"/data/AutoStart', '/mtd_rwcommon/moip/engines/Skype/AutoStart')";
r = eval(Param);
if (r==1) str = 'OK'; else str = 'No';
Log("Copy "+ Path +"/data/AutoStart: " + str);