/* Ċ Ġ* ĠTencent Ġis Ġplease d Ġto Ġsupport Ġthe Ġopen Ġsource Ġcommunity Ġby Ġmaking ĠTencent ĠShadow Ġavailable . Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 9 ĠTH L ĠA 2 9 ĠLimited , Ġa ĠTencent Ġcompany . Ġ ĠAll Ġrights Ġreserved . Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠBSD Ġ 3 - Clause ĠLicense Ġ( the Ġ" License "); Ġyou Ġmay Ġnot Ġuse Ċ Ġ* Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ċ Ġ* Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttps :// opensource . org / licenses / BSD - 3 - Clause Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ* Ċ Ġ*/ Ċ Ċ package Ġcom . tencent . shadow . core . loader . b locs Ċ Ċ import Ġandroid . content . Context Ċ import Ġcom . tencent . shadow . core . loader . exceptions . Parse Plugin A pk Exception Ċ import Ġcom . tencent . shadow . core . runtime . Plugin Manifest Ċ Ċ object ĠCheck PackageName Bloc Ġ{ ĊĠĠĠ Ġ@ Throws ( Parse Plugin A pk Exception :: class ) ĊĠĠĠ Ġfun Ġcheck ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplugin Manifest : ĠPlugin Manifest , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhost AppContext : ĠContext ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( plugin Manifest . application PackageName Ġ!= Ġhost AppContext . packageName ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/* ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ è¦ģæ±Ĥ æıĴä»¶ åĴĮ å® ¿ ä¸» åĮħ åĲį ä¸Ģèĩ´ æľī ä¸¤ æĸ¹ éĿ¢ åİŁåĽł ï¼ļ ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 . æŃ£å¸¸ çļĦ æŀĦå»º è¿ĩç¨ĭä¸Ń ï¼Į a apt ä¼ļ å°Ĩ åĮħ åĲį åĨĻåħ¥ åĪ° ar sc æĸĩä»¶ ä¸Ń ãĢĤ æıĴä»¶ æŃ£å¸¸ å®īè£ħ è¿Ĳè¡Į æĹ¶ ï¼Į å¦Ĥæŀľ ä»¥ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġandroid . content . Context . get PackageName ä¸º åıĤæķ° ä¼ł ç»Ļ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġandroid . content . res . Resources . getIdentifier æĸ¹æ³ķ ï¼Į åı¯ä»¥ æŃ£å¸¸ èİ·åıĸ åĪ° èµĦæºĲ ãĢĤ ä½Ĩæĺ¯ åľ¨ æıĴä»¶ çİ¯å¢ĥ è¿Ĳè¡Į æĹ¶ ï¼Į ĊĠĠĠĠĠĠĠĠĠĠĠ ĠContext . get PackageName ä¼ļ å¾ĹåĪ° å® ¿ ä¸» çļĦ packageName ï¼Į åĪĻ getIdentifier æĸ¹æ³ķ ä¸įèĥ½ æŃ£å¸¸ èİ·åıĸ åĪ° èµĦæºĲ ãĢĤ ä¸º æŃ¤ ï¼Į ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ ä¸Ģä¸ª åı¯ éĢī çļĦ åĬŀ æ³ķ æĺ¯ ç»§æī¿ Resources ï¼Į è¦ĨçĽĸ getIdentifier æĸ¹æ³ķ ãĢĤ ä½Ĩæĺ¯ Resources çļĦ æŀĦéĢł åĻ¨ å·²ç»ı è¢« æłĩè®° ä¸º ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Deprecated äºĨ ï¼Į æľª æĿ¥ åı¯èĥ½ä¼ļ ä¸įåı¯ çĶ¨ ï¼Į åĽłæŃ¤ ä¸į é¦ĸ éĢī è¿Ļä¸ª æĸ¹æ³ķ ãĢĤ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠ 2 . Android ç³»ç»Ł ï¼Į æĽ´å¤ļ æĥħåĨµä¸ĭ æĺ¯ O EM ä¿®æĶ¹ çļĦ Android ç³»ç»Ł ï¼Į ä¼ļ åľ¨ æĪĳä»¬çļĦ context ä¸Ĭ è°ĥçĶ¨ get PackageName æĪĸèĢħ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Op PackageName çŃī æĸ¹æ³ķ ï¼Į çĦ¶åĲİ å°Ĩ è¿Ļä¸ª packageName è·¨ è¿Ľç¨ĭ ä¼łéĢĴ åģļ å®ĥ çĶ¨ ãĢĤ ç³»ç»Ł çļĦ åħ¶ä»ĸ ä»£çłģ ä¼ļ ä»¥ è¿Ļä¸ª packageName ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ åİ» PackageManager ä¸Ń æŁ¥è¯¢ æĿĥéĻĲ çŃī ä¿¡æģ¯ ãĢĤ å¦Ĥæŀľ æıĴä»¶ ä½¿çĶ¨ èĩªå·±çļĦ åĮħ åĲį ï¼Į å°± éľĢè¦ģ åľ¨ Context çļĦ get PackageName çŃī å®ŀçİ° ä¸Ń ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnew ĠThrowable () ï¼Į çĦ¶åĲİ åĪ¤æĸŃ è°ĥçĶ¨ æĿ¥ æºĲ ä»¥ åĨ³å®ļ è¿ĶåĽŀ èĩªå·±çļĦ åĮħ åĲį è¿ĺæĺ¯ æıĴä»¶ çļĦ åĮħ åĲį ãĢĤ ä½Ĩæĺ¯ å¦Ĥæŀľ ä¿ĿæĮģ éĩĩçĶ¨ å® ¿ ä¸» çļĦ åĮħ åĲį ï¼Į åĪĻ æ²¡æľī ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ è¿Ļä¸ª çĥ ¦ æģ ¼ ãĢĤ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ æĪĳä»¬ ä¹Łåı¯ä»¥ å§ĭ ç»Ī è®¤ä¸º Shadow ĠApp æĺ¯ å® ¿ ä¸» çļĦ æī©å±ķ ä»£çłģ ï¼Į ä½¿çĶ¨ æĺ¯ å® ¿ ä¸» çļĦä¸Ģ éĥ¨åĪĨ ï¼Į éĤ£ä¹Ī éĩĩçĶ¨ å® ¿ ä¸» çļĦ åĮħ åĲį å°±æĺ¯ çĲĨ æīĢ åºĶ å½ĵ çļĦ äºĨ ãĢĤ ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠParse Plugin A pk Exception (" æıĴä»¶ åĴĮ å® ¿ ä¸» åĮħ åĲį ä¸į ä¸Ģèĩ´ ãĢĤ å® ¿ ä¸» :${ host AppContext . packageName } Ġæı Ĵ ä»¶ :${ plugin Manifest . application PackageName }") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