2013-03-11 19 views
5

Android 4.1 cihazında iw kablosuz paketleri yüklemem gerekiyor. ama ne kadar ve ne yüklemek için paketleri gerektirir sürümü nedir bilmiyorum!android 4.1 cihaz için “iw” derleyip derleyin.

Ayrıca bunu yapmak için linux platformuna ihtiyaç var veya android köklendirme aygıtı için adb kabuğuna kurmak ve yüklemek için yeterlidir.

Bu link'u görüyorum ama bunu adb terminalinden yaptığımda, git ve bazı kabukların bulunmadığını görüyorum ??? nasıl yapılır ?

Hiç kimse bir fikri yok gibi görünüyor?

+0

Bu sayfada ikili dosyayı denediniz mi? Bunu cihazdan kendiniz derlemek istiyorsanız, çok daha zor olacak. Kesinlikle git varsayılan olarak yüklenmemiş. – kabuko

+0

@kabuko binary ile ne demek istiyorsun, ayrıca terminalde çalışmam için terminalde çalışmam gerekiyorsa, ubuntu makinesinde bunun için derleme yapmam gerekiyor, fakat cihaz bu özelliği nasıl destekleyecektir? android sdk? – Hana90

cevap

1

iw sürüm 3.11'i (zaten bir Android.mk dosyası olan) oluştururken, eksik/yanlış üstbilgiler ve kitaplıklar nedeniyle bazı sorunlarla karşılaştım. Android.mk dosyası olduğu için NDK kullanılabilir. Gelen

aşağıdaki üstlenecek aşağıdadır:

  • bir cihaz görüntü (çekirdek başlıkları ve libnl-2 statik kütüphane, en azından mevcut olmalıdır) önce inşa edilmiştir. I9300 için CyanogenMod 10'u (çekirdek 3.0.something ile) oluşturdum, bunu yansıtmak için aşağıdaki yolları güncelleyin.
  • NDK ~/android/system/ndk'a yüklenmiştir.
  • NDK'nın uygun platformları ve yüklü araçları var.

    In file included from external/libnl-headers/netlink/genl/genl.h:15:0, 
           from /tmp/and/iw/jni/iw.c:17: 
    external/libnl-headers/netlink/netlink.h:27:29: fatal error: linux/genetlink.h: No such file or directory. 
    

    Basitçe kötü android/system/out/target/product/i9300/obj/KERNEL_OBJ/usr/include/linux sonları diğer başlıklarına bir bağlantı oluşturarak:

    ln -s . jni 
    ln -nsv ~/android/system/external ./ 
    

    sonraki konu netlink kütüphanesi:

Hazırlama iw-3.11.tar.xz ayıklanması ve içinde benim dizini değiştirdikten sonra gibi hatalar verecek:

Compile thumb : iw <= iw.c 
In file included from /home/user/android/system/ndk/platforms/android-14/arch-arm/usr/include/net/if.h:28:0, 
       from /tmp/and/iw/jni/iw.c:10: 
/tmp/and/iw/jni/linux/if.h:178:19: error: field 'ifru_addr' has incomplete type 
/tmp/and/iw/jni/linux/if.h:179:19: error: field 'ifru_dstaddr' has incomplete type 
/tmp/and/iw/jni/linux/if.h:180:19: error: field 'ifru_broadaddr' has incomplete type 
/tmp/and/iw/jni/linux/if.h:181:19: error: field 'ifru_netmask' has incomplete type 
/tmp/and/iw/jni/linux/if.h:182:20: error: field 'ifru_hwaddr' has incomplete type 
In file included from external/libnl-headers/netlink/netlink.h:20:0, 
       from external/libnl-headers/netlink/genl/genl.h:15, 
       from /tmp/and/iw/jni/iw.c:17: 
/home/user/android/system/ndk/platforms/android-14/arch-arm/usr/include/sys/socket.h:74:44: warning: 'struct msghdr' declared inside parameter list [enabled by default] 
/home/user/android/system/ndk/platforms/android-14/arch-arm/usr/include/sys/socket.h:74:44: warning: its scope is only this definition or declaration, which is probably not what you want [enabled by default] 
/home/user/android/system/ndk/platforms/android-14/arch-arm/usr/include/sys/socket.h:75:38: warning: 'struct msghdr' declared inside parameter list [enabled by default] 
In file included from external/libnl-headers/netlink/netlink.h:25:0, 
       from external/libnl-headers/netlink/genl/genl.h:15, 
       from /tmp/and/iw/jni/iw.c:17: 
/tmp/and/iw/jni/linux/netlink.h:33:2: error: unknown type name 'sa_family_t' 
In file included from external/libnl-headers/netlink/genl/genl.h:15:0, 
       from /tmp/and/iw/jni/iw.c:17: 
external/libnl-headers/netlink/netlink.h:51:16: warning: 'struct msghdr' declared inside parameter list [enabled by default] 
external/libnl-headers/netlink/netlink.h:54:19: warning: 'struct iovec' declared inside parameter list [enabled by default] 
make: *** [/tmp/and/iw/obj/local/armeabi/objs/iw/iw.o] Error 1 
Şimdi inşa olabilir

sed "/LOCAL_LDFLAGS/s#\$# -L$HOME/android/system/out/target/product/i9300/obj/STATIC_LIBRARIES/libnl_2_intermediates -lnl_2#" -i Android.mk 

: Sonunda netlink kütüphaneye bağlamak bitirmek için Android.mk yama

mkdir -p linux 
ln -svn ~/android/system/out/target/product/i9300/obj/KERNEL_OBJ/usr/include/linux/genetlink.h linux/ 

:

bir geçici çözüm linux dizini oluşturmak ve içinde ~/android/system/out/target/product/i9300/obj/KERNEL_OBJ/usr/include/linux/genetlink.h bir sembolik koymaktır başlatıldı:

NDK_PROJECT_PATH=$PWD ~/android/system/ndk/ndk-build TARGET_PLATFORM=android-14 

Netlink çünkü tamamlanmaz /genl/genl.h bulunamadı, ancak iw ikili dosyaları libs/armeabi'de mevcuttur!

+0

FYI, genetlink.h ... 'ye ihtiyaç duyan herkes için, NDK R10e'den dolayı, GNU STL'nin API 21 seviyesinde mevcuttur.API level 17 sürümünü kullanıyordum, bu yüzden diğer birinden kurulumuma kopyaladım. – dadude999