中如何获取在非Root设备中获取应用隐私大数据培训机构 骗局

无论是扫码中毒还是公共WiFi泄密,这些近几年来司空见惯的事情遭到大家痛批,并开始没有来由地恐慌了起来。有意思的是,网络上的舆论竟然没有出现一 边倒的景象,一小撮人居然撕起“iOS和Android孰优孰劣”的问题来,这些人一边笑骂着那些手机被泄密的大傻蛋,一边讥讽政府的无所作为——无责任 的“喷”,不是对诉求不满的泄愤,而是最低成本的自我满足。回到隐私的话题上,个人手机信息安全问题由来已久,它和每个人密切相关,遗 憾的是,尽管这个时代信息化和数据化如此彻底,但大多数人对比并没有一个清楚准确的认知,甚至是一无所知。现实社会和科技如此脱节,就像一个原始人在雷暴 天气下举着一根铁棒一样,这不是一个正常的现象。信息的数据化带来了什么数据化时代的最大特点在于信息的高度透明化,无论是个人、企业还是政府,在享受大数据带来的便利性的同时,也承担了被技术监视的隐患,这是数据经济下难以调和的矛盾。而对于普通的民众而言,智能手机就是对接这个信息网络的接口。伴随着技术的发展,智能手机已经逐渐由简单的通讯工具演化成为个人的数据终端,无论是日常使用的APP还是网页浏览所产生的数据,这些信息只要储存在手机或联网的设备中,就可以在瞬间被拷贝和传播,这也是为什么个人信息的保密会变得如此困难。泄密的实质手机上的个人信息,是以数字化存在的数据,本质上讲,这是应该一种私人的所有物,然而,这种不可触、不可见的私人物品,在“防止偷盗”上太难实现。不同 于现实中的实体物品,被拿走了就没有了,信息拥有“可无限复制”的特性,被复制的人并不会失去原有信息,甚至多数时候连被复制了都不知道。
因此,一旦当这份数据由非公众领域进入了公众领域,就完成了整个“泄密”的过程,而由于整个泄密过程不会有任何提醒,导致了被泄密者在毫不知情的情况下 将隐私暴露到网络上。而且,信息的复制成本很低,可以在瞬间就被拷贝无数份并无限、多向传播,造成了一种“无法撤回”的特性,数据就在网络上永久留存。绝大多数的泄密事件在于手机上保存的隐患数据过多,尽管有一部分人会有意识地对数据进行删除处理,然而这些“删除”的操作无法真正地将数据消除,通过一定的手段可以被恢复,这就大大增加了隐患数据的被窃和二次利用的概率。圆形监狱——一种无时不刻都在被“监视”的假设由一个中央了望塔楼和四周环形的囚室组成,每个囚室有一前一后两扇窗户,一扇朝着中央塔楼,一扇背对着中央塔楼,作为通光之用。使得处在中央塔楼的监视者可以便利地观察到囚室里的罪犯的一举一动。1785年,英国哲学家杰里米·边沁提出了这种“经济且人道”的监狱设计,困在监狱中的囚徒无法看到躲在百叶窗后面的狱警,但狱警却对没有任何隐私保护 的囚徒了如指掌。因为不知道是否被监视以及何时被监视,所以囚徒们都会产生一种无时不刻都在被监视的假设,只能时时刻刻逼迫自己循规蹈矩。
边沁的圆形监狱设计,原本只是一种实现犯人“自我监禁”的方法,而在后来法国哲学家米歇尔·福柯的眼中,圆形监狱成了一个完美的权力实施机构,是一种被还原到理想状态的权利机制示意图。大数据时代的信息监视,暴露了所有社会成员的个人隐私和信息数据,这种监视不仅仅在于互联网上的话语表达,还渗透到了网络生活的方方面面,隐私的透明化 和个人信息的二次使用,让所有人都不知不觉地深陷数字化的“圆形监狱”。不同之处在于,这里的“圆形监狱”更加隐秘,大多数人并不会对技术感到恐慌,因为 他们更享受技术所带来的满足。信息的数据化和个人隐私之间的矛盾乔治·奥威尔在 1949年出版的《一九八四》中刻画了一个令人窒息和恐惧的极端的极权主义社会,这个社会的权力架构体系和边沁的“圆形监狱模型”有着异曲同工之妙——权 力顶端的“Big Brother”(老大哥),通过“Newspeak”(新话)钳制人们的思想和本能,通过“Telescreen”(电幕)监视和监听人们的行为——一 种绝望的反乌托邦式社会。
早在Web 2.0时代,互联网就被形容成《一九八四》中的“Big Brother”,表达了人们对于被监视的恐惧和隐私得不到保障的恐慌。不过,信息社会的“技术监视”和政治意义上的“权力监视”是不同的,它是技术发展 的伴生物,而非权力的暴力执行,至少,在大多数情况下,我们每个个体都是“自由人”。矛盾就在于,数据经济下的互联网要求最大化的实现信息交流和共享,每个个体的数据和信息都是维系和强化这个体系的资源和基础,因此,处在这个时代中的每个人不可能有绝对的隐私,每个人或多或少都将自己的隐私暴露在公众的视野中。并非杯影蛇弓,信息泄露的途径已经无处不在由于个人信息数据和隐私不断的数据化和集中化,或多或少都会在终端设备以及云端留下“痕迹”,所以现在很难保证信息和隐私的绝对安全。而且随着互联网以 及移动终端产业链的推进,手机信息安全已经不仅仅是局限于“黑客入侵”的范畴,甚至手机厂商或应用厂商都可能是造成你信息泄露的元凶。此外,除了个人信息和隐私泄露,恶意扣费以及伪基站的短信诈骗等都成了目前手机常见的安全问题。所以,我们接着来聊聊个人信息以及隐私泄露的主要途径。系统隐私权限被越界获取首先,手机等移动终端本身的系统安全也决定了我们个人信息和隐私是否存在泄露的风险,而这部分安全保护包括手机系统本身的安全机制以及漏洞的修复。譬如 iOS系统的沙盒机制,限定第三方程序的数据储存在独占的空间,并且只能访问该空间的文件内容,从而限制第三方应用恶意的操作范围。而Android系统 没有沙盒机制,则靠权限管理中心来管理部分敏感的信息访问。如果第三方应用或恶意插件能够绕过沙盒机制或权限管理中心,那便意味着我们 个人信息和隐私会随时会泄露。比如,我们手机使用的输入法如果能越界获取访问隐私信息等权限,便会我我们隐私信息造成威胁,甚至还可能泄露我们输入的账号 密码信息。此外,有些游戏软件之所以存在乱扣费的现象,很大部分也是因为其能获取“短信发送”的权限,从而偷偷发送短信购买一些收费业务。
如根据DCCI的一份检测数据显示,2015年Android手机游戏对隐私权限获取有着增长的趋势,高达90%左右的Android游戏都能获取“读 取位置信息”、“访问取系人”、“读取信息记录”和“发送信息”等权限。假如应用厂商存在利益博弈的话,也有可能盗取我们的个人信息。所以,我们要注意软 件权限的管理,谨慎选择越狱iOS设备以及Root安卓系统设备。此外,也要防范恶意软件。第三方应用的恶意插件现在有很多手机安全问题都与第三方恶意应用软件的引入有关,特别是相对比较开放的Android系统。而所谓的恶意软件便是那些捆绑插件或者恶意程序的 应用软件,而这些插件可能会刻意引导安装其它应用或者订购收费服务,甚至盗取用户信息资料。所以,我们普遍建议网友选择正规的渠道购买安装第三方应用软 件。但是,这样就能完全杜绝第三方应用程序的恶意插件么?
答案是否定的。比如苹果iOS平台早前的“XcodeGhost”事件,被公认为相对安全的苹果应用商店中有大量应用软件感染了一种名为 “XcodeGhost”的病毒。而该种病毒不仅能窃取用户信息,甚至还可以模拟收费或账号弹窗来窃取用户的iCould或iTunes的账号和密码。所 以说并没有所谓绝对的手机安全,但使用正规应用商店提供的应用软件仍是规避恶意软件的最佳方法。此外,现在更有不法分子通过诱导的方式来引导我们安装带有病毒或恶意插件的应用,如通过扫二维码引导我们下载带有病毒的应用或者进入钓鱼网站,从而盗取我们重要的个人信息。网络安全导致泄露问题近年来,手机因网络安全问题而泄露个人信息的事件也是司空见惯,如某用户因连接公共WiFi后支付宝被盗刷的新闻亦是不绝于耳。由于我们的手机等移动设备连接WiFi使用时,手机等设备对互联网连接的请求将通过热点以及路由器转发至互联网,而互联网对用户请求的响应则同样通过热 点以及路由器转发回手机等设备上面。因些,这个过程中产生各种各样的数据都必须通过热点或者路由器来传输。那么,黑客或不法分子如果便能通过假冒的公共 WiFi诱导我们连接使用,然后在路由器等节点能截取我们重要的个人信息。而有效防范这些网络安全而引起的手机安全问题便是谨慎使用公共WiFi。事实上,上述仅是叙述了常见的几种泄露途径。此外,使用云服务、手机丢失等都有可能造成个人信息和隐私的安全,如早前有大批好莱坞影星因icloud泄露的艳照事件。总的来说,随着手机慢慢成为我们个人信息数据化的入口,我们个人信息泄露的途径也在不断增加。如何防范?首先,在谈及如何防范的问题之前,需要明确的一点是,如何界定一个自然个体的个人隐私,或者说,对于你而言,什么才是隐私?隐私的本质是什么互联网刚起步的时候,人们对隐私的界定非常严格,甚至是一张普通的个人照片在网络上流传都会被视为“侵犯隐私”,这种行为就像被翻开了日记本一样难以容 忍——互联网之所以会被看成是《一九八四》中的“Big Brother”,很大一部分原因在于当时人们在面对互联网这种初生的事物所产生的不信任,以及出于对个人信息和隐私的自我保护。
当然,现代的人对于隐私范围的界定似乎已经缩小了很多,人们对窥视隐私的容忍度随着技术和时代的前进逐渐变高,这是数据经济下的必然结果,那么,对于一个人而言,什么才是真正的隐私,或者说,隐私的本质是什么?首先,隐私是一种信息,互联网时代这种信息可以被称作是数据,一种附带了物理个体(包括人、组织、企业等)属性的数据,当数据以单独的姿态被认知的时 候,数据本身并不算隐私。而当数据和这个物理个体产生了关联,并被人获知的时候,数据就变得敏感了起来。简而言之,数据的本身和数据与物理个体之间的关 联,才能形成隐私。如何进行有效的防范?隐私的泄露本身不是最可怕的,最可怕的是对信息的过分使用以及牟利行为,在政策无法行之有效地落实到对个人隐私保护的行动上时,首先要学会如何防范。第一点,也是最重要的一点,要树立个人的隐私保护意识。大多数人都知道每个人的隐私权得到法律的保护,但是在隐私保护的意识上却稍有欠缺,因此,在使用 手机的时候应当时刻注意,特别是在应用的权限管理和公共WiFi的使用上,要有随时防范的意识,在最大程度上降低隐私泄露的可能性。其次,针对前文中提到的泄密途径,多数不安全的链接或应用都是一些不安好心的人利用人们的心理进行引导点击或安装,因此,最大限度地保证自己信息的安全就是在正规渠道下载安装应用,不访问未知站点等。此外,警惕一些私人的公共WiFi,多数时候人们为了节省流量,会选择连接免费WiFi——这就导致了一种“去到任何一个公共场所首先问有没有WiFi”的情况,而个人的流量数据就在不知不觉中暴露在公共领域中。最后是手机尽量不要ROOT和越狱,现在厂商对系统做了许多功能和性能上的优化,已经不想几年前那样需要依靠ROOT来添加更过的功能或获得更佳的体验了。特别声明:本文为网易自媒体平台“网易号”作者上传并发布,仅代表该作者观点。网易仅提供信息发布平台。
一键安装官方客户端
重大事件及时推送 阅读更流畅
http://crawl.nosdn.127.net/nbotreplaceimg/807fb39cdf0a2cc26bd7c0ecee99ebb1.jpg天极传媒:天极网全国分站
您现在的位置:
& >&手机ROOT危害大 小心你的隐私被窃取
手机ROOT危害大 小心你的个人隐私被窃取天极网手机频道 15:57
  【天极网华南】对于玩机圈的朋友而言,通过第三方软件对手机进行Root的方式来获取更高的权限是再熟悉不过的了,很多网友拿到手机的第一步就是在网上绞尽脑汁的找Root方法,为什么网友热衷于Root?智能手机Root后又有哪些利弊呢?今天编辑就和大家一起来聊一聊智能手机Root的那些事。
