我是如何在 一加 5T 上運(yùn)行 ARCore 的

在早期的 ARCore sdk 中独令,設(shè)備檢查是在 arcore_client.aar 中的 SupportedDevices.class赚哗,方法可以參考這里

我使用的是 1.1.0 版本嚎货,發(fā)現(xiàn)里面的變化很大,找不到 SupportedDevices 這個(gè)類了宽菜,于是看了半天里面的代碼盼理,發(fā)現(xiàn)設(shè)備校驗(yàn)是通過底層 so 庫做的,并且 sdk 里的 so 又調(diào)用了 ARCore 里的 so智亮,很復(fù)雜忆某,致使上面的反射方法失效

但是還不甘心,在把 ARCore sdk 捋了一遍后阔蛉,我又把 ARCore apk 解壓反編譯了弃舒,看了一下大致的代碼,然后在 apk 的 assets 目錄發(fā)現(xiàn)了一個(gè)叫 device_profile_database 的目錄状原,赫然發(fā)現(xiàn)里面記錄的是一個(gè)個(gè)設(shè)備信息聋呢,在里面發(fā)現(xiàn)了 device_profile_OnePlus5_slash_OnePlus5_colon_7.proto 和 device_profile_OnePlus5_slash_OnePlus5_colon_8.proto 兩個(gè)文件,用對(duì)比工具看了一下颠区,內(nèi)容完全一樣削锰,我覺得 一加 5 和 5t 硬件差別應(yīng)該不大,所以思路就有了毕莱,把這兩個(gè)文件分別拷貝一份器贩,把設(shè)備型號(hào) 改成 5T,然后重新打包安裝

安裝后 ARCore apk 后朋截,運(yùn)行官方 demo 提示的信息變了蛹稍,之前提示的是 "設(shè)備不支持" ,修改過后部服,提示 "創(chuàng)建 session 失敗" 唆姐,查看 logcat 發(fā)現(xiàn)一個(gè)錯(cuò)誤信息:簽名校驗(yàn)失敗,到這里廓八,我覺得有戲奉芦,可以再搞一搞,錯(cuò)誤信息是 native 報(bào)出來的剧蹂,但是我發(fā)現(xiàn)声功,檢查簽名其實(shí)是 java 層做的,在 SessionCreateJniHelper 的 checkApkSignature() 函數(shù)里

@UsedByNative("session_create.cc")
static boolean checkApkSignature(Context var0) throws NameNotFoundException {
    PackageInfo var1;
    try {
        var1 = var0.getPackageManager().getPackageInfo("com.google.ar.core", 64);
    } catch (NameNotFoundException var9) {
        return true;
    }
    // xxx 是很長的 簽名值国夜,這里省略了
    Signature var2 = new Signature("xxx");
    Signature[] var3 = var1.signatures;
    int var4 = var1.signatures.length;

    for(int var5 = 0; var5 < var4; ++var5) {
        Signature var6;
        if ((var6 = var3[var5]).equals(var2)) {
            return true;
        }

        String var7 = var2.toCharsString();
        String var8 = var6.toCharsString();
        Log.w("ARCore-SessionCreateJniHelper", (new StringBuilder(39 + String.valueOf(var7).length() + String.valueOf(var8).length())).append("Signature mismatch.  Expected '").append(var7).append("' got '").append(var8).append("'").toString());
    }
    // 這里是重點(diǎn)
    return var0.getPackageManager().getApplicationInfo(var0.getPackageName(), 128).metaData.getBoolean("com.google.ar.core.disable_security_check", false);
}

代碼的最后一行是重點(diǎn)减噪,即只要在 demo 工程的 AndroidManifest.xml 中的 application 節(jié)點(diǎn)內(nèi)添加如下內(nèi)容即可跳過簽名檢查

<!-- 跳過 SessionCreateJniHelper 簽名檢查 -->
<meta-data
    android:name="com.google.ar.core.disable_security_check"
    android:value="true" />

然后重新運(yùn)行 demo 就順利跑起來了
下面是運(yùn)行圖


OnePlus5T

白天剛搞完這個(gè),晚上 Google I/O 大會(huì)就發(fā)布了 ARCore 1.2 ,然后第二天試了上面的方法依然有效筹裕,ARCore 1.2 增加了 一加 3T 和 6 但是就是沒有 5T 很郁悶
ARCore 1.2 sdk 相對(duì)于 1.1 的變化:增加了 Augmented Image 相關(guān) api醋闭,并且做了代碼混淆

以上

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市朝卒,隨后出現(xiàn)的幾起案子证逻,更是在濱河造成了極大的恐慌,老刑警劉巖抗斤,帶你破解...
    沈念sama閱讀 219,490評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件囚企,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡瑞眼,警方通過查閱死者的電腦和手機(jī)龙宏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來伤疙,“玉大人银酗,你說我怎么就攤上這事⊥较瘢” “怎么了黍特?”我有些...
    開封第一講書人閱讀 165,830評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長锯蛀。 經(jīng)常有香客問我灭衷,道長,這世上最難降的妖魔是什么旁涤? 我笑而不...
    開封第一講書人閱讀 58,957評(píng)論 1 295
  • 正文 為了忘掉前任翔曲,我火速辦了婚禮,結(jié)果婚禮上拭抬,老公的妹妹穿的比我還像新娘部默。我一直安慰自己,他們只是感情好造虎,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,974評(píng)論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著纷闺,像睡著了一般算凿。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上犁功,一...
    開封第一講書人閱讀 51,754評(píng)論 1 307
  • 那天氓轰,我揣著相機(jī)與錄音,去河邊找鬼浸卦。 笑死署鸡,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播靴庆,決...
    沈念sama閱讀 40,464評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼时捌,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了炉抒?” 一聲冷哼從身側(cè)響起奢讨,我...
    開封第一講書人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎焰薄,沒想到半個(gè)月后拿诸,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,847評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡塞茅,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,995評(píng)論 3 338
  • 正文 我和宋清朗相戀三年亩码,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片野瘦。...
    茶點(diǎn)故事閱讀 40,137評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡蟀伸,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出缅刽,到底是詐尸還是另有隱情啊掏,我是刑警寧澤,帶...
    沈念sama閱讀 35,819評(píng)論 5 346
  • 正文 年R本政府宣布衰猛,位于F島的核電站迟蜜,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏啡省。R本人自食惡果不足惜娜睛,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,482評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望卦睹。 院中可真熱鬧畦戒,春花似錦、人聲如沸结序。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽徐鹤。三九已至垃环,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間返敬,已是汗流浹背遂庄。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評(píng)論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留劲赠,地道東北人涛目。 一個(gè)月前我還...
    沈念sama閱讀 48,409評(píng)論 3 373
  • 正文 我出身青樓秸谢,卻偏偏與公主長得像,于是被迫代替她去往敵國和親霹肝。 傳聞我的和親對(duì)象是個(gè)殘疾皇子估蹄,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,086評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容