日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

android eng 模式,android 4.0 编译模式 eng - user 时遇到的有关问题

發(fā)布時(shí)間:2024/9/27 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android eng 模式,android 4.0 编译模式 eng - user 时遇到的有关问题 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

android 4.0 編譯模式 eng -- > user 時(shí)遇到的問(wèn)題

關(guān)鍵詞:android ?4.0 ?user ?eng ?camera ?nand ?串口

平臺(tái)信息:

內(nèi)核:linux3.0

系統(tǒng):android4.0.3

平臺(tái):S5PV310(samsung exynos 4210)

問(wèn)題描述:android4.0編譯模式由eng變成user后出現(xiàn)如下問(wèn)題:

1、設(shè)置中wifi開(kāi)關(guān)選項(xiàng)沒(méi)有了(打開(kāi)、關(guān)閉選項(xiàng));

2、不能安裝應(yīng)用程序apk;

3、camera提示插入sd卡(實(shí)際sd卡、nand正常掛載);

4、串口終端有信息輸出,但是不能操作(只能看到內(nèi)核輸出信息,敲鍵盤沒(méi)反應(yīng))。

一、更改編譯腳本build_android.sh

找到下面腳本,改為user模式:

eng模式為:

echo make -j$CPU_JOB_NUM PRODUCT-full_$SEC_PRODUCT-eng

echo

make -j$CPU_JOB_NUM PRODUCT-full_$SEC_PRODUCT-eng

user模式為:

echo make -j$CPU_JOB_NUM PRODUCT-full_$SEC_PRODUCT-user

echo

make -j$CPU_JOB_NUM PRODUCT-full_$SEC_PRODUCT-user

二、問(wèn)題分析、解決

1、對(duì)2、3兩個(gè)問(wèn)題分析

不能安裝應(yīng)用程序apk; camera提示插入sd卡(實(shí)際sd卡、nand正常掛載);

感覺(jué)是nand、sd卡的權(quán)限不,查看權(quán)限:

shell@android:/mnt $ la -la

drwxr-xr-x root system 2000-01-01 14:38 asec

drwxr-xr-x root system 2000-01-01 14:38 obb

d---rwxr-x system sdcard_rw 1970-01-01 00:00 sdcard //sd卡權(quán)限

d---rwxr-x system sdcard_rw 1970-01-01 00:00 sdcard2//nand權(quán)限

drwx------ root root 2000-01-01 14:38 secure

d--------- system system 2000-01-01 14:38 usb

2、對(duì)比編譯生成的system,發(fā)現(xiàn)問(wèn)題

發(fā)現(xiàn)有system/etc/permissions在兩種模式下有所不同,編譯成user時(shí)4.0.3_r1/out/target/product/smdkv310/system/etc/permissions/少了一些xml文件,

如:android.hardware.camera.xml、android.hardware.wifi.xml、platform.xml等

我們知道out目錄下生成的文件,是在其它地方copy過(guò)來(lái)的,找到這些xml文件在源頭在:4.0.3_r1/frameworks/base/data/etc中,查看4.0.3_r1/frameworks/base/data/etc/ndrAoid.mk編譯選項(xiàng),發(fā)現(xiàn)一些問(wèn)題:

########################

include $(CLEAR_VARS)

LOCAL_MODULE := platform.xml

LOCAL_MODULE_TAGS := eng

LOCAL_MODULE_CLASS := ETC

# This will install the file in /system/etc/permissions

#

LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)/permissions

LOCAL_SRC_FILES := $(LOCAL_MODULE)

include $(BUILD_PREBUILT)

LOCAL_MODULE_TAGS := eng這個(gè)值為eng,所以在user模式下編譯時(shí),對(duì)應(yīng)的文件不做copy,LOCAL_MODULE_TAGS:= user時(shí)編譯時(shí)出錯(cuò)。編譯腳本太深入的話,我也看不懂里面的東西,所以想了一種比較簡(jiǎn)單的方法,編譯時(shí)不判斷模式,直接copy文件:

3、在device.mk中加入copy操作,解決問(wèn)題

我們?cè)?.0.3_r1/device/samsung/smdkv310/deivce.mk中加入copy命令,如下:

PRODUCT_COPY_FILES += \