Android手机Root有风险
  Root的定义
  Root的字面翻译成汉语是“根”的意思,但是在Linux系统以及Android系统是指超级用户的意思,类似于Windows系统中的Administrator,Root具有系统中所有的权限,如启动或停止一个进程,删除或增加用户,增加或者禁用硬件等等。我们所谓Root权限,实际上代表着获取该手机的最高的权限。
  Android是基于Linux开发的,而Linux是一个多用户共存的,为了避免一些用户对系统进行一些恶意或错误的操作,Linux对用户的权限进行了分级和限制,不同的用户被授予不同的权限,这也是Android用户获取Root权限的由来。
  通过Root获得的最高权限又与Windows系统中的最高权限不同,在Windows系统中,拥有最高权限的是System用户,而管理员最多拥有管理硬件、软件和其他用户的权限,但不能管理系统自身,例如修改和删除系统文件。但在Linux中,Root用户可以对整个磁盘进行格式化操作,因为他们拥有整个系统的绝对控制权限。
  为什网友热衷于手机Root
  获得手机超级权限有哪些作用?为什么越来越多的网友热衷于Root手机权限?带着这样的问题,小编采访随机采访了一些用户,其中近三成用户不知道Root是什么,四成的用户对root的概念很模糊,但是会给手机进行ROOT,只有三成多一点的用户对root意义明确,并表示经常帮助身边的朋友的手机进行ROOT工作。尽管每个人的Root手机的原因或多或少有一定的区别,但是,编辑分析总结了一下,大多人Root手机主要出于以下几个目的:
  1、 卸载系统自带软件
  手机出厂时会预装一些软件,这些软件通常无法卸载,必须Root后获取手机的最高权限才可以卸载(用户普遍认为自带的软件过多会影响手机的运行速度,所以拿到手机后会卸载一些自认为无用的预装APP)。
  、 安装一些特殊的软件
  有些软件必须Root拥有系统最高权限后才可以安装。如手机游戏作弊器、刷分神器等。
  、 启用或禁用自启动程序
  通过Root获取最高权限,可以设置启用或禁用某些自启动程序,即设置某些程序是否随系统一起启动。
  、 刷机
  很多玩家喜欢给手机刷不通的ROM,在刷机中寻找快感,但是第三方刷机软件的第一步就是要求用户root手机,然后涮第三方recovery才能刷机,所以被迫给手机进行Root。
  、 好奇
  还有极少数部分用户对于手机的Root没有清晰的认识,纯粹出于好奇心去Root手机,Root成功后有一种刺激感。
