±à¼ÍƼö: |
±¾ÎÄÀ´×Ô¼òÊé,±¾ÎÄдÁËÁíÒ»ÖÖxposed¿ò¼ÜµÄʹÓð취£º±àÒëxposedÔ´Â룬Éú³ÉxposedÏà¹ØµÄÓ¦ÓóÌÐòºÍso¿âµÈÎļþ£¬È»ºó½«ÕâЩӦÓóÌÐòºÍso¿âÎļþ¼¯³Éµ½androidϵͳÖУ¬ÖØÐ´ò°üÉú³É¾µÏñÎļþ£¬ÉÕÈëÊÖ»ú¡£ |
|
xposed installer3.0°æ±¾Ö®ºó£¬´«Í³µÄxposed¿ò¼ÜµÄʹÓ÷½·¨ÊÇ´Ó¹ÙÍøÉÏÏÂÔØxposed
installer.apkÒÔ¼°xposed-arm-sdk22.zip°ü¡£È»ºó¾ßÌåµÄʹÓ÷½·¨Êǽ«xposed
installer.apk°²×°µ½ÊÖ»ú£¬È»ºóÔÚÊÖ»úÉϽøÈërecoveryģʽ£¬½«ÏÂÔØµÄxposed-arm-sdk22.zipË¢ÈëÊÖ»ú¡£Íê³ÉÖ®ºóxposed
installer²Å¿ÉÒÔÕý³£Ê¹Óá£
ÎĵµÖ÷ÒªÓÃÓÚxposedÔ´ÂëµÄ±àÒëÒÔ¼°xposedµÄ¼¯³É¹¤×÷¡£ÔÚ±àÒë¹ý³ÌÖУ¬Ö÷ÒªÊÇͨ¹ýXposed
Tools½øÐбàÒ룻ÔÚ¼¯³É¹ý³ÌÖУ¬½«xposedµÄ±àÒëÖ®ºóÉú³ÉµÄÎļþÌæ»»µ½androidϵͳÖУ¬´ò°üÖ®ºóÖØÐÂÉú³É¾µÏñÎļþ£¬½«¾µÏñÎļþË¢Èëµ½ÊÖ»ú²é¿´ÈÕÖ¾ÐÅÏ¢À´ÅжÏÊÇ·ñ³É¹¦¡£
ÓÉÓÚÔÚ¼¯³É¹ý³ÌÖÐÊǽ«xposedµÄ±àÒëÉú³ÉÎļþ´ò°üµ½android5.1ϵͳÖÐÖØÐÂÉú³É¾µÏñÎļþ£¬È»ºó½«¾µÏñÎļþÉÕÈëµ½nexus5ÊÖ»ú£¬ËùÒÔÐèÒª¶ÔandroidÔ´Âë½øÐбàÒ룬²¢ÔÚÖ´ÐÐlunchÑ¡Ôñ¶ÔÓ¦Ô´Âë´úºÅʱѡÔñnexus5¶ÔÓ¦µÄandroidÔ´Âë´úºÅ¡£
»·¾³ÅäÖÃ
1.Ô´Âë°æ±¾
ÔÚÕû¸ö¹ý³ÌÖУ¬Ê¹Óõ½ÁËandroidϵͳԴÂëºÍxposedÔ´Âë¡£
androidϵͳԴÂë°æ±¾ÊÇ LYM48M
²é¿´Ô´Âë°æ±¾µÄ·½·¨£ºÔÚÔ´Âë·¾¶Ï£¬²é¿´/build/core/build_id.mkÎļþÖеÄBUILD_ID¼´ÎªÔ´ÂëµÄ°æ±¾ºÅ¡£ÈçÏÂͼËùʾ¡£

BUILD ID
xposedÔ´Âë°æ±¾ÐèÒªÊÇandroid5.1Ô´Âë¶ÔÓ¦µÄ°æ±¾¡£¿ÉÒÔÔÚgithubÉϽøÐÐÏÂÔØ£¬¾ßÌåµÄÏÂÔØ·½·¨ºóÎÄÖлáÏêϸ˵Ã÷¡£
2.ϵͳ»·¾³
µçÄÔϵͳÊÇubuntu 14.04
jdk°²×°µÄÊÇopenjdk-7-jdk¾ßÌåÐÅÏ¢ÈçÏÂͼËùʾ

