บทนำ (Overview)
“AndroidMeifest.xml” สามารอ่านได้จาก “Source-code” ที่เราเขียน หรือจากการทำ “Reverse engineering” สามารถอ่านได้จากบทความ How to reverse engineer .apk (picked from installation)
ขั้นตอน (Steps)
- สามารถเปิดไฟล์”AndroidMeifest.xml” จากบทความข้างต้น
- ตัวอย่างเช่น
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.itselectlab.test" > <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!-- To auto-complete the email text field in the login form with the user's emails --> <uses-permission android:name="android.permission.GET_ACCOUNTS" /> <uses-permission android:name="android.permission.READ_PROFILE" /> <uses-permission android:name="android.permission.READ_CONTACTS" /> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".LoginActivity" android:label="@string/title_activity_login" > </activity> <activity android:name=".AboutActivity" android:label="@string/title_activity_about" android:theme="@style/AppTheme.NoActionBar" > </activity> </application> </manifest>
- จากไฟล์ข้างต้นเราจะพบชื่อแพ็กเกจซึ่งจะต้องมีอยู่ในทุก ๆ “android application” ซึ่งก็คือ “com.itselectlab.test”
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.itselectlab.test" > </manifest>
- และจากนั้นเมื่อเราสังเกตุในส่วนของ “Activity” จะพบชื่อ class ต่าง ๆ ดังนี้
<activity android:name=".MainActivity" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".LoginActivity" android:label="@string/title_activity_login" > </activity> <activity android:name=".AboutActivity" android:label="@string/title_activity_about" android:theme="@style/AppTheme.NoActionBar" > </activity>
- ในตัวอย่างข้างต้นมี 3 activity ที่มี 3 class ดังนี้
- MainActivity
- LoginActivity
- AboutActivity
- จากข้อมูลข้างต้นเราพอจะคาดเดาได้ว่ามี “class” ใดบ้างที่อาจจะ “sensitive” เช่น “class” ที่อยู่หลัง “login” เป็นต้น