ROOT主要有两种方式:机子上安装ROOT软件或者通过PC端来ROOT
  Root的利与弊
  获得手机的root权限,提升了用户的用机乐趣,Android手机Root后,通过禁用自启动程序,卸载系统自带软件,确实有助于提升手机的性能,但是任何东西都有双面性,Root成功后对于手机的安全性能还存在一定的潜在风险。
  1、硬件危害
  手机Root一般情况下不会对硬件造成危害。但Root后可能会导致一些数据出错或丢失,比如改变充电电流或功率等,从而烧坏手机的。
  笔者曾Root一部手机,卸载了一些手机自带软件,虽没有出现元器件烧坏的情况,但充电时间明显变长,待机时间明显缩短,并伴有发热的现象。经技术人员分析,主要原因Root后待机电流变大。重新刷回原机系统,上述故障才得以改善。
  2、系统危害
  手机Root后,因为一些系统数据的丢失或出错,可能会出现一些系统问题,比如手机变板砖无法开机,不停的重启无法进入桌面,触屏失灵,WIFI或蓝牙失效等意想不到的系统故障。
  此外,手机Root后,还可能造成系统不稳定。身边就有朋友反映说,手机Root后,手机反而变得更卡了;运行一些软件时,还出现了闪退的现象。
  3、软件危害
  手机Root后,可能还会造成一些软件无法正常使用。笔者在对上面提到的那部手机Root后,除了出现充电缓慢、待机缩短、发热等故障外,照相功能也出现了异常,照相时无法正常预览画面,拍的相片发暗。刷回原机系统后,照相功能恢复正常。
  4、信息泄漏风险
  手机Root后,给我们使用手机带来了较大的自主权,但同时也给恶意软件打开了方便之门。恶意软件可以比平常更容易侵入到我们的手机,并潜伏在我们的手机伺机而动。当我们登录、淘宝、手机银行或其他账户时,我们的个人信息可能就会被人窃取,甚至我们的个人财产也会存在被人盗取的风险。
  5、影响保修
  目前各大手机厂商对于手机Root后有三种售后处理政策:
  第一种、手机Root后,不再享有保修的权利,且刷回原系统需收费。
  第二种、手机Root后,若IMEI号丢失,不再享有保修的权利,且刷回原系统需收费;若IMEI号丢失,三包期内可继续享有保修的权利,但刷回原系统需收费。
  第三种、手机Root后,三包期内继续享有保修的权利,刷回原系统也不收费。
  绝大部分手机厂商执行的是第二种售后政策,只有极少数的手机厂商执行的第一种或第三种售后政策。所以如果Root失败或出现故障时,需要去进行售后处理,消费者都一般需要付出费用的代价。即便少数厂商刷机不收费,也可继续保修,若Root失败或出现异常,也会浪费消费者很多时间和精力,而且要接受手机暂时无法正常使用带来的不便和麻烦。