java°æ±¾ÐÅÏ¢
fas
android5.1Ô´Âë±àÒëÐèҪʹÓÃopenjdk£¬²»ÔÙʹÓÃoracleµÄjdk¡£
3.²âÊÔ»ú»·¾³
²âÊÔ»úʹÓõÄÊÇnexus 5ÊÖ»ú£¬nexus£µ¶ÔÓ¦µÄandroidÔ´Âë´úºÅÊÇaosp_hammerhead_userdebug
ÎĵµÖ÷Ҫͨ¹ýÈçÏÂÁù¸ö²½ÖèÍê³ÉxposedÔ´ÂëµÄ±àÒëºÍ¼¯³É
±àÒëandroidÔ´Âë
½«android 5.1µÄimgÎļþË¢ÈëÊÖ»ú
±àÒëXposedBridge
ʹÓÃXposed Tools
½«xposed¿ò¼Ü¼¯³Éµ½Androidϵͳ
¼¯³É²âÊÔ
Ò»¡¡±àÒëandroidÔ´Âë
ΪÁ˽«xposed¿ò¼Ü¼¯³Éµ½nexus5ÊÖ»ú£¬ÐèÒªÏȱàÒënexus5ÊÖ»ú¶ÔÓ¦µÄandroidÔ´Âë¡£¾ßÌå²½ÖèÈçÏÂ
1.ÏÂÔØandroid 5.1Ô´´úÂë
ʹÓÃrepoÏÂÔØandroid5.1Ô´´úÂë¡£
2.³õʼ»¯±àÒë»·¾³
ÔÚÔ´ÂëĿ¼ÏÂÔËÐÐsource ./build/envsetup.sh¡£ÈçͼËùʾ¡£

envsetup
3.Ñ¡Ôñ°æ±¾
Ö´ÐÐÃüÁîlunch£¬Ñ¡ÔñºóÐøÑé֤ʱʹÓõÄÊÖ»ú¶ÔÓ¦µÄ°æ±¾¡£
ÓÉÓÚÎÒÔÚÑéÖ¤xposed±àÒë½á¹ûµÄʱºòÊÇÔÚnexus£µÉϽøÐеģ¬ËùÒÔÔÚÑ¡Ôñ°æ±¾µÄʱºòÑ¡ÔñµÄÊÇnexus£µ¶ÔÓ¦µÄ°æ±¾¡£

lunch
nexus5¶ÔÓ¦µÄÊÇaosp_hammerhead_userdebug
4.±àÒëandroidÔ´Âë
½Ó×ÅÔÚandroidÔ´ÂëĿ¼ÏÂÖ´ÐÐmakeÃüÁî±àÒëÔ´Âë¡£µÚÒ»´Î±àÒëandroidÔ´Â뽨ÒéʹÓÃmakeÃüÁî½øÐбàÒ롣ΪÁ˼ӿì±àÒëËÙ¶È£¬¿ÉÒÔ¿ª¶à¸öÏ߳̽øÐбàÒë¡£ÀýÈçmake
-j16ÃüÁ¿ª16Ï̱߳àÒëandroidÔ´Âë¡£

.±àÒëandroidÔ´Âë
make±àÒëandroidÔ´ÂëµÄËùÓÐÄ£¿é£¬mmm½ö±àÒëÖ¸¶¨µÄÄ£¿é¡£ÔÚʹÓÃmmm±àÒëÖ¸¶¨Ä£¿é֮ǰ£¬ÐèÒª±£Ö¤Ö®Ç°Ê¹ÓÃmakeÃüÁî¶ÔÕû¸öÔ´´úÂë½øÐбàÒë¡£
±àÒëºó»á½«±àÒë½á¹û·Åµ½outÎļþ¼ÐÏ¡£

±àÒë½á¹û
ÆäÖÐimgÎļþ·¾¶ÊÇout/target/product/hammerheadÏ¡£

imgÎļþ
¶þ¡¡½«android£µ.1µÄimgÎļþË¢ÈëÊÖ»ú
1.½øÈëfastbootģʽ
ÖÕ¶ËÖ´ÐÐsudo adb reboot bootloaderÃüÁÊÖ»ú½øÈëfastbootģʽ¡£
2.½«imgÎļþË¢Èëµ½ÊÖ»ú
ÔÚÕâÒ»²½»á½«boot.img,userdata.img,cache.img,system.img¡£
ÒÔsystem.imgΪÀý¡£ÔÚ½øÈëfastbootģʽ֮ºó£¬ÔÚÖն˼ÌÐøÖ´ÐÐÃüÁî
fastboot flash system system.img
´´½¨system·ÖÇø£¬½«system.imgÎļþË¢Èësystem·ÖÇøÖС£ÓÉÓÚfastboot¶ÔË¢ÈëµÄimgÎļþ´óСÓÐÏÞÖÆ£¬ËùÒÔ¿ÉÄÜ´æÔÚÒòΪimgÎļþÌ«´óµ¼ÖÂË¢Èëʧ°Ü£¬ÕâÊÇ¿ÉÒÔÌí¼ÓÁË-S
50M²ÎÊý£¬½«system.img·Ö³ÉС¿éÀ´Ë¢Èëµ½ÊÖ»ú£¬ÍêÕûµÄÃüÁîÈçÏÂ
fastboot -S 50M flash system system.img
ÔËÐнá¹ûÈçÏÂͼËùʾ¡£

