个人想要了解一下关于系统权限方面的知识,而我又天真地以为只要把app push到/system/app/目录下,app就有系统签名了,也就能获取到系统权限了。但是其实这样是不行的。。。算了,学一下adb命令也行。
参考: How to install user apps as Android system apps
想要把app放到已有系统的/system/app/目录下,有两种方式:
无论是哪种方式,前提手机都要root过才行 ,那么,先来学习如何root。
想要了解root原理的可以看下: Android 的提权 (Root) 原理是什么
可以使用刷机精灵、kingroot等来root手机,个人更推荐 kingroot ,因为我试了刷机精灵失败了,kingroot成功了。
验证root是否成功只需要进入adb shell 然后su切换为root用户,看是否$变成#了,命令行的开头用户名也会变成root,如下所示:
手机root过后就能开始push了,手机系统是android 51
参考: android 安装apk 到 /system/app下面
可以进到/system/app/目录下,ls查看有没有对应的apk,这里我就不贴出来了。到了这一步,我们已经把apk放到/system/app/下了,但是我们还要安装该app呀,执行pm install?不用,这里只需要把对应的apk文件变成可读写可执行,然后重启一下手机,该apk就会自动安装了。可以adb shell后进入/system/app/目录执行ls -l查看对应apk的权限,我看了一下默认移进来后只是可读写,不可执行,所以如果不修改文件权限的话当然就不会安装了。
重启后发现桌面多了一个app,且是不可卸载的,那就代表成功了。
从系统目录中移除文件也是要root权限的,手机root后进入adb shell,切换为root用户,进入/system/app/目录rm 对应文件,然后重启就可以了,如下所示:
如果不行,重新挂载mount -o remount /system,再rm。
答案:我root没成功,所以没下文了。。。
虽然adb shell连接模拟器的时候直接显示的就是root用户,但是实际上 *** 作的时候还是跟没root一样,装了kingroot上去,好久都没成功。于是我又参考 android 模拟器root 这篇文章试了下,在修改读写权限时失败,报以下错误:
查了下说要在sdk\emulator下用命令行启动模拟器,再执行,果然可以了。
第四步push的时候还是提示
个人理解: *** 作system目录不是需要root权限吗,上面所做的目的就是为了获取root,但是命令中又包含需要root才能执行的命令,这行不通吧?(个人见解)
关于push 到/system/app/的知识总结就到这里了,下面要开始验证文章开头我的困惑了。
方法如下:
1、打开拨号界面。
2、点击电话,启动拨号界面,然后输入“##8255##”即可进入GTalk Service
Monitor界面了。
红圈圈住的便是Device ID了。
什么是Device ID?
Android ID用于唯一识别一部设备的一次刷机行为,虽然不能完全确定该设备的唯一性(真的唯一性是用IMEI号的),但是可以很大程度上过滤重复设备。这是移动互联网广告行业的基础,尤其是CPI广告,设备ID是非常重要的。CPI广告是按照实际的安装数量结算的,广告主可以用android id来排除重复的安装。能否传递android id直接影响某些广告是否能在某些地方投放。在RTB行业中,有很多第三方提供数据的公司,他们买卖数据也都是靠的android的id将各种数据对应到用户身上。
以上就是关于Android push app to /system/app/全部的内容,包括:Android push app to /system/app/、如何查看自己安卓手机的Android Device ID、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)