ROOT时候选择常用的ROOT工具,降低风险
  手机Root须谨慎
  Android的手机吃硬件是圈内公认的事实,早期的android手机受困与硬件的技术瓶颈,手机的硬件配置普遍偏低,系统运行非常的缓慢,于是,一些专业玩家为了提升手机的运行速度,获取手机的Root权限,通过禁用启动程序和删除系统预装无用的的方法,一定程度上提升可系统的运行流畅度。
  但是,随着手机硬件的不断更新换代,成为标配,满天飞的时代,尽管编辑不认同硬件性能过剩这一说法,但是足够保证了系统的运行流畅度,同时,越来越多的手机厂商参与ROM优化和开发中来,系统的纯净度已经大大提升,一些预装的第三方软件也没有必要通过Root权限来卸载,更没有必要Root禁用自启动程序。
   任何东西都有它的双面性,同样,手机Root是一把双刃剑,对于有经验的手机达人,玩机需要精通Root,通过Root手机来找一些乐趣无可非可。但对于普通用户来说,手机更多的是以日常通讯以及上网/社交朋友圈为主,完全没有必要通过Root来增加用机风险。
(作者:矮佛僧责任编辑:李德禄)
天极新媒体&最酷科技资讯扫码赢大奖
* 网友发言均非本站立场,本站不在评论栏推荐任何网店、经销商,谨防上当受骗!
主屏尺寸:5.0英寸
分辨率(像素):
CPU厂商:高通CPU
CPU型号:高通骁龙801(MSM8974AC)
3G制式:联通WCDMA
处理器核心:四核处理器
操作系统版本:MIUI V5(基于Android OS 4.4)
内存大小:RAM 3GB+ROM 16GB
电池容量(mAh):3080mAh
后置摄像头像素:1300万
前置摄像头像素:800万
蓝牙通信:支持
WIFI功能:支持WIFI
网上商城商品/规格/促销价格
整机数码游戏软件root的手机隐私监控开启是干什么呢?_百度知道
root的手机隐私监控开启是干什么呢?
答题抽奖
首次认真答题后
即可获得3次抽奖机会,100%中奖。
采纳数:206
获赞数:3078
监控软件里面涉及到隐私的内容,比如通话记录、通讯录等
监控不被泄露吗!?
监控到有软件涉及到隐私后,可以选择卸载软件或者用手机管家之类的软件将被监视项关掉继续使用软件
为你推荐:
其他类似问题
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。Android 平台很多应用都会读取通讯录,如何彻底禁止这些读取行为?
Android 平台很多应用都会读取通讯录,如何彻底禁止这些读取行为?
不单是通讯录,还有其它隐私性数据,有什么方法或软件能保护好自己的隐私?
root是前提,因为Android自身不提供该功能
接下来就有很多办法:
1,最简单的是用LBE/手机毒霸这样的工具,有的设备是预装LBE(后面会提到)的。但这意味着你需要借助一个第三方商业公司的力量。
2,功能最强大的是PDroid Pathcer,但仅适用于Android 2.3以及AOSP/CM等第三方的Android 4/4.1/4.2。它会给系统的android framework打上补丁,提供这些审查信息的接口。这个工具是开源且非商业的,但使用时可能会遇到困难。
3,lucky patcher以及CM7.x的权限管理,原理等同于在AndroidManifest.xml中删除相应条目。这两个工具均是非商业的,而CM是开源的。
4,肯定还有许多这里没有列出的
--------------------------------
除此以外,还应该学习使用elixir2(可能是个人的免费商业作品)/或者是component manager(非商业,开源)来审查应用程序注册的service/receiver
以控制后台自启动/服务的权限。
原理通过shell执行"pm disable"
--------------------------------
以下是不需要解锁/root,总之不影响保修的情况下能获得的权限:
所有的Android都能全局地禁用(A)GPS,蜂窝网络(以及通过wifi信息)的定位;蜂窝网络,Wifi网络联网。但是应用程序可以获取足够的权限,在wifi开关可以获得和使用者相同的权力。
Android 4开始均提供了原生的联网流量监测工具,并且允许指定特定的应用程序,或全局地不能在使用蜂窝网络时后台联网(该工具不能阻止前台联网)。Android 4开始,允许“停用”安装在system/分区的不能卸载的应用程序。这个停用类似于通过adb shell执行的"pm disable",但应该是直接使用android framework中的接口
Android 4.1/4.2提供了原生通知权限的管理
------------------------------------
但是,如果要希望android提供这样的场景:
某一个应用程序索取包括联系人名单/定位信息在内的敏感信息,你不允许,但依然让这个应用程序运行,而不干涉到别的应用程序的设置。
在维持保修(像魅族小米这样的排除在外,它们的一些设备默认内置了su binary,是可以利用root权限的)的前提下不要指望它,通常你只能在iOS,黑莓设备上遇到这样的场景。
我的猜测是
打包安装器和play market在安装应用程序以前,会强制地告诉使用者,该应用程序索取了哪些对象的访问权限,使用者只有接受和放弃两个选择,没有中间道路。而这些就是google希望开发者和使用者接受的规则。google自己是最大的广告公司,如果为用户提供更为激进的隐私控制可能不符合它的利益(比如android难以推广)
当大部分应用程序都是在play store中下载安装的话,不太好的应用程序会被市场规律/宏观控制给排挤掉,所以你会注意到那些有名的外国应用都能很好遵循“最小权限”的制度,如果应用程序本身没有需要,它们就是不会索取联系人/电话/位置信息/设备序列号。
可是play store在内地基本上没有份额。内地的应用市场又是极端碎片化的,是战国时代。
----------------------------------------
所以需要付出代价:
LBE这种最简单,但是它希望你用上它的起动器,用上它的其它管家类服务,它会希望使用者按照它的商业利益,把它/它的合作伙伴作为手机上的入口。它的所有产品都是为了挣钱服务的。
PDroid Patcher在使用上可能是最理想的,它仅会按照使用者的需求,阻止应用程序获取相应的敏感对象(而且能控制的对象数目很丰富),甚至可以欺骗诸如陌陌这样的应用,给它发送一个伪造的串号。PDroid不包含商业因素,占用的内存可能也是最小的,然而,部署PDroid很困难,有经验的使用者才能完成这一任务。
稍微展开一下:在ICS/JB系统上部署PDroid1/2需要准备JDK(6和7均可),所使用的刷机包,windows用户还需要按照指示设定好cygwin,并至少安装某些组件,如diff;然后进入terminal(cygwin),输入一行命令,补丁会在几分钟后完工。把手机启动到recovery环境,刷入该补丁包,重启进入android,安装Pdroid的管理端app,到此为止PDroid部署完成。
Lucky Patcher一开始是一个用于去除应用的google广告/收费验证的,嗯,从后者来讲,它可能是一个非法的工具。新版的Lucky Patcher可以更改每一项android.permission.*项目的需求。这个方法很粗暴,容易造成崩溃。CM7.x的权限吊销的原理和Lucky Patcher差不多。
五种控制Android应用的权限的方法
没有更多推荐了,使用命令行ls命令的Android文件浏览控件,适合于root过的设备,可以读取系统文件
package talent.
import java.io.F
import java.util.ArrayL
import java.util.A
import java.util.L
import android.content.C
import android.content.res.TypedA
import android.os.B
import android.os.H
import android.os.M
import android.util.AttributeS
import android.view.LayoutI
import android.view.V
import android.view.ViewG
import android.widget.AdapterV
import android.widget.BaseA
import android.widget.ImageV
import android.widget.ListV
import android.widget.TextV
public class FileView extends ListView{
private FileA
public interface OnPathChanged{
abstract boolean onChanged(String old,String path);
public void SetOnPathChangedListener(OnPathChanged listener){
if(browser==null)
browser.onChanged =
public FileView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
public FileView(Context context, AttributeSet attrs) {
super(context, attrs);
TypedArray a = context.obtainStyledAttributes(attrs,R.styleable.FileView);
String path = a.getString(R.styleable.FileView_path);
a.recycle();
if(path!=null)
browser.SetPath(path);
public FileView(Context context) {
super(context);
private void init(){
browser = new FileAdapter();
setAdapter(browser);
setOnItemClickListener(onItemClick);
private OnItemClickListener onItemClick = new OnItemClickListener(){
public void onItemClick(AdapterView&?& arg0, View arg1, int arg2,long arg3) {
//com.Logi("item:"+arg2);
if(!browser.OpenChild(arg2)){
com.Toast(arg1.getContext(),"folder is empty or can't open");
/**goto parent folder,return false if no parent folder.*/
public boolean Up(){
return browser.Up();
public void SetPath(String path){
browser.SetPath(path);
public String GetPath(){
return browser.GetPath();
class FileAdapter extends BaseAdapter{
private String path = "/";
private List&FileInfo& contents = new ArrayList&FileInfo&();
protected FileView.OnPathChanged onC
Console cs = new Console();
private final static int BROWS_MODE_SU = 1,
BROWS_MODE_APK = 2;
private int mode = BROWS_MODE_SU;
private class FileInfo{
FileInfo(String name,int id){
boolean IsFolder(){
return R.drawable.icon_folder==IconId;
public boolean SetSUMode(){
mode = BROWS_MODE_SU;
public void SetAPKMode(){
mode = BROWS_MODE_APK;
SetPath(path);
public FileAdapter(){
cs.SetOnOutput(onConsoleOutput);
if(!cs.Create())
SetAPKMode();
public int getCount() {
return contents.size();
/**return a File Object*/
public Object getItem(int position) {
if(position&=contents.size())
return contents.get(position);
public long getItemId(int position) {
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
LayoutInflater inflater = LayoutInflater.from(parent.getContext());
convertView = inflater.inflate(R.layout.item_explorer,null);
FileInfo fi = contents.get(position);
ImageView iv = (ImageView)convertView.findViewById(R.id.explorer_iv_image);
iv.setImageResource(fi.IconId);
TextView tv = (TextView)convertView.findViewById(R.id.explorer_iv_text);
tv.setText(fi.Name);
return convertV
public void SetPath(String path){
com.Logi(path);
if(path==null||path.length()==0)
path = "/";
contents.clear();
notifyDataSetChanged();
if(onChanged!=null) onChanged.onChanged(this.path,path);
this.path =
if(this.mode==BROWS_MODE_APK){
File file = new File(path);
String[] fnl = file.list();
com.Logw("fnl:"+fnl);
File[] fl = file.listFiles();
if(fl==null){
com.Loge("init path:"+path);
Arrays.sort(fl);
folderInsertPos = 0;
for(int i=0;i&fl.i++){
insertByFile(fl[i]);
notifyDataSetChanged();
}else if(mode==BROWS_MODE_SU){
String cmd = "ls " +
if(!cs.Exec(cmd))
SetAPKMode();
public String GetPath(){
public boolean OpenChild(int index){
if(index&0||index&=contents.size())
FileInfo fi = contents.get(index);
if(!fi.IsFolder())
if(path.equals("/")) path = "";
SetPath(path+"/"+fi.Name);
public boolean Up(){
File file = new File(path);
File root = file.getParentFile();
if(root==null)
SetPath(root.getPath());
private Console.OnOutput onConsoleOutput = new Console.OnOutput(){
public void onOutput(String str) {
Message msg = new Message();
msg.what = MSG_NOTIFY_STR;
Bundle bundle = new Bundle();
bundle.putString("output_str",str);
msg.setData(bundle);
notifyHandler.sendMessage(msg);
private int folderInsertPos = 0;
/**insert FileInfo object in contents set,and position by name*/
private void insertByName(String str){
String fp = path + "/" +
File file = new File(fp);
insertByFile(file);
private void insertByFile(File file){
if(file.isDirectory()){
icon = R.drawable.icon_
contents.add(folderInsertPos,new FileInfo(file.getName(),icon));
folderInsertPos++;
if(file.isFile()){
icon = R.drawable.icon_
icon = R.drawable.icon_
contents.add(new FileInfo(file.getName(),icon));
private final static int MSG_NOTIFY_DATA = 1,
MSG_NOTIFY_STR = 2;
private Handler notifyHandler = new Handler(){
public void handleMessage(Message msg){
if(msg.what==MSG_NOTIFY_STR){
String str = msg.getData().getString("output_str");
if(str.length()==0)
String[] fns = str.split("\\|");
Arrays.sort(fns);
folderInsertPos = 0;
for(int i=0;i&fns.i++){
insertByName(fns[i]);
notifyDataSetChanged();
}else if(msg.what==MSG_NOTIFY_DATA){
}package talent.
import java.io.DataInputS
import java.io.DataOutputS
import java.io.IOE
public class Console{
private boolean notExit =
private ReadThread readTh = new ReadThread();
private DataInputS
private DataOutputS
private OnOutput onO
public interface OnOutput{
void onOutput(String str);
/**must call this function or thread will not terminate*/
public void Close(){
if(input!=null){
input.close();
} catch (IOException e) {
com.Loge("Console.Close input:"+e.getMessage());
public boolean Create(){
// 经过Root处理的android系统即有su命令
process = Runtime.getRuntime().exec("su ");
} catch (IOException e) {
com.Loge("Console.Create:"+e.getMessage());
} catch (SecurityException e){
com.Loge("Console.Create:"+e.getMessage());
output = new DataOutputStream(process.getOutputStream());
input = new DataInputStream(process.getInputStream());
readTh.start();
public boolean Exec(String cmd){
output.writeBytes(cmd+"\n");
output.flush();
} catch (IOException e) {
com.Loge("Console.Exec:"+e.getMessage());
class ReadThread extends Thread{
public void run() {
String outstr = "";
while(notExit){
int len = input.available();
if(0==len){
if(onOutput!=null) onOutput.onOutput(outstr);
outstr = "";
String str = input.readLine();
if(str==null)
outstr += str + "|";
} catch (IOException e) {
com.Loge("Console.Thread.run:"+e.getMessage());
public void SetOnOutput(OnOutput opt) {
onOutput =
Android应用获取root权限,修改系统文件
怎么在Android手机没root的情况下读取手机系统文件(比如数据库文件)
Android设备不root,从App目录下拷贝文件
Android 修改系统文件 访问权限
Android手机文件系统操作——轻松存储与获取手机文件
adb进入root权限并修改系统文件目录为可读写
Android真机获得root权限修改文件权限
Android逆向之旅---Android中如何获取在非Root设备中获取应用隐私数据
Android设备Root检测方法
Python easyGUI 文件浏览 显示文件内容
没有更多推荐了,

我要回帖

更多关于 大数据时代 的文章

 

随机推荐