frameworks/base/data/etc/android.hardware.camera.xml:system/etc/permissions/android.hardware.camera.xml\

frameworks/base/data/etc/android.hardware.sensor.compass.xml:system/etc/permissions/android.hardware.sensor.compass.xml\

frameworks/base/data/etc/android.hardware.touchscreen.multitouch.xml:system/etc/permissions/android.hardware.touchscreen.multitouch.xml\

frameworks/base/data/etc/android.hardware.wifi.xml:system/etc/permissions/android.hardware.wifi.xml\

frameworks/base/data/etc/platform.xml:system/etc/permissions/platform.xml\

frameworks/base/data/etc/tablet_core_hardware.xml:system/etc/permissions/tablet_core_hardware.xml

編譯完成后要檢查一下4.0.3_r1/out/target/product/smdkv310/system/etc/permissions/這個(gè)目錄下,是否把frameworks/base/data/etc/目錄下的xml文件復(fù)制過(guò)來(lái)。

注意:燒錄時(shí),清除userdata\cache兩個(gè)分區(qū),這里面會(huì)記憶一些系統(tǒng)信息,不清除的話,還是會(huì)出現(xiàn)錯(cuò)誤現(xiàn)象。

前三個(gè)問(wèn)題解決,我們?cè)倏聪碌谒膫€(gè)問(wèn)題:

4、串口的操作選擇(debugable使能)

問(wèn)題:串口終端有信息輸出,但是不能操作(只能看到內(nèi)核輸出信息,敲鍵盤沒(méi)反應(yīng))。

這個(gè)問(wèn)題也是無(wú)意間發(fā)現(xiàn)的,其實(shí)在user模式下,串口本來(lái)就不能操作的,也就是說(shuō)這是正常的現(xiàn)象,但是我們考慮到在試產(chǎn)過(guò)程中總會(huì)出現(xiàn)一些問(wèn)題,要用到串口跟蹤信息,所以還是想找到原因:

(1)default.prop

我們對(duì)比下default.prop在兩種模式編譯下的差異:

user模式下,串口不可用:

shell@android:/ $ cat default.prop

#

# ADDITIONAL_DEFAULT_PROPERTIES

#

ro.secure=1

ro.allow.mock.location=0

ro.debuggable=0 //這個(gè)值為0也就是說(shuō)不能用debug,所以串口就不能使用

persist.sys.usb.config=mass_storage

shell@android:/ $

user模式下,串口可用:

shell@android:/ # cat default.prop

#

# ADDITIONAL_DEFAULT_PROPERTIES

#

ro.secure=0

ro.allow.mock.location=1

ro.debuggable=1 //這個(gè)值為1,所以串口可以操作使用

persist.sys.usb.config=mass_storage,adb

(2)、全局搜索,找到對(duì)這個(gè)值設(shè)定的位置4.0.3_r1/build/core/main.mk更改:4.0.3_r1/build/core/main.mk

ifeq (true,$(strip $(enable_target_debugging)))

# Target is more debuggable and adbd is on by default

ADDITIONAL_DEFAULT_PROPERTIES += ro.debuggable=1//eng模式下

# Include the debugging/testing OTA keys in this build.

INCLUDE_TEST_OTA_KEYS := true

else # !enable_target_debugging

# Target is less debuggable and adbd is off by default

ADDITIONAL_DEFAULT_PROPERTIES +=ro.debuggable=1//user模式下,原來(lái)為0,現(xiàn)在改為1

endif # !enable_target_debugging

關(guān)于user、eng這兩種模式,BSP中應(yīng)該都支持,也許我們拿到的BSP不全,這里面的問(wèn)題只是針對(duì)user、eng編譯里的個(gè)別問(wèn)題。我不能詳細(xì)的分析,一方面我做驅(qū)動(dòng)方面的工作,對(duì)系統(tǒng)方面了解有限,另一方面BSP編譯規(guī)則一般是由芯片廠去做這部分工作。希望對(duì)遇到相同問(wèn)題的“同學(xué)”有所幫助,自己也做一點(diǎn)備忘記錄。

總結(jié)

以上是生活随笔為你收集整理的android eng 模式,android 4.0 编译模式 eng - user 时遇到的有关问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。