½«system.imgË¢Èëµ½ÊÖ»ú
´ÓͼÖпÉÒÔ¿´µ½£¬Ìí¼ÓÁ˲ÎÊýÖ®ºó£¬·Ö³ÉÁËһЩС¿é½«system.imgÎļþË¢Èëµ½ÊÖ»ú¡£
3.ÖØÆôÊÖ»ú
ÔÚ½«imgÎļþÈ«²¿Ë¢Èëµ½ÊÖ»úÖ®ºóÖ´ÐÐfastboot rebootÃüÁî£¬ÖØÐÂÆô¶¯ÊÖ»ú£¬Ö®ºó¿ÉÒÔ¿´µ½ÊÖ»úÏÖÔÚµÄϵͳµÄandroid5.1ϵͳ¡£Ë¢»ú³É¹¦
Èý¡¡±àÒëXposedBridge
1.ÏÂÔØXposedBridgeµÄÔ´´úÂë
´ÓgithubÉÏÏÂÔØXposedBridge¡£µã»÷ÓÒ²àÏÂÔØ

Xposed Bridge
2.±àдAndroid.mkÎļþ
Android.mkÊÇAndroidÌṩµÄÒ»ÖÖmakefileÎļþ£¬ÓÃÀ´Ö¸¶¨ÖîÈç±àÒëÉú³Éso¿âÃû¡¢ÒýÓõÄÍ·ÎļþĿ¼¡¢ÐèÒª±àÒëµÄ.c/.cppÎļþºÍ.a¾²Ì¬¿âÎļþµÈ¡£±àдandroid.mkÎļþ£¬½«±àÒëÐèÒªµÄÔ´´úÂ룬±àÒëÉú³ÉµÄ½á¹ûÐÎʽµÈÐÅÏ¢¸æÖªndk
build±àÒëϵͳ¡£Android.mkÎļþÄÚÈÝÈçÏÂËùʾ¡£

Android.mk
3.ÒÆ¶¯Xposed Bridge¹¤³Ì
½«Android.mkÎļþ·Åµ½XposedBridgeÔ´ÂëĿ¼Ï£¬È»ºó½«Õû¸ö¹¤³Ì·Åµ½AndroidÔ´ÂëĿ¼Ï¡£ÈçÏÂͼËùʾ¡£

xposedbridge
4.±àÒëXposed Bridge
ÒòΪÔÚǰ±ß±àÒëandroid5.1Ô´ÂëµÄʱºò£¬ÒѾʹÓÃmakeÃüÁî½øÐÐÁËÒ»´Î±àÒ룬ËùÒÔÔÚÕâÀïÖ±½ÓʹÓÃmmmÃüÁî±àÒëXposedBridgeÄ£¿é¡£ÔÚandroidÔ´ÂëÏÂʹÓÃmmmÃüÁî±àÒëxposedbridgeÄ£¿é¡£ÃüÁîÐÎʽΪmmm
[Ä£¿é·¾¶]¡£

±àÒëXposedBridge
/home/sakura/Android-5.1.1-r14-compiled/XposedBridge-art/ÊÇÎÒµçÄÔÉÏXposed
BridgeÔ´Âë·¾¶
±àÒë³É¹¦Ö®ºó£¬Éú³ÉXposedBridge.jar°ü£¬´æ·ÅÔÚ/out/target/product/hammerhead/system/framework/Îļþ¼ÐÏ¡£
ËÄ¡¡Ê¹ÓÃxposed tools
1.ÏÂÔØxposed tools
ÔÚgithubÉÏÏÂÔØxposed toolsÎļþ¡£µã»÷xposed tools½øÈëµ½githubÒ³Ãæ£¬ÈçÏÂͼ

