久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Android 9.0來了,,插件化將何去何從?

 fishpan_oliver 2018-08-28

在2017年至今各大公司推出的插件化技術(shù)越來越成熟,,發(fā)展到了頂峰,,井噴了許多高質(zhì)量的插件化框架,以應(yīng)對大型App的開發(fā),。但是時不湊巧 2018年,,Google官方祭出了大殺器 -- 禁止調(diào)用私有API(經(jīng)過@hide修飾的方法),也意味著賴以生存的插件化技術(shù)走向了終結(jié),。隨著Android P的發(fā)布,,使用插件化的你做好應(yīng)對方案了嗎?


Hook技術(shù)繞開Android P 系統(tǒng)限制


Google為了不讓開發(fā)者調(diào)用經(jīng)@hide注解修飾的系統(tǒng)api,,可謂下了非常大的功夫,。不過上有政策,,下有對策。經(jīng)過360技術(shù)團(tuán)隊與動腦學(xué)院研發(fā)團(tuán)隊的聯(lián)合攻克下,,可以將app某個單獨的類偽裝成系統(tǒng)類,。會讓Android系統(tǒng)誤認(rèn)為是自己調(diào)用隱藏的API;大家都知道系統(tǒng)是可以調(diào)用隱藏的方法的,。


這如何做到呢,?


在類加載機(jī)制分析中,我們可以發(fā)現(xiàn),,系統(tǒng)的Class是被BootStrapClassLoader加載的,,BootStrapClassLoader也稱為系統(tǒng)類加載器 應(yīng)用層經(jīng)過反射調(diào)用系統(tǒng)的Api最終會調(diào)用BootStrapClassLoader的加載類的方法。


那我們能否將我們apk中定義的某個工具類的ClassLoader變成BootStrapClassLoader呢,?如果能實現(xiàn)那該怎樣才能使工具類能夠正常調(diào)用經(jīng)@hide注解修飾的系統(tǒng)api


答案是肯定可以的,!


查看Android系統(tǒng)源碼    在art/runtime/mirror/class.h頭文件中 有一個SetClassLoader這個函數(shù),該函數(shù)的作用是將ClassLoader添加進(jìn)系統(tǒng)的類加載器集合,,添加進(jìn)去的ClassLoader會成為系統(tǒng)的類加載器,,這個ClassLoader非java對象的ClassLoader類,是虛擬機(jī)內(nèi)核真正做加載類的c 對象,,如何獲取到這個對象呢,?


通過在Android源碼中查找,在art/runtime/well_known_classes.h中剛好有一個函數(shù)ToClass能夠?qū)ava的class 轉(zhuǎn)變成 虛擬機(jī)內(nèi)核中的ClassLoader,, 只不過該ClassLoader在封裝在  該函數(shù)返回的 mirror::Class 結(jié)構(gòu)體的成員變量 reference_中

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多