1. APN Name
      Just go to Settings->Wireless and Network->Mobile Network->APN
      and change it
      or u can retrieve /data/data/com.android.providers.telephony/databases/telephony.db
      and edit the corresponding field to “wifi”
    2. Product Model
      customize this file: build/target/product/full.mk
      In this way, u need to rebuild the whole Android source

      PRODUCT_NAME := full
      PRODUCT_DEVICE := generic
      PRODUCT_BRAND := Android
      PRODUCT_MODEL :=

      Full Android on Emulator

    3. Wifi Mac Address follow this way: http://thecobraden.blogspot.com/2012/10/building-better-emulator-part-1.html(note: the author use smali, but it is not neccesary since we have android source code, right? smali is necessary when source code is not available)

In summary, it retrieve /system/framework/framework.jar, unzip it, baksmali classes.dex, edit android/net/wifi/WifiManager.smali to return a custom WifiInfo, smali to get classes.dex, zip it, push framework.jar to /system/framework/, generate a new system.img, start emulator with “-system system.img”.In this way, u may find that framework.jar only applies to emulater lower than Android 4.0. Starting Android 4.0, /system/framework/* is made up of *.jar, and *.odex. So now u may need to use smali to deodex *.odex and *.jar back to *.jar, and apply above process. or U may build emulator from source with disable ODEX(WITH_DEXPREOPT=false)http://stackoverflow.com/questions/13135844/building-seperate-android-modules-with-dexpreopt-disabled

note:

some env variables will not take effect when running export, which are:

WITH_DEXPREOPT=false

DISABLE_DEXPREOPT=true

they are be set to make’s argument variable(not linux environment variable) to take effect.

That is like “make sdk WITH_DEXPREOPT=false DISABLE_DEXPREOPT=true”

Advertisements