xposedtoolsÏÂÔØ
µã»÷ÉÏͼÖкìÉ«²¿·ÖÑ¡ÔñµÄ°´Å¥£¬ÏÂÔØxposed toolsµÄzip°ü¡£
2.ÅäÖÃbuild.confÎļþ
build.confÎļþÊÇÒ»¸öÅäÖÃÎļþ£¬»á±»build.pl¶ÁȡʹÓá£buildÎļþÖÐÖ÷Òª¶¨ÒåÁ˱àÒëxposedµÄ½á¹ûµÄ´æ·Å·¾¶£¬androidÔ´ÂëµÄ·¾¶£¬»¹ÓÐһЩ°æ±¾ÐÅÏ¢Ö®ÀàµÄÖµ¡£
½«ÏÂÔØµÄzip°ü½âѹ£¬ÔÚÎļþ¼ÐÏ´´½¨build.confÎļþ¡£È»ºó±à¼build.confÎļþ¡£build.confÄÚÈÝÈçÏÂͼËùʾ¡£
[General]
outdir = /home/xposed/out
[Build]
version = 65(custom build by author )
makeflags = -j16
[AospDir]
22 = /home/Android-5.1.1 |
outdirÖ¸ÏòµÄ·¾¶ÊÇxposed±àÒëÖ®ºóÉú³ÉµÄÎļþµÄ´æ·Å·¾¶¡£
versionµÄÖµºÍºó±ßµÄ²ÎÊýÊÇ×Ô¼ºÉèÖõġ£±àÒëÖ®ºó»áдÈëµ½xposed.propÎļþÖС£
makeflagsÊÇÉèÖÃÔÚºó±ß±àÒë¹ý³ÌÖÐʹÓõÄÏß³ÌÊý¡£
AospDirÖ¸ÏòµÄ·¾¶ÊÇandroidÔ´Âë´æ·ÅµÄ·¾¶£¬Ç°±ßµÄÖµÊÇÔ´Âë¶ÔÓ¦µÄSDKµÄ°æ±¾ºÅ¡£ÕâÀïÎÒÖ¸ÏòµÄÊÇandroid5.1.1µÄÔ´Â룬¶ÔÓ¦µÄandroid
sdkµÄ°æ±¾ÊÇ22¡£
3.Ìæ»»Îļþ
ÔÚ½øÐÐÎļþÌæ»»Ö®Ç°£¬Ç뽫±»Ìæ»»µÄÎļþ×öÒ»¸ö±¸·Ý£¬±ãÓÚÒÔºó»Ö¸´Ê±Ê¹ÓÃ
3.1 ÏÂÔØxposedÏà¹ØÎļþ
´ÓgithubÉϿˡxposedÁ½¸ö²Ö¿âµ½±¾µØ¡£·Ö±ðÊÇxposedºÍart¡£µã»÷ÏÂÔØzip°ü£¬½âѹѹËõ°üµÃµ½xposedÎļþ¼ÐºÍartÎļþ¼Ð¡£xposedÎļþ¼Ð°üÀ¨xposedÐÞ¸ÄÖ®ºóµÄapp_processµÈÓ¦ÓóÌÐòºÍlibxposed_*.soµÈ¿âÎļþµÄÔ´Â룻artÎļþ¼ÐÖ÷Òª°üÀ¨xposedÐÞ¸ÄÖ®ºóµÄartÐéÄâ»úµÄÎļþ¡£
ÔÚÏÂÔØartʱ£¬ÒªÑ¡Ôñandroid 5.1¶ÔÓ¦µÄart·ÖÖ§¡£ÈçÏÂͼºìÉ«²¿·Ö

artÏÂÔØ
3.2 Ìæ»»Îļþ
ÓÃ3.1ÖÐÏÂÔØµÄartÎļþ¼ÐÌæ»»/home/Android-5.1.1Ŀ¼ÏµÄartÎļþ¼Ð¡£

Ìæ»»artÎļþ¼Ð
½«3.1ÖÐÏÂÔØµÄxposedÎļþ¼ÐÒÆ¶¯µ½/home/Android-5.1.1/frameworks/base/cmds/Îļþ¼ÐÏ¡£

