i8320 ipk包相关
顺着tangoGPS的ipk包看了看,发现ipk就是一个标准的ubuntu deb包,用ubuntu的dpkg --build 生成的deb包,改后缀为ipk后,在shell环境下,ipkg-cl可以处理,里面的postinst脚本也可以正常执行,也就是说,用这个方法生成的ipk包,在telnet情况下是可以正常安装软件的,包括生成桌面图标等。但要在telnet里安装软件包,这样做对于一台手机来说,是非常不现实的。
更为可惜的是,在手机的文档管理器里,虽然认出了ipk格式,并且可以执行,而且包里的文件也确实在相关目录中解开了,但最后还是有报错:Failed:Unable to install %s. File invalid 。对应i8320的另一个命令行工具pkg-tool的提示信息,说ipk包与标准的ipkg包并不一样,有理由可以猜测,三星在ipkg包里加了自己的特定文档,用于处理插入数据库,生成桌面图标的一部分。但关于这部分的资料,目前为零。。。
tangoGPS的移植者mdalex用了另外的方法来绕开telnet,就是写自己的安装程序。但这样做还不是最完美的,必须要先刷一刷他提供的ROM.
PS:解开deb包的方法如下:
使用ar命令解开.deb包 ar vx test.deb 解开之后会得到三个文件 debian-binary control.tar.gz data.tar.gz 使用 tar 解开 data.tar.gz 即可得到deb文件中的数据文件 tar -xzvf data.tar.gz
原生软件开始出现,使用标准ipk来telnet安装始终是不便。昨天再研究了一下,有了些微进展。贴出来供同好作些参考,人多力量大。
直接用文本编辑器打开/usr/lib/下的 libpkgmgr.so.0.0.0,通过提示文本找到一些有用的东西。比起标准的control文件,三星的ipk多了几个项目,分别是:Model,AppExecFile,Vendor,Icon,在添加了这几个元素之后,打包出来的ipk,可以在手机的文件浏览器安装,但依然存在问题,连续安装两次的情况下会提示安装完成,可以生成程序的目的目录,但里面是空的,不知道是目录结构的原因还是其他,可惜我的汇编不行,否则跟一跟应该有帮助。总之,应该是越来越接近目标了。
1.第一次安装报错,第二次安装提示安装完成
2. 运行的话,会提示无效。
不知道算好消息还是坏消息。打包的 ipk 终于可以在手机的文件管理器中顺利安装,图标可在桌面立即显示,注册表也写成功。但,点击桌面图标后程序无法启动。遇到瓶颈了,莫非要走回telnet安装的老路?
安装调试可以使用命令行工具pkg-tool
1.control 文件要素,跟之前贴中的一样。
2. 包源文件结构:
3.安装后注册表信息:有一点比较可疑,AppExec没有指向具体的应用程序。
EUZEN 博客上的回复摘录:
先建立一个目录如ipkg_test,再在ipkg_test里按图2所示建立目录,即ipkg_test里有DEBIAN和RES两目录。
1.DEBIAN里有文本文件control,按图1写好软件的相关配置,DEBIAN目录里,除control外不要有其他文件,包括编辑control时生成的临时文件。
2.RES目录里放置安装后的文件。如程序和图标等。
退回ipkg_test目录上一级,执行命令 dipkg -b ipkg_test ipkg_test.ipk 即可打包一个ipk。
多谢 的尝试并纠正我之前犯的错误。ipkg包可以安装了!完全不用人工干预。
我之前的错误是 AppExecFile那一行,:号前多了一个空格。
================================================
相关链接:
阅读(3903) | 评论(0) | 转发(0) |