Ìæ»»xposedÎļþ¼Ð
ÔÚbuild.confÎļþÖÐoutdirĿ¼Ï´´½¨Ò»¸öjavaÎļþ¼Ð£¬È»ºó½«µÚÈý²¿·ÖÖÐÉú³ÉµÄXposedBridge.jar°ü·Åµ½javaÎļþ¼ÐÏ¡£ÈçÏÂͼËùʾ¡£ 
ÒÆ¶¯XposedBridge.jar
4.ʹÓÃbuild.pl±àÒëxposedÔ´Âë
build.plÎļþÔÚxposed toolsÎļþ¼ÐÏ¡£ÔÚÎļþÖÐÓжÔbuild.plÎļþµÄ²ÎÊýµÄÉèÖùæÔòµÈÐÅÏ¢£¬ÈçÏÂËùʾ

build.pl
´ÓÉÏͼ¿ÉÒÔ¿´µ½build.plÖ÷Òª¿ÉÒÔÍê³ÉµÄ¹¤×÷ÓÐËĸö£¬·Ö±ðÊDZàÒëÉú³ÉxposedµÄ¿ÉÖ´ÐгÌÐòºÍ¿âÎļþ£¬½«±àÒëÖ®ºóµÄÎļþ¿½±´µ½ÅäÖÃÎļþÖ¸¶¨µÄÊä³ö·¾¶Ï£¬´´½¨xposed.propÎļþ£¬´´½¨flashable
ZIPÎļþ¡£ÔÚ²ÎÊýÖпÉÒÔʹÓÃ-t Õë¶ÔÖ¸¶¨µÄÄ¿±ê½øÐд´½¨¡£ÔÚxposed toolsĿ¼ÏÂÔËÐÐ
./build.pl -t arm:22
build arm files for SDK22(¶ÔÓ¦µÄÊÇAndroid5.1ϵͳ)
ÔÚÖ´Ðйý³ÌÖУ¬¿ÉÄÜ»áÌáʾȱÉÙһЩÒÀÀµ°ü£¬ÀýÈç¿ÉÄÜ»áȱÉÙConfig::IniFiles£¬Ê¹ÓÃapt-cache
search Config::IniFilesËÑË÷£¬°²×°È±Éٵİü¼´¿É¡£
5.½á¹û
build.pl -tÔËÐнáÊøÖ®ºó£¬»á½«Éú³ÉµÄxposedµÄ¿ÉÖ´ÐгÌÐòºÍso¿âµÈÎļþ·ÅÈëµ½build.confÅäÖÃÎļþÖÐÖ¸¶¨µÄÊä³öĿ¼Ï¡£°üÀ¨libÎļþ¼ÐϵÄÎå¸öso¿âºÍbinÎļþ¼ÓϵÄËĸö¿ÉÖ´ÐгÌÐòÒÔ¼°Ò»¸öÅäÖÃÎļþ¡£ÈçÏÂͼËùʾ¡£

xposed½á¹û
Îå¡¡½«xposed¿ò¼Ü¼¯³Éµ½Androidϵͳ
1.Ìæ»»Îļþ
ÓõÚËIJ¿·ÖÖÐÉú³ÉµÄbinÎļþ¼ÐºÍlibÎļþ¼ÐϵÄÎļþÌæ»»Android-5.1.1/out/target/product/hammerhead/system/Îļþ¼ÐϵÄbinÎļþºÍlibÎļþÀïµÄÏàͬµÄÎļþ¡£ÐèҪעÒâµÄÊÇÓÃxposed±àÒëÉú³ÉµÄapp_process32_xposedÌæ»»system/binÎļþ¼ÐϵÄapp_process32
2.ÒÆ¶¯Îļþ
½«xposed.propÎļþÒÆ¶¯µ½systemÎļþ¼ÐÏ¡£

ÒÆ¶¯xposed.prop
3.ÖØÐÂÉú³É¾µÏñÎļþ
Ìæ»»Íê³ÉÖ®ºóÔÚandroidÔ´ÂëĿ¼ִÐÐÒ»±é
source ./build/envsetup.sh
lunch
make snod |
make snodÃüÁîµÄ×÷ÓÃÊÇÖØÐÂÉú³É¾µÏñÎļþ¡£
Áù¡¡¼¯³É²âÊÔ
1.½«ÐÞ¸ÄÖ®ºóµÄimgÎļþË¢ÈëÊÖ»ú
¾ßÌå²½ÖèÇë¿´µÚ¶þ²¿·Ö
2.²é¿´½á¹û
ÖØÆôÊÖ»ú£¬×¥È¡ÈÕÖ¾£¬²é¿´xposedbridge.jar°üÊÇ·ñ³É¹¦µ¼Èë¡£
ÈÕÖ¾²é¿´ÃüÁî
adb logcat | grep -i xposed

|