全志问题解决方法

1,          android上如何增加一个PC可见的盘符

1)在sysconfig1.fex中的luns中设置PC可见的盘数:luns=4
2)在init.rc中建立一个目录
:mkdir /mnt/inet 0000 systemsystem
3).在vold.fstab中增加mounts的方法
:dev_mount inet /mnt/inetauto    /devices/virtual/block/nandh
4).更改config_evb.mk中
:
PRODUCT_PROPERTY_OVERRIDES+= \
       ro.additionalmounts=/mnt/extern_sd;/mnt/usbhost1;/mnt/inet \
       ro.additionalshares=/mnt/extern_sd;/mnt/usbhost1;/mnt/inet \
        ro.udisk.lable=crane-evb

5).更改frameworks/base/services/java/com/android/server/MountService.java中增加头文件:
import java.io.File;及在
for (String path: volumesToShare) {
后增加:

  String tmp ="/mnt/inet";
  if(path.equals(tmp))
  {
        File f=newFile("/mnt/sdcard/mpgio.sys");
        if(!f.exists()){
         Slog.e(TAG, "not mount nandh");
         return ;
       }
     Slog.e(TAG, "mount nandhsuccess");
}

2Android4.0.1显示在切换中有时会出现红色边框

看是否有配置以下属性:
persist.sys.strictmode.visual
此属性值设成0

3播放电影字幕和菜单重叠

播放外带字幕电影,播放电影且已有字幕出现在屏幕上时触摸屏幕调出子菜单,字幕和菜单重叠,下一条字幕出现时则恢复正常。

修改 Gallery2\src\com\android\gallery3d\app\MediaController.java 在initControllerView  函数最后加 mUpSubPos += 10; 即可

 

4,卡启动时,如何识别到nand并对其进行操作

关于要在卡启动识别到nand,有两种情况:

1. nand上已经有分区;

2. nand是裸片;

 第一种情况下卡启动时nand驱动能够初始化成功,用户可以通过mount命令挂载nand的分区;

 第二种情况下要先给nand一个虚拟的mbr,使得启动时nand能够初始化成功,

可以通过修改nand驱动的源码达到这一目的。

A10平台修改linux-3.0/drivers/block/sun4i_nand/nfd/mbr.c

A1X平台修改linux-3.0/drivers/block/sun5i_nand/nfd/mbr.c

具体改动如下:

int mbr2disks(struct nand_disk* disk_array)

{

         int part_cnt = 0;

         int part_index;

#if 0

         if(_get_mbr()){

                   printk("get mbr error\n" );

                   return part_cnt;

         }

         part_index = 0;

 

         for(part_cnt = 0; part_cnt

                   part_secur[part_index] = 0;       

         //查找出所有的LINUX盘符

         for(part_cnt = 0; part_cnt < mbr->PartCount && part_cnt < MAX_PART_COUNT; part_cnt++)

         {

             //if((mbr->array[part_cnt].user_type == 2) || (mbr->array[part_cnt].user_type == 0))

             {

                            PRINT("The %d disk name = %s, class name = %s, disk size = %d\n", part_index, mbr->array[part_cnt].name,

                             mbr->array[part_cnt].classname, mbr->array[part_cnt].lenlo);

                            disk_array[part_index].offset = mbr->array[part_cnt].addrlo;

                            disk_array[part_index].size = mbr->array[part_cnt].lenlo;

                            part_secur[part_index] = mbr->array[part_cnt].user_type;

                            part_index ++;

             }

         }

         disk_array[part_index - 1].size = DiskSize - mbr->array[mbr->PartCount - 1].addrlo;

         _free_mbr();

         PRINT("The %d disk size = %lu\n", part_index - 1, disk_array[part_index - 1].size);

         PRINT("part total count = %d\n", part_index);

#else

         part_index = 1;

         disk_array[0].offset = 0;

         disk_array[0].size = DiskSize;

         part_secur[0] = 0;

#endif

         return part_index;

}

 

红色部分为改动的内容,旧版的SDK需要做适当的修改才可通过编译,

去掉:part_secur[0] = 0;

 

 

6手机 拨号 apk拨号应用被隐藏

安装了contacts.apk和phone.apk,依然在launcher看不到拨号

frameworks/base/core/res/res/values/config.xml:581:    true

该属性为false时,会隐藏拨号,请注意自己的项目中是否覆盖了该属性

 

7如何修改USB的Pid vid

根据项目需求,我们现需要修改平台的vendor Id & product Id
在sys_config1.fex里面,有如下字段:

;--------------------------------

;---       USB Device

;--------------------------------

[usb_feature]

vendor_id                = 0x18D1

mass_storage_id          = 0x0001

adb_id                   = 0x0002

 

manufacturer_name        = "USB Developer"

product_name             = "Android"

serial_number            = "20080411"

 

[msc_feature]

vendor_name              = "USB 2.0"

product_name             = "USB Flash Driver"

release                  = 100

luns                     = 2

相信vendor_id便是vid,改变此键值,即可达到改变vid的目的,那pid是怎么修改呢?

android的设置 -> 存储 -> USB计算机连接,有三个选项,分别是:媒体设备(MTP)、
相机(PTP)、USB大容量存储。我分别用这三种模式与电脑连接,得到的pid & vid信息
如下:
媒体设备(MTP) :     vid = 18D1 ;    pid = 0007
相机(PTP)         :     vid = 18D1 ;    pid = 0009
USB大容量存储     :     vid = 18D1 ;    pid = 0003

请问pid根据什么规则变化呢?我该如何配置相应的值?

请参见sys_config1.fex和文件 init.sun5i.usb.rc

媒体设备(MTP     vid = 18D1     pid = 0007

对应:

on property:sys.usb.config=mtp,adb

    write /sys/class/android_usb/android0/enable 0

    write /sys/class/android_usb/android0/idVendor   18d1

    write /sys/class/android_usb/android0/idProduct   0007

    write /sys/class/android_usb/android0/functions   $sys.usb.config

    write /sys/class/android_usb/android0/enable 1

    start adbd

    setprop sys.usb.state $sys.usb.config

其它类似

8外部SD卡无法写入

只能读,程序无法写入
Androidmanifest
权限声明内容:

    

        

      

    

        

    

 

 

 

看到sd目录和extsd目录的权限相同,都是system,但用户组不一样
sd是sdcard_rw,外部sd是media_rw

可以简单处理,修改一下extsd的用户组到sdcard_rw
修改system/vold/Volume.cpp  542

if (primaryStorage) {

            // Special case the primary SD card.
            // For this we grant write access to the SDCARD_RW group.
            gid = AID_SDCARD_RW;
        } else {
            // For secondary external storage we keep things locked up.
            gid = AID_MEDIA_RW;
        }



改为

if (1) {

            // Special case the primary SD card.
            // For this we grant write access to the SDCARD_RW group.
            gid = AID_SDCARD_RW;
        } else {
            // For secondary external storage we keep things locked up.
            gid = AID_MEDIA_RW;
        }

9高清播放器删除最后一张图片时,图片再无法移动问题

 Gallery2\src\com\android\gallery3d\ui\PhotoView.java 

public void startSlideInAnimation(int direction) {

         ...
        mTransitionMode = direction; 改成  mTransitionMode = TRANS_NONE;
        

}

10A10v1.4版本没有声音

配置文件没有加pa_dev的权限导致:
比如crane-evb-v12r:对应目录android4.0.4\device\softwinner\crane-evb-v12r\ueventd.sun4i.rc
里面加pa_dev的权限:
/dev/pa_dev               0777   system     system

 

11阿拉伯文下高清播放器不能搜索到.avi格式的媒体文件

由于阿拉伯文下 .avi后缀的视频,后缀名被转码后识别不了,需要修改以下地方。
frameworks\base\media\java\android\media\MediaFile.java 

    public static MediaFileType getFileType(String path) {

        int lastDot = path.lastIndexOf(".");

        if (lastDot < 0)

            return null;

        return sFileTypeMap.get(path.substring(lastDot + 1).toUpperCase(Locale.ENGLISH));

    }

    public static MediaFileType getFileType(String path) {

        int lastDot = path.lastIndexOf(".");

        if (lastDot < 0)

            return null;

        return sFileTypeMap.get(path.substring(lastDot + 1).toUpperCase(Locale.ENGLISH));

    }

public static MediaFileType getFileType(String path) {
     int lastDot = path.lastIndexOf(".");
     if (lastDot < 0)  
         return null;
      return sFileTypeMap.get(path.substring(lastDot + 1).toUpperCase(Locale.ENGLISH));
}

12字体设置为大、超大时,竖屏在解锁界面,解锁的图标显示不全

800x600,lcd_denisty 160

frameworks/base/core/res/res/layout-sw600dp/keyguard_screen_tab_unlock.xml
适当加大72行的android:layout_weight="1"
这样解锁部分的面积会增加,解决这个问题
其他分辨率需要修改其他layout文件夹下的keyguard_screen_tab_unlock.xml

 

13,设置-安全-屏幕锁定-图案界面,在坚屏时不显示取消/下一步

800x600,lcd_denisty 160

packages/apps/Settings/res/layout-sw600dp/choose_lock_pattern_tutorial.xml
把两个layout_marginTop都适当改小

 

14音效里的NormalFlat功能反

frameworks/base/media/libeffects/lvm/wrapper/Bundle/EffectBundle.h
gEqualizerPresets
数组,名字可以随意修改

 

14,动态壁纸 线性光幕效果有黑块

 将壁纸设为动态壁纸中的“线性光幕效果”时,在主界面旋转屏幕时未显示完整,即往边上拉存在黑块问题。

修改:
android\packages\wallpapers\Basic\src\com\android\wallpaper\nexus\NexusRS.java

    @Override
    public void setOffset(float xOffset, float yOffset, int xPixels, int yPixels) {
        //mXOffset = xOffset; 
        //mScript.set_gXOffset(xOffset);
    }

15android4.0量产时用户区不能格式化

版本为v1.0,量产配置已经加入erase_flag=1,仍然不能格式化

16如何修改setting里面各字体对应的大小

感觉setting里面字体大小选择的变化幅度太大,希望小不要太小,特大不要太大,每级变化的幅度缩小点该如何修改

android4.0\packages\apps\Settings\res\values\arrays.xml文件里


       
0.85
       
1.0
       
1.15
       
1.30
   

默认是0.15的梯度改成合适的梯度如


       
0.90
       
1.0
       
1.10
       
1.20
   

17user模式下gsensor不可用

不能编译成user模式只能ENG模式,user模式下Gsensor不能旋转

mma7660出现过这种情况,原因是sensors.exDroid.so编译出来以后没有安装到/system/lib/hw下可以在build/target/product/generic_no_telephony.mk中加入 sensors.exDroid,再重新编译即可

18浏览器退出和浏览器为android模式时看在线视频卡

A10
1
:在浏览时有时偶尔会退出
2
:浏览器用android模式,看在线视频十几分钟左右后会卡,但用ipad模式不会卡

1.              需要具体分析问题,我们其它客户案上浏览正常
2
android模式采用的flash格式播放,而ipad采用的html5flash由于自身格式和片源分割的关系,在线视频有机率产生不同步或卡顿问题。该问题由flash自身引起,这也是为何flash会逐渐被html5取代的一个方面

193g dongle在特定的区域死机

 dongle在信号好的地方可以正常使用,在信号差的地方,连接慢,且使用几分钟后会出现蓝屏、黑屏、死机等现象

3G dongle属于射频产品,对USB线的要求比较高,特别是在信号不强的情况下,使用时使用带有屏蔽处理较好的USB OTG线即可。

20android4.0.3camera延时录制是什么功能?

该功能主要是拍摄车水马龙、行云流水等用的;假设录制的正常帧率是15fps,如果设置成延时1s,则代表1s会录制1帧,如果想实际录制的视频有1s的内容(15帧),则实际需要录制15s;一些客户反馈,录制一段视频后,实际播放的时间很短,就是因为这个原因

21android4.0中如何自动弹出USB

修改 frameworks\base\packages\SystemUI\src\com\android\systemui\usb\StorageNotification.java

 //Intent intent = new Intent();

//            Intent intent = new Intent();

//            intent.setClass(mContext, com.android.systemui.usb.UsbStorageActivity.class);

//            PendingIntent pi = PendingIntent.getActivity(mContext, 0, intent, 0);

//            setUsbStorageNotification(

//                    com.android.internal.R.string.usb_storage_stop_notification_title,

//                    com.android.internal.R.string.usb_storage_stop_notification_message,

//                    com.android.internal.R.drawable.stat_sys_warning, false, true, pi) ;

//intent.setClass(mContext, com.android.systemui.usb.UsbStorageActivity.class);
 //PendingIntent pi = PendingIntent.getActivity(mContext, 0, intent, 0);
 //setUsbStorageNotification(
 //           com.android.internal.R.string.usb_storage_stop_notification_title,
 //           com.android.internal.R.string.usb_storage_stop_notification_message,
//            com.android.internal.R.drawable.stat_sys_warning, false, true, pi);
         ...
}


void updateUsbMassStorageNotification(boolean available) {
      StorageManager mStorageManager = null;
     if (available)
     {
         if(mContext != null)
         {
              mStorageManager = (StorageManager) mContext.getSystemService(Context.STORAGE_SERVICE);
         }
         else
         {
              Slog.w(TAG, "mContext is null ,getSystemService error !");
         }

         //            Intent intent = new Intent();
         //            intent.setClass(mContext, com.android.systemui.usb.UsbStorageActivity.class);
         //            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
         //            PendingIntent pi = PendingIntent.getActivity(mContext, 0, intent, 0);
         //            setUsbStorageNotification(
         //                    com.android.internal.R.string.usb_storage_notification_title,
         //                    com.android.internal.R.string.usb_storage_notification_message,
         //                    com.android.internal.R.drawable.stat_sys_data_usb,
         //                    false, true, pi);

      if(mStorageManager != null)
            {
         mStorageManager.enableUsbMassStorage();
       } 
    

 //            intent.setClass(mContext, com.android.systemui.usb.UsbStorageActivity.class);

//            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

//

//            PendingIntent pi = PendingIntent.getActivity(mContext, 0, intent, 0);

//            setUsbStorageNotification(

//                    com.android.internal.R.string.usb_storage_notification_title,

//                    com.android.internal.R.string.usb_storage_notification_message,

//                    com.android.internal.R.drawable.stat_sys_data_usb,

//                    false, true, pi);

//            intent.setClass(mContext, com.android.systemui.usb.UsbStorageActivity.class);

//            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

//

//            PendingIntent pi = PendingIntent.getActivity(mContext, 0, intent, 0);

//            setUsbStorageNotification(

//                    com.android.internal.R.string.usb_storage_notification_title,

//                    com.android.internal.R.string.usb_storage_notification_message,

//                    com.android.internal.R.drawable.stat_sys_data_usb,

//                    false, true, pi);

//            intent.setClass(mContext, com.android.systemui.usb.UsbStorageActivity.class);

//            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

//

//            PendingIntent pi = PendingIntent.getActivity(mContext, 0, intent, 0);

//            setUsbStorageNotification(

//                    com.android.internal.R.string.usb_storage_notification_title,

//                    com.android.internal.R.string.usb_storage_notification_message,

//                    com.android.internal.R.drawable.stat_sys_data_usb,

//                    false, true, pi);

//            intent.setClass(mContext, com.android.systemui.usb.UsbStorageActivity.class);

//            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

//

//            PendingIntent pi = PendingIntent.getActivity(mContext, 0, intent, 0);

//            setUsbStorageNotification(

//                    com.android.internal.R.string.usb_storage_notification_title,

//                    com.android.internal.R.string.usb_storage_notification_message,

//                    com.android.internal.R.drawable.stat_sys_data_usb,

//                    false, true, pi);

//            intent.setClass(mContext, com.android.systemui.usb.UsbStorageActivity.class);

//            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

//

//            PendingIntent pi = PendingIntent.getActivity(mContext, 0, intent, 0);

//            setUsbStorageNotification(

//                    com.android.internal.R.string.usb_storage_notification_title,

//                    com.android.internal.R.string.usb_storage_notification_message,

//                    com.android.internal.R.drawable.stat_sys_data_usb,

//                    false, true, pi);

//            intent.setClass(mContext, com.android.systemui.usb.UsbStorageActivity.class);

//            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

//

//            PendingIntent pi = PendingIntent.getActivity(mContext, 0, intent, 0);

//            setUsbStorageNotification(

//                    com.android.internal.R.string.usb_storage_notification_title,

//                    com.android.internal.R.string.usb_storage_notification_message,

//                    com.android.internal.R.drawable.stat_sys_data_usb,

//                    false, true, pi)

     }
else if(!mUmsAvailable || !atLeastOneDeviceMounted())
     {
            setUsbStorageNotification(0, 0, 0, false, false, null);
            if(mStorageManager != null)
            {
              mStorageManager.disableUsbMassStorage();
            }
        }

    
}

22电池提示无法获取电池使用数据

设置--电池--,里面提示无法获取电池使用数据

android4.0(1.2版本之后,之前没有此功能)
在device\softwinner\crane-xxx\overlay\frameworks\base\core\res\res\xml  目录下, 增加 power_profile.xml
power_profile.xml 内容如下

 

     0

     55

     142

     1

     35690

     115

     4

     130

     104

     75

     75

     300

     170

     70

    

         3

         3

    

    

         1000000

         900000

         800000

         700000

         600000

         500000

         400000

         300000

         200000

         100000

    

     10

    

         840

         760

         680

         520

         440

         360

         280

         200

         120

         40

    

     1000

 

 

     0

     55

     142

     1

     35690

     115

     4

     130

     104

     75

     75

     300

     170

     70

    

         3

         3

    

    

         1000000

         900000

         800000

         700000

         600000

         500000

         400000

         300000

         200000

         100000

    

     10

    

         840

         760

         680

         520

         440

         360

         280

         200

         120

         40

    

     1000

 

 

     0

     55

     142

     1

     35690

     115

     4

     130

     104

     75

     75

     300

     170

     70

    

         3

         3

    

    

         1000000

         900000

         800000

         700000

         600000

         500000

         400000

         300000

         200000

         100000

    

     10

    

         840

         760

         680

         520

         440

         360

         280

         200

         120

         40

    

     1000

 


    
     0

55

     142

     1

     35690

     115

     4

     130

     104

     75

     75

     300

     170

     70


55
142
1
     35690
     115
     4
     130
     104
     75
     75
     300
     170
     70
    
         3
         3
    

    
         1000000
         900000
         800000
         600000
         400000
         100000
    

     6
    
         1008
         960
         860
         680
         440
         40
    

     1000

23android2.3上如何开启U盘自动扫描

插入U盘后在播放器中看不到U盘文件,如何才能打开

需修改
frameworks\base\core\java\android\provider\Settings.java

frameworks\base\packages\SettingsProvider\src\com\android\providers\settings\DatabaseHelper.java
packages\providers\MediaProvider\src\com\android\providers\media\MediaScannerReceiver.java
packages\providers\MediaProvider\src\com\android\providers\media\MediaScannerService.java
具体修改如若无法完成,可参考相关补丁包
24
如何降低CPU最高频率

目前系统为动态调频,如何限定最高CPU频率?

降低CPU频率需要作以下两个修改:
1)在lichee\tools\pack\chips\sun5i\configs\android\xxx\sys_config1.fex文件(“xxx”为对应的方案配置文件目录)中修改启动频率:
       [target]boot_clock =1008
    boot_clock
为启动的CPU频率,单位为MHz,根据需要自行修改,该值不能大于最高频率;

    2)在lichee\linux-3.0\arch\arm\mach-sun4i\cpu-freq\cpu-freq.h文件中修改CPU的最高频率:
        #define SUN4I_CPUFREQ_MAX       (1008000000)
       SUN4I_CPUFREQ_MAX
为CPU允许运行的最高频率,单位是Hz,根据需要自行修改;

25android4.0在阿拉伯语语言问题

android4.0在阿拉伯语语言系统下,APK程序进入到”设置”--“应用程序“--”储存转移“,点击“移至平板电脑”,出现无法移动的对 话框

 

问题补充 2012/04/27 20:19

在使用google market下载apk时,出现错误的提示框,也是由于 android4.0 在阿拉伯文支持上有问题。

由于android4.0对阿拉伯文支持问题,在调用String.format()方法的时候会出现有乱码的情况。
具体此问题,需要修改
frameworks\base\services\java\com\android\server\MountService.java
将 

public int createSecureContainer(String id, int sizeMb, String fstype,

                                    String key, int ownerUid) {

public int createSecureContainer(String id, int sizeMb, String fstype,

                                    String key, int ownerUid) {

public int createSecureContainer(String id, int sizeMb, String fstype,

                                    String key, int ownerUid) {

public int createSecureContainer(String id, int sizeMb, String fstype,String key, int ownerUid) {
     。。。
String cmd = String.format("asec create %s %d %s %s %d", id, sizeMb, fstype, key, ownerUid);
修改为 String cmd = "asec create "+id+" "+ sizeMb+" "+ fstype+" "+ key+" "+ ownerUid;

即可

26如何在摄像头录像界面,预览画面跟随录像分辨率变化

例如:在media_profiles.xml文件中,分别设置了720p和480p的录像分辨率:


           
width="1280"
                  
height="720"
                   frameRate="30" />
           
           
width="640"
                   height="480"
                   frameRate="25" />

            在camera.cfg文件中,对应的摄像头配置里面,需根据上面红色字体在
key_support_preview_size = 添加1280x720,640x480 跟录像设置的分辨率一样的预览支持分辨率

27,nexus和galaxy4动态壁纸显示问题

设置好动态壁纸,切换横竖屏,显示出现问题,被拉伸,或缺失

nexus

packages/wallpapers/Basic/src/com/android/wallpaper/nexus/NexusRS.java


69resize函数
@Override

    public void resize(int width, int height) {
        super.resize(width, height); // updates mWidth, mHeight
        // android.util.Log.d("NexusRS", String.format("resize(%d, %d)", width, height));
    }
改成
@Override

    public void resize(int width, int height) {
        super.resize(width, height); // updates mWidth, mHeight
        createProgramVertex();
        // android.util.Log.d("NexusRS", String.format("resize(%d, %d)", width, height));
    }

galaxy4

packages/wallpapers/Galaxy4/src/com/android/galaxy4/Galaxy4Wallpaper.java

onSurfaceChanged函数改为

@Override

        public void onSurfaceChanged(SurfaceHolder surfaceHolder, int format, int width, int height) {
            super.onSurfaceChanged(surfaceHolder, format, width, height);

            if (mRenderScript != null) {
                mRenderScript.setSurface(surfaceHolder, width, height);
            }

            if (mWallpaperRS == null) {
                mWallpaperRS = new GalaxyRS();
                mWallpaperRS.init(mRenderScript, getResources(), width, height);
                mWallpaperRS.start();
            }

             mWallpaperRS.resize(width, height);
        }

packages/wallpapers/Galaxy4/src/com/android/galaxy4/GalaxyRS.java文件,
添加如下代码

public void resize(int w,int h) {

        mWidth = w;
        mHeight = h;
        createProgramVertex();
    },

28android4.0修改system/build.prop文件后看不到变化

 第一次烧录后开机,看不到修改后的信息,要在烧录后第2次打开才能看到修改后的内容

原因:是在修改system/build.prop文件后,没有使用make systemimage-nodeps命令
解决方法:修改文件后,使用make systemimage-nodeps命令后,再pack

29韩文字幕显示有乱码

 

1.修改 Gallery2\src\com\android\gallery3d\app\MovieViewControl.java,见以下代码红色部分:

    private View.OnClickListener mSubCharSetListener = new View.OnClickListener() {
        public void onClick(View v) {
            mMediaController.setHolding(true);
         mControlFocus = EDITOR_SUBCHARSET;
         
         mDialogTitle.setText(R.string.charset_title);
         mListFocus = 0;
         String currentCharset = mVideoView.getSubCharset();
         String[] CharsetList = mRes.getStringArray(R.array.screen_charset_values);
         for(int i = 0; i < CharsetList.length; i++) {
          if(currentCharset.equalsIgnoreCase(CharsetList[i])) {
           mListFocus = i;
           break;
          }
         }
         
         ArrayAdapter adapter = new ArrayAdapter(mContext,
           R.layout.simple_list_item_single_choice,
         
  mRes.getStringArray(R.array.screen_charset_entries));

         mListView.setAdapter(adapter);
            mListView.setItemChecked(mListFocus, true);
            mListView.smoothScrollToPosition(mListFocus);
         mListDialog.show();
        }
    };

 

2.修改Gallery2\res\values\arrays.xml,如下:

   
   
     "UTF-8"
     "GBK"
     "Big5"
     "EUC-KR"
     "Shift_JIS"
     "TIS-620"
     "KOI8-R"
     "ISO-8859-5"
     "windows-1251"
     "UTF-16BE"
     "UTF-16LE"
     "ISO-8859-1"
     "windows-1254"
     "ISO-8859-2"
     "windows-1250"
     "ISO-8859-3"
     "ISO-8859-4"
     "ISO-8859-6"
     "windows-1256"
     "ISO-8859-7"
     "windows-1253"
     "ISO-8859-8"
     "windows-1255"
     "ISO-8859-9"
     "windows-1252"
     "windows-1258"
   

 

3.修改Gallery2\res\values\strings.xml,如下:

   
   
     Unicode(UTF-8)
     Simplified Chinese(GBK)
     Traditional Chinese(Big5)
     Korean(EUC-KR)
     Japanese(Shift_JIS)
     Thai(TIS-620)
     Cyrillic(KOI8-R)
     Cyrillic(ISO-8859-5)
     Cyrillic(cp1251)
     Unicode(UTF-16BE)
     Unicode(UTF-16LE)
     Western Europe(ISO-8859-1)
     Western language(cp1254)
     Central Europe(ISO-8859-2)
     Central Europe(cp1250)
     Southern Europe(ISO-8859-3)
     Northern Europe(ISO-8859-4)
     Arabic(ISO-8859-6)
     Arabic(cp1256)
     Greek(ISO-8859-7)
     Greek(cp1253)
     Hebrew(ISO-8859-8)
     Hebrew(cp1255)
     Turkish(ISO-8859-9)
     Turkish(cp1252)
     Vietnamese(cp1258)
   


4.
简体中文支持,修改Gallery2\res\values-zh-rCN\strings.xml,如下:
   
     "Unicode(UTF-8)"
     "
简体中文(GBK)"
     "繁体中文
(Big5)"
     "韩文
(EUC-KR)"
     "日文
(Shift_JIS)"
     "泰文
(TIS-620)"
     "西里尔文
(KOI8-R)"
     "西里尔文
(ISO-8859-5)"
     "西里尔文
(cp1251)"
     "Unicode(UTF-16BE)"
     "Unicode(UTF-16LE)"
     "西欧语系
(ISO-8859-1)"
     "西欧语系
(cp1254)"
     "中欧语系
(ISO-8859-2)"
     "中欧语系
(cp1250)"
     "南欧语系
(ISO-8859-3)"
     "北欧语系
(ISO-8859-4)"
     "阿拉伯文
(ISO-8859-6)"
     "阿拉伯文
(cp1256)"
     "希腊语
(ISO-8859-7)"
     "希腊语
(cp1253)"
     "希伯来文
(ISO-8859-8)"
     "希伯来文
(cp1255)"
     "土耳其文
(ISO-8859-9)"
     "土耳其文
(cp1252)"
     "越南文
(cp1258)"
 

 播放视频时,记得 在 播放界面 选择 相应的字幕 。例如 韩文 ,在播放界面,选择 "..."后,选择韩文字幕 。

30修改sys_config1后,如果能不升级整个固件就让其生效

每次升级整个固件太慢,有没有办法部分升级?

1. android shell中将/dev/block/nanda mount到某个节点:
    mount -t vfat /dev/block/nanda /mnt/nand

2. 修改sys_config1build固件,然后在lichee\tools\pack\out\bootfs下找到scrpt.binscript0.bin
3.
然后用adb连接后,将scritp.binscript0.bin推到所mount节点的根目录下,替换原有同名文件:
    adb push script*.bin  /mnt/nand/

4. 最后sync重启即可
    adb shell

    sync
    reboot

31如何修改浏览器默认模式

在android4.0.1/packages/apps/Browser/res/xml/debug_preferences.xml中将

 39         android:key="user_agent"
 40         android:title="@string/pref_development_uastring"
 41         android:entries="@array/pref_development_ua_choices"
 42         android:entryValues="@array/pref_development_ua_values"
 43         android:defaultValue="3"/>
中修改defaultValue的值,对应如下:
Android  :0
Desktop :1
iPhone:2
iPad :3
Froyo-N1:4
Honeycomb-Xoom:5

追问:BrowserSetting.java文件中需要同步修改,否则会出现显示值和实际值第一次不一致的情况: public int getUserAgent() { if (!isDebugEnabled()) { return 0; } /* modified by Gary. start {{----------------------------------- */ /* 2011-11-29 */ /* modify the default user agent */ return Integer.parseInt(mPrefs.getString(PREF_USER_AGENT, "3")); /* add by Gary. end -----------------------------------}} */ }

32电量管理不准以及低电不关机

v1.0和v1.1中感觉电池电量不准,在低电情况下,系统也没有自动关机

需确认sys_config1.fex以下几个地方:
1. pmu_battery_rdc
的值为100
2. pmu_battery_cap
为正确的电池电量
3. pmu_bat_para
的放电曲线校正

对于低电系统没有自动关机问题,一般尝试修改pmu_battery_cap
pmu_bat_para4            = 0

pmu_bat_para5            = 5

33android4.0 GC0307 Camera曝光调节不正常

调节曝光等级-4比等级-3还亮

把gc0307.c驱动里的这个数组,
static struct regval_list sensor_ev_neg4_regs[ ] = {

     {{0xf0},{0x00}},

     {{0x7a},{0xc0}},                   

     {{0xd1},{0x30}}, 

     {{0xf0},{0x00}},
     {{0x7a},{0x00}},
     {{0xd1},{0x50}},
};
改成
static struct regval_list sensor_ev_neg4_regs[ ] = {

     {{0xf0},{0x00}},

     {{0x7a},{0xc0}},                   

     {{0xd1},{0x30}}, 

     {{0xf0},{0x00}},
     {{0x7a},{0xc0}},
     {{0xd1},{0x30}},
};

34adb中使用busybox

adb自带的shell使用很不爽,能不能使用busybox

adb中运行如下命令即可:
busybox sh

要退出busybox模式,输入exit即可

35如何单独替换内核

有没有办法不升级整个固件,单独替换内核

android shell中将/dev/block/nanda mount到某个节点:
mount -t vfat /dev/block/nanda /mnt/nand

然后用adb连接后,将bImage直接push到所mount节点的linux目录下,替换bImage:
adb push bImage /mnt/nand/linux

最后sync重启即可
adb shell

sync
reboot

36竖屏机器在取消“自动选择屏幕”后如何避免变成横屏显示?

文件:
android4.0\frameworks\base\policy\src\com\android\internal\policy\impl\PhoneWindowManager.java

函数:
 public int rotationForOrientationLw(int orientation, int lastRotation) {


....

                default:
                    // For USER, UNSPECIFIED, NOSENSOR, SENSOR and FULL_SENSOR,
                    // just return the preferred orientation we already calculated.
                    if (preferredRotation >= 0 && sensorChanged) {
                        return preferredRotation;
                    }
                    return Surface.ROTATION_270;    //这里修改Surface.ROTATION_0 -> Surface.ROTATION_270


}

37录像时不能选择分辨率

摄像头录像时,选择分辨率的选项没有

如果想在720p和480p之间选择,在mediaprofile.xml文件中,按如下设置:


       
       
           

       
       
           

           

       
           

      
      
           

           


       
       
       
       

       

   

38A13上Goodix TP触摸无效

A10上正常,A13无效

原因:
中断号由A10的EINT21变为A13上的EINT11。

解决方法:
在中断处理函数中把对EINT21的处理变为对EINT11的处理。
goodix_touch.c

static irqreturn_t goodix_ts_irq_handler(int irq, void *dev_id)
{
 struct goodix_ts_data *ts = dev_id; 
 int reg_val; 
 print_int_info("==========------TS Interrupt-----============\n");

 //clear the IRQ_EINT11 interrupt pending
 reg_val = readl(gpio_addr + PIO_INT_STAT_OFFSET);
    
 if(reg_val&(1<<(IRQ_EINT11)))
 { 
  print_int_info("==IRQ_EINT11=\n");
  writel(reg_val&(1<<(IRQ_EINT11)),gpio_addr + PIO_INT_STAT_OFFSET);
  queue_work(goodix_wq, &ts->work);
 }
 else
 {
     print_int_info("Other Interrupt\n");
     return IRQ_NONE;
 }
 return IRQ_HANDLED;
}

39播放部分音视频文件的时候,声音出现卡顿

在其它机器上不会,DDR频率为360M

由于客户的板子loyout或者制作不是很完善,导致DDR频率为360M时,出现播放视频声音卡顿,把DDR频率降为240M左右解决

40如何修改蓝牙名称

如果你想修改默认的名字,可以这么做:
文件external/bluetooth/bluez/src/main.c

main_opts.name  = g_strdup("BlueZ");

里面的BlueZ换成你想要的名字即可!
由于没有悬赏分,只能这么回答了,呵呵~~~

41如何更改android编译选项

比如eng,usr,debug

在相应的device目录下,如crane-evb,打开vendorsetup.sh
将里面
add_lunch_combo crane_evb-eng

最后的eng修改成你希望的模式即可。
如:
add_lunch_combo crane_evb-user

add_lunch_combo crane_evb-userdebug

42为何通过UsbManager调用getDeviceList获取设备列表总是空的

这个是因为缺少android.hardware.usb.host权限,
http://www.oschina.net/code/download_src?file=android-4.0.1%2Fdata%2Fetc%2Fandroid.hardware.usb.host.xml

下载该文件,放在/system/etc/permisson/下,可以解决

43低电自动关机重启

低电状态下,自动关机后重启,进不了系统,偶尔能进入系统但是触屏没反应

原因在于源不足以支持系统开机,而此时电池又电量太低,导致不能满足整个系统的开机功耗。解决方法是提高开机的门限电和Android关机门限。
 1:boot
阶段开机的门限电压设置方法 
在sys_config1脚本中
[boot_extend]
vol_threshold = 3500
2:修改Android 低电关机的门限
 BatteryService.java 

     private final void shutdownIfNoPower() {
        // shut down gracefully if our battery is critically low and we are not powered.
        // wait until the system has booted before attempting to display the shutdown dialog.
        if (mBatteryLevel < 
5 &&5为5%即可关机修改 为更大的值,具体值可以根据具体情况而定)

44sys_config1power20x是什么意思

power指PMUPIN

20x意义如下:

201表示axp20_rtc
202表示
"axp20_analog/fm"
203表示
"axp20_pll"
204表示"axp20_hdmi"

45A13 wifi关闭后电源没有关断

A13方案的wifi在关闭后电源没有关断,导致休眠唤醒出问题

检查USB WIFI部分的usb_drv_vbus_gpio的配置是否正确
A13方案中,除使用gpio外,还会用到PMULDO,请注意

46如何修改鼠标的按键定义

鼠标插上以后,左键和右键的功能都是左键的,如何将右键修改为返回

这个是android的标准做法,如果定制,可以修改frameworks/base/services/input/inputreader.cpp文件中的:

 

uint32_t CursorButtonAccumulator::getButtonState() const {
    uint32_t result = 0;
    if (mBtnLeft) {
        result |= AMOTION_EVENT_BUTTON_PRIMARY;
    }
    if (mBtnRight) {
        result |= AMOTION_EVENT_BUTTON_SECONDARY;
    }
    if (mBtnMiddle) {
        result |= AMOTION_EVENT_BUTTON_TERTIARY;
    }
    if (mBtnBack || mBtnSide) {
        result |= AMOTION_EVENT_BUTTON_BACK;
    }
    if (mBtnForward || mBtnExtra) {
        result |= AMOTION_EVENT_BUTTON_FORWARD;
    }
    return result;
}

目前因为下面函数

static bool isPointerDown(int32_t buttonState) {
    return buttonState &
            (AMOTION_EVENT_BUTTON_PRIMARY | AMOTION_EVENT_BUTTON_SECONDARY
                    | AMOTION_EVENT_BUTTON_TERTIARY);
}

 

将鼠标左右键的功能设置成判断鼠标是否点击的操作,所以功能一致,如果需要修改,这需要改一下上面的getButtonState函数中的标志位即可,比如需要将右键改为后退键,只需要

函数中:

  if (mBtnRight) {
        result |= AMOTION_EVENT_BUTTON_SECONDARY;
    }

改为

  if (mBtnRight) {
        result |= AMOTION_EVENT_BUTTON_BACK;
    }

即可。

47android4.0上如何将一个电阻屏的工程修改为电容屏的?

在android4.0上需要修改些什么才能从电阻屏转化为电容屏?

该部分在发给客户的定制文档中已有说明,针对4.0相关的修改点如下:

1. sys_config1.fex文件:屏蔽掉RTP相关的配置:

[rtp_para]
rtp_used      =0
rtp_screen_size =7
rtp_regidity_level = 7
rtp_press_threshold_enable = 0
rtp_press_threshold = 0x1f40
rtp_sensitive_level = 0xf
rtp_exchange_x_y_flag = 0
配置正确的CTP参数,以ft5x为参考:
[ctp_para]

ctp_used                 =1
ctp_name                 = "ft5x_ts"

ctp_twi_id               = 2
ctp_twi_addr             =0x38
ctp_screen_max_x         = 1024
ctp_screen_max_y         = 768
ctp_revert_x_flag        = 0
ctp_revert_y_flag        = 0
ctp_exchange_x_y_flag    = 0

ctp_int_port             = port:PH21<6>
;ctp_wakeup               = port:PB13<1><1>
ctp_reset                = port:PH20<1>
ctp_io_port              = port:PH21<0>
该部分的参数意义可以查看收到的‘Android定制文档’

2.驱动相关:

正确编译相关驱动,默认已提供敦泰、蕙鼎驱动;
在init.sun4i.rc文件中正确insmod相关驱动:
insmod /system/vendor/modules/sun4i-ts.ko   //注释掉默认的电阻屏驱动 insmod /system/vendor/modules/ft5x_ts.ko     //正确加载使用的驱动


3.其他细节

(1)4.0上需添加一个tp的idc文件,用于参数校正,文件名用驱动的input name即可;

crane_xxx中的sun4i-ts.idc文件改名为
ft5x_ts.idc
同时在crane_xxx.mk文件修改拷贝动作:

device/softwinner/crane-xxx/ft5x_ts.idc:system/usr/idc/ft5x_ts.idc
(2) 去掉rtp上用到的触摸校准程序:

crane-xxx.mk中去掉:
PRODUCT_PACKAGES += \
TSCalibration2
使在编译打包时不包含该触摸校准应用;

48android平台的OMX框架是否有硬件加速

android平台的OMX的解码框架支持硬件加速

49A13怎么用串口打印信息?

A13调试版本固件支持SD卡输出打印,以及打开JTAG功能的配置方法如下:

1.修改配置文件 sys_config1.fex,支持调试打印从SD0接口输出:
[uart_para]
 uart_debug_port          = 1
 uart_debug_tx            = port:PG3<4><1>
 uart_debug_rx            = port:PG4<4><1>

     修改为:
[uart_para]
uart_debug_port          = 0
uart_debug_tx            = port:PF2<4><1>
uart_debug_rx            = port:PF4<4><1>

 [uart_para0]
uart_used                = 0
uart_port                = 0
uart_type                = 2
uart_tx                  = port:PG3<4><1>
uart_rx                  = port:PG4<4><1>

修改为:
[uart_para0]
uart_used                = 1
uart_port                = 0
uart_type                = 2
uart_tx                  = port:PF2<4><1>
uart_rx                  = port:PF4<4><1>

[mmc0_para]

sdc_used                 = 1

修改为:
[mmc0_para]
sdc_used                 = 0

  同时个改u-boot源文件“lichee\u-boot\include\configs\sun5i_a13.h”,配置打印由uart0输出:
#define CONFIG_CONS_INDEX            2             /* which serial channel for console */
   修改为:
#define CONFIG_CONS_INDEX            1             /* which serial channel for console */

修改配置文件 sys_config1.fex,支持JTAG:
[jtag_para]
jtag_enable              = 0
修改为:
[jtag_para]
jtag_enable              = 0

50swi entry mismatch,有没有相关资料啊

[       0.212] gpio config
[       0.212] gpio finish
[       0.408] ERROR : swi entry mismatch[       0.408] The input swi number is 16777215, 0x00ffffff
[       0.411] ERROR : swi entry mismatch[       0.414] The input swi number is 16777215, 0x00ffffff

 

问题补充 2012/04/06 17:04

出问题在Jump to Boot1.处,还没有到uboot,我使用的是crane_sdk_v4.0.8-1版本

问题补充 2012/04/06 17:05

我在lunch使用的是evb配置

问题补充 2012/04/11 17:10

fail:/home/sys161117/lichee/tools/pack/out/bootfs/vendor/system/media 0 

问题补充 2012/04/11 17:11

打包的时候有这个错误
fail:/home/sys161117/lichee/tools/pack/out/bootfs/vendor/system/media 0 

问题补充 2012/04/12 09:20

出现这个问题是因为设置了
设置启动就是hdmi显示
http://service.awbase.com:8000/ask/?q-137.html

1.在lichee\tools\pack\chips\sun4i\wboot\bootfs\boot.ini中更改以下
display_device= 3
display_mode  = 4   
2.
在sys_config1.fex中更改以下
screen0_output_type      = 3
screen0_output_mode      = 4

51有没有单独烧写uboot和配置的方式

更新uboot可以直接mount /dev/nanda分区,将u-boot.bin放在/nanda/linux/下,具体方式可以通过adb

追问:你这个是不是必须要到android起来才能操作,我想在boot下或者tf卡上烧写

52,通过 USB充电使用

 机器通过 USB线接电脑充电使用,在玩游戏的过程中耗电量大于充电量,导致没有电流流入电池,反而是电池在耗电,但是机器显示电量百分比一直不会下降,也不会低电提示和低电关机。直到电池电量完全耗尽,机器会强制关机。

该问题为充电下电量处理的问题,在v1.2版本已经修正

53系统无法启动:key found, jump to fel

打印信息如下:
HELLO! BOOT0 is starting!
boot0 version : .2.2
dram size =512
Succeed in opening nand flash.
Succeed in reading Boot1 file head.
The size of Boot1 is 0x00036000.
The file stored in 0X00000000 of block 2 is perfect.
Check is correct.
Ready to disable icache.
Succeed in loading Boot1.
Jump to Boot1.
[       0.128] boot1 version : 1.2.6
[       0.128] pmu type = 3
[       0.156] axi:ahb:apb=3:2:2
[       0.156] set dcdc2=1400, clock=1008 successed
[       0.158] key
[       8.370] timeout, but no power key found
[       8.370] key found, jump to fel

 

请检查下按键处的电阻是否有焊接,从打印来看是boot检测到按键,走到升级流程去了

54windows下如何用adb调试呢?

1.        pad上选:“设置”-> "开发人员选项" -> usb 调试,这里勾上。 2.接上windows,若没安装过 adb驱动,则会提示新设备,安装下面目录里面的驱动即可: \tools\\tools_win\USBDriver.rar 3. 用下面的 adb应用程序即可: \tools_win\PlatformTools\platform-tools如:E:\\platform-tools\adb shell

55MXC622X GSENSORandroid4.0上怎么配置

首先在android4.0X\device\softwinner\crane-xx\BoardConfig.mk中添加如下配置:
# Gsensor board config
# we can use this string : mma7660, mxc622x , bma250
SW_BOARD_USES_GSENSOR_TYPE :=
mxc622x
SW_BOARD_GSENSOR_DIRECT_X := true
SW_BOARD_GSENSOR_DIRECT_Y := false
SW_BOARD_GSENSOR_DIRECT_Z := false
SW_BOARD_GSENSOR_XY_REVERT := true
注意:修改该文件后,为确保修改后能编译相关文件,
比较快速简便的方法是:进入android4.0x\device\softwinner\common\hardware\目录下,输入find . | xargs touch命令touch该文件夹下的所有文件。

然后在android4.0X\device\softwinner\crane-xx\init.sun4i.rc中添加如下配置:
# gsensor module
     insmod /system/vendor/modules/mecs.ko
     insmod /system/vendor/modules/mxc622x.ko
     chmod 777 /system/bin/memsicd
     mkdir /data/misc/sensors 0777 system system

service memsicd /system/bin/logwrapper /system/bin/memsicd
  class main

最后在android4.0X\device\softwinner\crane-xx\ueventd.sun4i.rc中添加如下配置:
/dev/mxc622x     0777   system     system
/dev/ecompass_ctrl    0777   system     system

在lichee\tools\pack\chips\sun4i\configs\crane\xx\sys_config1.fex文件中,gsensor的配置如下:

[gsensor_para]
gsensor_used             =1
gsensor_name             = "mxc622x"
gsensor_twi_id           = 1
gsensor_twi_addr         =0x15
gsensor_int1             =
gsensor_int2             =

 

56android 4.0 v1.1版本,编译gps报错

报错信息:

make: *** Notice file: frameworks/base/cmds/svc/NOTICE -- out/target/product/crane-evb-v13/obj/NOTICE_FILES/src//system/framework/svc.jar.txt

没有规则可以创建“out/target/product/crane-evb-v13/obj/lib/gps.exDroid.so”需要的目标“device/softwinner/common/hardware/libhardware/gps//haiweixun/gps.exDroid.so”。停止。

因为编译脚本的改变,所以把android4.03\device\softwinner\common\hardware\libhardware\gps\haiweixun\这个文件名gps.sun4i.so改为gps.exDroid.so再编译就可以了

57RTL8188 wifi反馈搜索不到中文名的ap

追踪发现wap_supplicant中得到的SCAN_RESULTS中就没有中文名ap,确认是driver中没有上报该ap

修改方法:
linux-3.0\drivers\net\wireless\rtl8192cu\include\drv_conf.h

markCONFIG_VALIDATE_SSID这个定义

该定于主要用于搜索到SSID后再进行一次过滤,如果是非ascii字符则放弃掉该ap
  if(!( (ssid->Ssid[i] >= 0x20) && (ssid->Ssid[i] <= 0x7e) )){

   RT_TRACE(_module_rtl871x_ioctl_set_c_, _drv_err_, ("ssid has nonprintabl ascii\n"));
   ret= _FALSE;
   break;
  }
RTL沟通,该定于主要用于前期在上层收到非ascii字串后会导致应用程序挂死,目前系统已没有该问题,所以需要该功能的客户可以将该定义注释掉;

58android canvas无法进行裁剪绘制不规则图形

 我实现的是一个翻书效果的应用,但是进行翻页时报错。
异常信息如下:
unSupportedOperationException
at.android.view.GLES20Canvas.clippath(GLES20Canvas.java:413);
不知道这是什么原因

原因是android4.0默认开启硬件加速,绘制由GLES20Canvas处理,该类的clipPath方法直接抛出了上述异常
解决方法:如果您有应用程序的源代码,可以在需要进行clipPathview进行
setLayerType(View.LAYER_TYPE_SOFTWARE,mPaint);
操作,进行软件渲染
59
AndroidModify_V104修改语言等,还是中文

修改语言,时区,机型等在第一次烧写后是中文的,重新启动或恢复出厂设置后又是修改后的语言(比如英语),
1
:能在第一次烧写后就是修改后的语言吗?
2:时区不能随语言的变更而自动改变吗?(或者有对应的说明吗?因为有时候比如印度、意大利等都不太清楚是哪个时区,有个对照表)
3:修改卷标后无效,还是原来的卷标

 

1.  目前还做不到,需要首次启动后再重起才行
2
。时区和语言是两个设置项,需单独设置。对于地区和时区的对照可以自行上网查找相关资料
3
。请更新到V105测试

 

60视频老化退出或者停住

v1.0和v1.1在进行视频老化测试的时候,循环播放一晚
视频出现退出播放或者在切换中定住的问题

 

该问题由解码库的bug引起,目前已经确认并解决,后续版本会fix该问题

61客户反馈,使用新版IC之后仍发现usb host口不能接低速设备;

这个目前是已经支持的,测试过都没问题的。
1.

确定usb host口硬件连接是否和evb板一样。这点一般没问题。

2.

更新 lichee/linux代码到最新的版本。

62F20的CVBS没有输出

我们现在有个F20的机器,CVBS没有输出,
请问下代码的位置,或者是否有开关没打开

 

 CVBS没有输出有可能是引脚功能没有配置正确,首先确认引脚是否有输出可通过测试程序fb_tv来测,应用在releasexx/test/display/fb下。

确认有输出后,可通过代码更改引脚的功能定义,修改文件名为: linux-v2.6.36.4\drivers\video\sun3i\disp\de_bsp\de\disp_tv.c中的Disp_TVEC_Init(void)函数,默认为:

gdisp.screen[0].dac_source[0] = DISP_TV_DAC_SRC_COMPOSITE;

gdisp.screen[0].dac_source[1] = DISP_TV_DAC_SRC_Y;

gdisp.screen[0].dac_source[2] = DISP_TV_DAC_SRC_PB;

gdisp.screen[0].dac_source[3] = DISP_TV_DAC_SRC_PR;

将对应的dac更改在DISP_TV_DAC_SRC_COMPOSITE就可以了。

 

63android 2.3.4 v2.05版本,播放视频待机唤醒后,视频显示反了

 显示屏旋转180度方案上

 

在android2.3.4\frameworks\base\media\CedarX-Projects\CedarXAndroid\Gingerbread\CedarXPlayer.cpp文件中的status_t CedarXPlayer::prepare_l()这个函数中,添加针对屏反方案的控制
例如:

status_t CedarXPlayer::prepare_l() {
 if (mFlags & PREPARED) {
     return OK;
 }

 mIsAsyncPrepare = false;
 
 if(mScreenID == 0) { //master screen
  mPlayer->control(mPlayer, CDX_CMD_SET_VIDEO_ROTATION, 2, 0);
 }
 
 if(mPlayer->control(mPlayer, CDX_CMD_PREPARE, 0, 0) != 0){
  return UNKNOWN_ERROR;
 }

 finishAsyncPrepare_l(0);

 return OK;
}

64android4.0,如何预装apk?

可参考android2.3.4的做法:
1.

在目录/android2.3.4/device/softwinner/crane-evb/apk  下有一些apk
2.

然后crane_evb.mk文件中有语句:
# pre-installed apks

#PRODUCT_COPY_FILES += \
# $(call find-copy-subdir-files,*.apk,$(LOCAL_PATH)/apk,system/preinstall) 

android4.0上同样的在./device/softwinner/crane-xxx建个目录apk,同时修改相应的crane_xxx.mk,在里面添加
# pre-installed apks

#PRODUCT_COPY_FILES += \
# $(call find-copy-subdir-files,*.apk,$(LOCAL_PATH)/apk,system/preinstall) 

这样就可以预装apk了。

64android4.0.10 wifi无法连接

 E/CommandListener(   82): Failed to open /proc/sys/net/ipv6/conf/wlan0/use_tempa
ddr: No such file or directory
E/WifiStateMachine(  175): Unable to change interface settings: java.lang.Illega
lStateException: Unable to communicate with native daemon to set ipv6privacyexte
nsions - com.android.server.NativeDaemonConnectorException: Cmd {interface ipv6p
rivacyextensions wlan0 enable} failed with code 400 : {Failed to set ipv6 privac
y extensions (No such file or directory)}
E/WifiHW  (  175): Supplicant not running, cannot connect
E/WifiHW  (  175): Supplicant not running, cannot connect
E/WifiHW  (  175): Supplicant not running, cannot connect
E/WifiHW  (  175): Supplicant not running, cannot connect
E/WifiHW  (  175): Supplicant not running, cannot connect
E/WifiStateMachine(  175): Failed to setup control channel, restart supplicant
D/WifiHW  (   82): Enter: wifi_get_fw_path function, fw_type=0,
E/SoftapController(   82): iface:wlan0, fname: WL_FW_RELOAD - function not suppo
rted
E/SoftapController(   82): Softap fwReload - failed: -1
E/WifiStateMachine(  175): Failed to reload STA firmware java.lang.IllegalStateE
xception: Error communicating to native daemon
D/CommandListener(   82): Setting iface cfg
D/CommandListener(   82): Trying to bring down wlan0
D/CommandListener(   82): broadcast flag ignored
D/CommandListener(   82): multicast flag ignored
E/CommandListener(   82): Failed to open /proc/sys/net/ipv6/conf/wlan0/use_tempa
ddr: No such file or directory
D/NetworkManagementService(  175): rsp <213 00:92:c3:a2:be:7f 0.0.0.0 0 [down br
oadcast multicast]>
D/NetworkManagementService(  175): flags <[down broadcast multicast]>
E/WifiStateMachine(  175): Unable to change interface settings: java.lang.Illega
lStateException: Unable to communicate with native daemon to set ipv6privacyexte
nsions - com.android.server.NativeDaemonConnectorException: Cmd {interface ipv6p
rivacyextensions wlan0 enable} failed with code 400 : {Failed to set ipv6 privac
y extensions (No such file or directory)}
^C

 

如果是用的rtl8192wifi的话,参考下面修改

1.   BoardConfig.mk文件:

# Wifi related defines

#BOARD_WPA_SUPPLICANT_DRIVER := WEXT

#WPA_SUPPLICANT_VERSION      := VER_0_8_X

# Wifi chipset select

BOARD_WIFI_VENDOR := realtek

ifeq ($(BOARD_WIFI_VENDOR), realtek)

    WPA_SUPPLICANT_VERSION := VER_0_8_X

    BOARD_WPA_SUPPLICANT_DRIVER := NL80211

    BOARD_WPA_SUPPLICANT_PRIVATE_LIB := lib_driver_cmd_rtl

    BOARD_HOSTAPD_DRIVER        := NL80211

    BOARD_HOSTAPD_PRIVATE_LIB   := lib_driver_cmd_rtl

 

    SW_BOARD_USR_WIFI := rtl8192cu

    BOARD_WLAN_DEVICE := rtl8192cu

  endif

2.    init.sun4i.rc文件:

#add for realtek wifi

service wpa_supplicant /system/bin/wpa_supplicant -Dnl80211 -iwlan0 -c/data/misc/wifi/wpa_supplicant.conf

              socket wpa_wlan0 dgram 660 wifi wifi

              group wifi inet

              disabled

              oneshot

65android 2.3.4 v2.05版本,摄像头预览颜色偏蓝

   显示屏旋转180度方案上

 

 CameraHardware.cpp
void CameraHardware::setOveralyRotation(V4L2BUF_t * pV4L2Buf, int preview_width, int preview_height)
添加的这个函数中,把blit_para.src_image.pixel_seq    = G2D_SEQ_VUVU;          /* not use now */
blit_para.dst_image.pixel_seq    = G2D_SEQ_VUVU;          /* not use now */
改为blit_para.src_image.pixel_seq    = G2D_SEQ_NORMAL;          /* not use now */
blit_para.dst_image.pixel_seq    = G2D_SEQ_NORMAL;          /* not use now */

 

66android 4.0.10进土豆网,只能看今日热点,其它的视频看不了?

、修改device/softwinner对应产品目录下的Boardconfig.mk,在文件后面添加一行代码  USE_OPENGL_RENDERER := true;

2、修改device/softwinner对应产品目录下的crane_xxxx.mk文件中增加PRODUCT_PROPERTY_OVERRIDES特性 hwui.render_dirty_regions=false

例如:PRODUCT_PROPERTY_OVERRIDES += \
 persist.sys.usb.config=mass_storage,adb \
 ro.product.firmware=0.3 \
 hwui.render_dirty_regions=false

 

修改完后重新编译即可

67编译crane_sdk_v4.0.8-1到命令pack过不去

cp: cannot stat `/system/build.prop': No such file or directory
cp: cannot stat `/system/media/bootanimation.zip': No such file or directory

 

检查在你的产品目录下是否存在这两个文件,build.prop是属性配置脚本,bootanimation.zip是开机动画

`/system/build.prop'这个文件在系统编译完成之后一定存在,请确认是否正常编译完成~

`/system/media/bootanimation.zip'
开机动画可能不存在,但不会引起打包失败~

68android4.0 AndroidModify_V105_2012_0307

只能该bootlogo和开机logo , 动画,语音,国家,地区,型号改不了。

 

修改后,第一次启动后要重启才能生效

69android 2.3.4 v2.05版本,系统不能恢复出厂设置

system/vold/volume.cpp中,用下面程序替换这个函数 formatVol
int Volume::formatVol() {   

 if (getState() == Volume::State_NoMedia) {       
  errno = ENODEV;       
  return -1;   
 
 } else if (getState() != Volume::State_Idle) {
        errno = EBUSY;       
        return -1;   
 }   
        if (isMountpointMounted(getMountpoint())) {   
      SLOGW("Volume is idle but appears to be mounted - fixing");       
         setState(Volume::State_Mounted);       
   // mCurrentlyMountedKdev = XXX       
         errno = EBUSY;      
    return -1;   
    }   
        bool formatEntireDevice = (mPartIdx == -1);   
        char devicePath[255];   
        dev_t diskNode = getDiskDevice();   
        dev_t partNode = MKDEV(MAJOR(diskNode), (formatEntireDevice ? 1 : mPartIdx));   
        setState(Volume::State_Formatting);   
        int ret = -1;   
  // Only initialize the MBR if we are formatting the entire device   
        if (formatEntireDevice) {       
         sprintf(devicePath, "/dev/block/vold/%d:%d",
   MAJOR(diskNode), MINOR(diskNode));
         SLOGI("init mbr %s (%s)", getLabel(), devicePath);       
         if (initializeMbr(devicePath)) {           
         SLOGE("Failed to initialize MBR (%s)", strerror(errno));           
         goto err;      
          }   
         }
         getDeviceNodes(&partNode, 1);   
         sprintf(devicePath, "/dev/block/vold/%d:%d",MAJOR(partNode), MINOR(partNode));   
         if (mDebug) {      
          SLOGI("Formatting volume %s (%s)", getLabel(), devicePath);   
            }   
     
    if (Fat::format(devicePath, 0)) {       
          SLOGE("Failed to format (%s)", strerror(errno));       
          goto err;   
    }   
          ret = 0;
err:   
   setState(Volume::State_Idle);   
   return ret;
}

70android系统上有屏闪现象

android2.3和android4.0都有

 

目前android2.3.4 v2.05系统上发现客户上是背光电路少了滤波电容,将该电容接上,问题改善。

 

71出现“加密失败”,是什么原因,怎么解决?

 在第一次升级后起来,此时断电,在重新开机,会显示“加密失败”。

什么加密?具体什么环境,请描述全面一点

72更新android2.3的最新2.0.5的时候报错

在外部服务器上更新最新的2.3版本2.0.5,使用git pull后提示出错
具体信息是很多内容出现conflict

 

由于最近的一次patch操作发布有点问题,导致版本有回退
所以在git pull报错的时候可以通过如下步骤解决:
git reset --hard HEAD^

git pull

 

73android 4.0 v1.0版本,摄像头录像时会退出

提示相关的打印信息是:


D/SurfaceView(  637): pckname = com.android.camera
D/CameraHardware(   87): new_preview_format : yuv420sp
D/CameraHardware(   87): new_picture_format : jpeg
D/dalvikvm(  637): GC_CONCURRENT freed 142K, 6% free 7531K/8007K, paused 2ms+2ms

D/dalvikvm(  637): GC_FOR_ALLOC freed 32K, 7% free 7652K/8199K, paused 20ms
I/dalvikvm-heap(  637): Grow heap (frag case) to 7.962MB for 331516-byte allocat
ion
D/dalvikvm(  637): GC_FOR_ALLOC freed <1K, 8% free 7976K/8583K, paused 20ms
E/MediaProfiles(  637): The given camcorder profile camera 0 quality 1001 is not
 found
E/MediaProfiles(  637): The given camcorder profile camera 0 quality 1001 is not
 found
E/MediaProfiles(  637): The given camcorder profile camera 0 quality 1001 is not
 found
E/MediaProfiles(  637): The given camcorder profile camera 0 quality 1001 is not
 found
E/MediaProfiles(  637): The given camcorder profile camera 0 quality 1001 is not
 found
E/MediaProfiles(  637): The given camcorder profile camera 0 quality 1001 is not
 found
E/MediaProfiles(  637): The given camcorder profile camera 0 quality 1001 is not
 found
E/MediaProfiles(  637): The given camcorder profile camera 0 quality 1001 is not
 found
E/MediaProfiles(  637): The given camcorder profile camera 0 quality 1001 is not
 found
E/MediaProfiles(  637): The given camcorder profile camera 0 quality 1001 is not
 found
E/MediaProfiles(  637): The given camcorder profile camera 0 quality 1001 is not
 found
W/dalvikvm(  637): threadid=13: thread exiting with uncaught exception (group=0x
409da1f8)
E/AndroidRuntime(  637): FATAL EXCEPTION: Thread-70
E/AndroidRuntime(  637): java.lang.RuntimeException: Error retrieving camcorder
profile params

 

主要是在media_profiles.xml文件中,从android4.0 v1.0开始,添加了timelapse功能,比如之前有一段是这样配置的:


           

           

       
           

           

       


没有配置timelapse功能,所以在v1.0版本上开始录像时会报上面的错误,导致摄像头程序退出。在上面那一段下面添加下面一段就可以解决该问题了:


           

           

           

       

 

74如何在4.0系统上配置卡的uart输出

修改device下的对应平台目录的pactage.sh,修改如下
---    ./pack -c sun4i -p crane -b evb-v13

+++ ./pack -c sun4i -p crane -b evb-v13 -d card0

 

75v1.0版本提示init:no such service "wpa_supplicant"

升级v1.0后,wifi不可用,提示:
init:no such service "wpa_supplicant"

 

因为v1.0中讲原来在crane-commoninit.rc中的wifi服务移动到各平台
init.sun4i.rc,因此需要在平台的rc中添加wifi服务:
# wifi related service

service wpa_supplicant /system/bin/wpa_supplicant -Dwext -iwlan0 \
    -c/data/misc/wifi/wpa_supplicant.conf -e/data/misc/wifi/entropy.bin    class main
    socket wpa_wlan0 dgram 660 wifi wifi
    group system wifi inet
    disabled
    oneshot

 

76android 4.0升级到v1.0 蓝牙不能用

看打印信息,提示权限问题,但是,在init.sun4i.rc里面又有设置权限

 init.sun4i.rc中,由于更新到v1.0版本,在设置bluetooth相关权限之前,添加了这一段:
# wifi related service

service wpa_supplicant /system/bin/wpa_supplicant -Dwext -iwlan0 \
 -c/data/misc/wifi/wpa_supplicant.conf -e/data/misc/wifi/entropy.bin
 class main
    socket wpa_wlan0 dgram 660 wifi wifi
    group system wifi inet
    disabled
    oneshot

所以导致bluetooth的权限设置不成功。把这段放到设置权限的后面,即可解决该问题。

 

 

 

77android4.0摄像头界面,点设置会退出

客户板子上只有一摄像头,但是在camera.cfg文件里面配置成了两个,改成一个摄像头的配置就好了

 

78Music与Gallery菜单不识别U盘文件

放在U盘里面的文件,在music等应用中看不到

主要因为目前不是默认扫描U盘等USB host设备所致。
若要设置默认扫描,则可以进行如下修改:
frameworks\base\packages\settingsprovider\res\values\Defaults.xml
内的
def_is_scan_usb_host”变量的值由“false”改成“true”。

 

79为什么背光调节调到最亮变黑了?

a10+android4.0 系统:

 pwm
那里有点问题.调整pwm时发现调到最高,应该是输出高电平,但是现在却直接变低电平了.

这是因为客户那边屏的datasheet不对,导致屏的参数设置不对。
刚开始是:
lcd_pwm_freq             = 14200


后来改为:
lcd_pwm_freq             = 210000


之后问题就不存在了。

 

80usb_drv_vbus_gpio可以从PH3 改为 PH2吗?

 在layout一个新板时用到USB2, evb上是:
usb_drv_vbus_gpio        = port:PH3<1><0><0>

可以改为PH2吗?目前PH2没别的功能用的

可以,只要PH2没有被占用。

 

81如何让超清播放器中的缩略图保持原始宽高比

现在的缩略图会被拉伸

 

修改packages/apps/Gallery2/src/com/android/gallery3d/data/UriImage.java文件约210行处

 if (mType == MediaItem.TYPE_MICROTHUMBNAIL) {

                bitmap = BitmapUtils.resizeDownAndCropCenter(bitmap,
                        targetSize, true);
            } else {
                bitmap = BitmapUtils.resizeDownBySideLength(bitmap,
                        targetSize, true);
            }

改为
 if (false) {

                bitmap = BitmapUtils.resizeDownAndCropCenter(bitmap,
                        targetSize, true);
            } else {
                bitmap = BitmapUtils.resizeDownBySideLength(bitmap,
                        targetSize, true);
            }



修改packages/apps/Gallery2/src/com/android/gallery3d/data/ImageCacheRequest.java文件约70

if (mType == MediaItem.TYPE_MICROTHUMBNAIL) {

                bitmap = BitmapUtils.resizeDownAndCropCenter(bitmap,
                        mTargetSize, true);
            } else {
                bitmap = BitmapUtils.resizeDownBySideLength(bitmap,
                        mTargetSize, true);
            }
改为

if (false) {

                bitmap = BitmapUtils.resizeDownAndCropCenter(bitmap,
                        mTargetSize, true);
            } else {
                bitmap = BitmapUtils.resizeDownBySideLength(bitmap,
                        mTargetSize, true);
            }

 

82android2.32.0.5版本出现开机花屏问题

该问题确认为发布时文件修改导致,造成lcd0_ch0的时钟无法设置,只能采用boot的设置值
因此某些屏上就出现了花屏现象,后续版本或补丁会修复此事

 

83系统在关机后一定时间内自动启动

目前支持RTC唤醒系统的功能,但这一部分官方发布的linux内核还存在bug,导致在关机时RTC唤醒了系统,从而重启;

现在提供一个临时的解决方法,禁掉RTC中断功能,彻底的解法还在处理中;

临时解决方法的弊端:闹钟功能无法正常使用,无论是开机状态、待机状态等等;

更新rtc-sun4i.c文件(留意前面有‘+’号的更新):
diff --git a/drivers/rtc/rtc-sun4i.c b/drivers/rtc/rtc-sun4i.c
index 4ee00e9..85b46e3 100755
--- a/drivers/rtc/rtc-sun4i.c
+++ b/drivers/rtc/rtc-sun4i.c
@@ -112,6 +112,7 @@ static void __iomem *sunxi_rtc_base;
 static int sunxi_rtc_alarmno = NO_IRQ;
 static int losc_err_flag   = 0;
 
+#ifdef F23_ALARM
 /* IRQ Handlers, irq no. is shared with timer2 */
 static irqreturn_t sunxi_rtc_alarmirq(int irq, void *id)
 {
@@ -159,6 +160,7 @@ static void sunxi_rtc_setaie(int to)
                break;
        }      
 }
+#endif
 
 /* Time read/write */
 static int sunxi_rtc_gettime(struct device *dev, struct rtc_time *rtc_tm)
@@ -403,6 +405,7 @@ static int sunxi_rtc_settime(struct device *dev, struct rtc_time *tm)
        return 0;
 }
 
+#ifdef F23_ALARM
 static int sunxi_rtc_getalarm(struct device *dev, struct rtc_wkalrm *alrm)
 {
        struct rtc_time *alm_tm = &alrm->time;
@@ -527,6 +530,7 @@ static int sunxi_rtc_setalarm(struct device *dev, struct rtc_wkalrm *alrm)
 
        return 0;
 }
+#endif
 
 static int sunxi_rtc_open(struct device *dev)
 {             
@@ -544,18 +548,26 @@ static const struct rtc_class_ops sunxi_rtcops = {
        .release                        = sunxi_rtc_release,
        .read_time                      = sunxi_rtc_gettime,
        .set_time                       = sunxi_rtc_settime,
+#ifdef F23_ALARM
        .read_alarm                     = sunxi_rtc_getalarm,
        .set_alarm                      = sunxi_rtc_setalarm,
+#endif
 };
 
 static int __devexit sunxi_rtc_remove(struct platform_device *pdev)
 {
-       struct rtc_device *rtc = platform_get_drvdata(pdev);   
+       struct rtc_device *rtc = platform_get_drvdata(pdev);  
+
+#ifdef F23_ALARM
     free_irq(sunxi_rtc_alarmno, rtc);
+#endif
+
     rtc_device_unregister(rtc);
        platform_set_drvdata(pdev, NULL);
-      
+
+#ifdef F23_ALARM      
        sunxi_rtc_setaie(0);
+#endif
 
        return 0;
 }
@@ -621,6 +633,8 @@ static int __devinit sunxi_rtc_probe(struct platform_device *pdev)
                ret = PTR_ERR(rtc);
                goto err_out;
        }
+
+#ifdef F23_ALARM
        ret = request_irq(sunxi_rtc_alarmno, sunxi_rtc_alarmirq,
                          IRQF_DISABLED,  "sunxi-rtc alarm", rtc);
        if (ret) {
@@ -628,10 +642,20 @@ static int __devinit sunxi_rtc_probe(struct platform_device *pdev)
                rtc_device_unregister(rtc);
                return ret;
        }
+#endif
 
        sw_rtc_dev = rtc;
-       platform_set_drvdata(pdev, rtc);//rtc?

?pdev?

+       platform_set_drvdata(pdev, rtc);
       
+       /*clear the alarm count value!!!*/
+       writel(0x00000000, sunxi_rtc_base + SUNXI_RTC_ALARM_DD_HH_MM_SS_REG);
+       /*clear the alarm irq when init*/                              
+    writel(0x00000000, sunxi_rtc_base + SUNXI_ALARM_EN_REG);//0x114
+    /*clear the alarm irq*/
+    writel(0x00000000, sunxi_rtc_base + SUNXI_ALARM_INT_CTRL_REG);//0x118
+    /*Clear pending count alarm*/
+       writel(0x00000003, sunxi_rtc_base + SUNXI_ALARM_INT_STATUS_REG);//0x11c
+                              
        return 0;
       
        err_out:
@@ -696,3 +720,4 @@ MODULE_DESCRIPTION("Sochip sunxi RTC Driver");
 MODULE_AUTHOR("ben");
 MODULE_LICENSE("GPL");
 MODULE_ALIAS("platform:sunxi-rtc");

 

在C版A10软件上替换附件中的同名文件,否则会出现关机自动重启问题

    Android2.3替换lichee\linux-2.6.36\drivers\rtc\sun4i下的rtc-sw.c

Android4.0替换lichee\linux-3.0\drivers\rtc下的rtc-sun4i.c

 

84如何修改:设置--显示--重力感应坐标系?

 问一下,现在客户要求设置--显示--重力感应坐标系-- 里面,默认选择的是“默认坐标系”,而不是“特殊坐标系”,要改哪里?

修改位置:
android4.0:

framework/base/packages/settingprovider/res/values/default.xml

    default

android2.3.4:
android2.3.4\device\softwinner\crane-common\overlay\frameworks\base\packages\SettingsProvider\res\values\default.xml

 

85a10 NAND支持列表中:使用前请联系原厂更新固件,什么意思?

由于支持列表不断在更新,且以最新软件为准
如果固件不够新则可能没法支持所有列表中的型号

 

86android2.3.4有mkfs.sh,android4.0.3对应文件在哪?

 2.3.4的时候,有个mkfs.sh可以确定copy哪个驱动到系统里面,4.0.3好像没看到这个文件,是在哪里copy的?

 

 4.0是用extract-bsp来做拷贝工作的见脚本

\device\softwinner\common\vendorsetup.sh

cp -rf $LINUXOUT_MODULE_DIR modules/modules

会拷贝这目录下所有的文件:
\lichee\out\android\lib\modules\3.0.8+


如果想新添加一个驱动,就可以把驱动放进上面目录

 

87低电充电时,触摸屏容易误点或跳点

不充电时也会有,但充电时更明显

 

主要因触摸屏被干扰导致,充电时更明显是因为充电源的干扰相对较大。
此问题主要从两个方面解决:
1
。更换充电源
2
。调整触摸IC的工作频率和灵敏度

 

88低电开机在启动时几率性当机

电池电压在3.5V以上,此时系统显示电量为1%左右,插上PC的USB启动,系统几率性启动不了,停在logo界面

原因在于PCUSB源不足以支持系统开机,而此时电池又电量太低,
导致不能满足整个系统的开机功耗,从而开机失败,系统挂死。

解决方法是提高开机的门限电压,保证PC USB的情况下,电池能提供
额外的能源供开机使用!

 

89A10如何预装一些视频,怎么编进镜像里?

用量产工具就是了,量产工具有说明的。tools\production\OEMDataPack
里面有说明.

 

90sata驱动在哪? line in驱动在哪?

sata驱动位置linux-2.6.36:\drivers\ata\sw_ahci_platform.c  
linux3.0
还没有移植

line in
驱动参考sound/soc/sun4i/

 

91android的界面上出现一个小圆圈,并随触摸移动,这是什么原因

是因为device对应目录下缺少TP驱动对应的idc文件,
所以系统就默认为鼠标,因此出现此圆圈!
添加idc文件即可!
注意:该idc文件的名字必须以该触摸屏驱动注册input设备时定义的名字命名

 

92android4.0如何修改system分区大小

1。修改sys_config.fex中的
    [partition3]

    class_name  = DISK
    name        = system
    size_hi     = 0
    size_lo     = 524288     //此处单位为K
    user_type   = 2

    ro            = 0
2。修改device对应目录下的BoardConfig.mk中的
    BOARD_SYSTEMIMAGE_PARTITION_SIZE := 536870912  //
此处单位为byte

然后重新编译打包即可

 

93android4.0修改system分区后无法启动

首先确认修改方法是否正确,可在本站内搜索“anroid4.0 system分区修改”
其次升级的时候注意退出livesuit,再重新打开升级!

 

94google map导航系统会重启

在不连接wifi的情况下,使用google map导航会重启

android2.3的这个问题通过更新gps驱动可解决
请找相关人员更新gps.ko gps.sun4i.so

 

95android4.0 v0.8版本原生态录音软件不可用

Hi mp3的可以,但android原生态的不行

系统自带录音软件是amr格式,需修改设备目录下media_profiles.xml文件,加入红色部分:

            minBitRate="64000" maxBitRate="3000000"
        minFrameWidth="320" maxFrameWidth="1600"
        minFrameHeight="240" maxFrameHeight="1200"
        minFrameRate="1" maxFrameRate="30" />

            minBitRate="12200" maxBitRate="51200"
        minSampleRate="8000" maxSampleRate="44100"
        minChannels="1" maxChannels="1" />

            minBitRate="12200" maxBitRate="51200"
        minSampleRate="8000" maxSampleRate="44100"
        minChannels="1" maxChannels="2" />

 

96如何在android4.0的状态上添加音量按钮

V09版本中,在目录frameworks\base\packages\SystemUI\res\valuesdefaults.xml文件中修改为trueOK

 

97android4.0 v0.8版本上播放视频有声音没图像

两种情况:
1. 800*480
上修改DPI=160,播放视频有声音没图像
2. 9.7寸屏上播放某些视频暂停后再播,没有图像,需要摸一下屏图像才出来

此问题为视频播放的图层处理有问题, v0.9上已经修正!

 

98,v0.9版本的camera一拍照就死掉了

v0.9版本的camera一拍照就死掉了

 

v0.9版本camera合入了谷歌android4.0.3的特性,其中一项特性是支持zoom功能,而0.9前后摄像头这个功能必须打开才正常,所以在camera.cfg中前后摄像头的zoom相关配置需修改成:
used_zoom = 1

key_zoom_supported = true
key_smooth_zoom_supported = false
key_zoom_ratios = 100,120,150,200,230,250,300
key_max_zoom = 30
key_default_zoom = 0

 

99android2.3中如何修改静态墙纸

1)修改默认的应该放在frameworks\base\core\res\res\drawable下,
名字必须为default_wallpaper.jpg

2)系统自带的静态壁纸在\packages\apps\Launcher\res\drawable-mdpi资源文件中,
添加自定义墙纸时,需要添加适合分辨率的图片两张,其中一张是small结尾,同时在

\packages\apps\Launcher\res\values-mdpi\wallpapers.xml中添加
wallpaper_add项即可

 

100如何将预存资料打包到固件中?

有些音视频的资料希望能预置到固件中,该如何做?

 

请使用OEM数据打包工具,存放目录:\lichee\tools\tools_win\OEMDataPacket_v102.rar
相关使用说明参见《OEM Demo数据打包工具使用手册》

 

101android2.3中多路UART同时使用有问题

将A10的8路uart全部打开,发现部分uart无法正常使用。

问题在于uart驱动的resource address有问题,修改linux-2.6.36/drivers/serial/sw_uart.c中如下代码:
static struct resource sw_uart_res[8][2] = {

    /* uart0 resource */
    {
+        {.start = UARTx_BASE(0),      .end = UARTx_BASE(0) + UART_BASE_OS, .flags = IORESOURCE_MEM},
-         {.start = UARTx_BASE(0),      .end = UARTx_BASE(0) + UART_BASE_OS-1, .flags = IORESOURCE_MEM},
/*base*/
        {.start = SW_INT_IRQNO_UART0, .end = SW_INT_IRQNO_UART0,           .flags = IORESOURCE_IRQ}, /*irq */
    },
把每一路的uart.end都如上修改即可!

 

 

 

102如何让加大system分区的大小

对分区进行更改加大到,512M,需要更改以下:
1).
crane_pack的工具内将system的分区大小设成600M.(:通常nand的实际物理分区的大小要比映像文件的大小要大)
2).
mkimg的时侯需要将原有的system大小128M更改成512M.更改device/sofwinner/crane_xxx/mkfs.sh:
ROOTIMG_SIZE=32000
SYSTEMIMG_SIZE=512000
DATAIMG_SIZE=256000
RECOVERYIMG_SIZE=32000

 

103android4.0里面如何修改最低亮度

android4.0里面如何修改最低亮度

/frameworks/base/core/res/res/values/config.xml:487:    

20把这数字改大

 

104为什么wifi连接出错后就再也连不上

为什么wifi连接出错后就再也连不上,除非恢复出厂设置和重新烧录才能用

 

原因:文件系统没写进去就断电了

先手动:把etc/wifi/wpa_supplicant.conf复制到data/misc/wifi/wpa_supplicant.conf再次打开wifi看看,如果可以连接了,就进行下步的修改:
 

在wifi.c中,ensure_config_file_exists这个函数中:

if (access(SUPP_CONFIG_FILE, R_OK|W_OK) == 0) {

           FILE *fp = fopen(SUPP_CONFIG_FILE, "r");

           if( fp == NULL ) {

                  LOGE("open wpa_supplicant.conf failed!");

                  unlink(SUPP_CONFIG_FILE);

           } else {

              char tmp_buf[200]={'\0'};    

              char *p_strstr1 = NULL;

              char *p_strstr2 = NULL;               

              int ret = fread(tmp_buf, 200, 1, fp);

              if (ret== 0) {

                 LOGD("fread ok.");

              }

              fclose(fp);

               

              p_strstr1 = strstr(tmp_buf, "ctrl_interface");

              p_strstr2 = strstr(tmp_buf, "update_config");

              if ((p_strstr1 != NULL) && (p_strstr2 != NULL)) {                         

                  return 0;// content ok.

              } else {

                 LOGE("content destroy!");

                 unlink(SUPP_CONFIG_FILE);

              }          

           }

    } else if (errno != ENOENT) {

        LOGE("Cannot access \"%s\": %s", SUPP_CONFIG_FILE, strerror(errno));

        return -1;

}

 

105android4.0中如何设置默认字体

修改

android4.0.3\frameworks\base\core\java\android\content\res\Configuration.java这个文件里面,454行开始fontScale = 1;

        mcc = mnc = 0;

        locale = null;

改为:fontScale = 1.15f 大字体

 

106如何设置wifi,使其不扫描14信道

因有些国家不让扫描14信道,该如何处理?

 

因有些国家不让扫描14信道,所以去掉

 

修改

在frameworks\base\services\java\com\android\server\WifiService.java的218行:

  /**

     * Number of allowed radio frequency channels in various regulatory domains.

     * This list is sufficient for 802.11b/g networks (2.4GHz range).

     */

private static int[] sValidRegulatoryChannelCounts = new int[] {11, 13, 14};

更改为{11,13}或者private static int sValidRegulatoryChannelCounts = new int(13);

 

107如何添加TVIN功能

如何添加TVIN功能

 

在camera.cfg里面做如下配置:

;-------------------------------------------------------------------------------

;用于camera的配置

;

;采用格式:

; key = key_value

;注意: 每个key需要顶格写;

;          key_value紧跟着key后面的等号后面, 位于同一行中;

;          key_value限制大小为256字节以内;

;         

;-------------------------------------------------------------------------------

 

;-------------------------------------------------------------------------------

; 1 for single camera, 2 for double camera

;-------------------------------------------------------------------------------

number_of_camera = 1

 

;-------------------------------------------------------------------------------

; CAMERA_FACING_BACK

; TVIN

;-------------------------------------------------------------------------------

camera_id = 0

 

;-------------------------------------------------------------------------------

; 1 for CAMERA_FACING_FRONT

; 0 for CAMERA_FACING_BACK

;-------------------------------------------------------------------------------

camera_facing = 0

 

;-------------------------------------------------------------------------------

; driver device name

;-------------------------------------------------------------------------------

camera_device = /dev/video0

 

;-------------------------------------------------------------------------------

; device id

; for two camera devices with one CSI

;-------------------------------------------------------------------------------

device_id = 0

 

used_preview_size = 1

key_support_preview_size = 720x480

key_default_preview_size = 720x480

 

used_picture_size = 1

key_support_picture_size = 720x480

key_default_picture_size = 720x480

 

used_flash_mode = 0

key_support_flash_mode = on,off,auto,red-eye,torch

key_default_flash_mode = off

 

used_color_effect=0

key_support_color_effect = none,mono,negative,sepia,aqua

key_default_color_effect = none

 

used_frame_rate = 1

key_support_frame_rate = 30

key_default_frame_rate = 30

 

used_focus_mode = 0

key_support_focus_mode = auto,infinity,macro,fixed

key_default_focus_mode = auto

 

used_scene_mode = 0

key_support_scene_mode = auto,auto,portrait,landscape,night,night-portrait,theatre,beach,snow,sunset,steadyphoto,fireworks,sports,party,candlelight,barcode

key_default_scene_mode = auto

 

used_white_balance = 0

key_support_white_balance = auto,incandescent,fluorescent,warm-fluorescent,daylight,cloudy-daylight

key_default_white_balance = auto

 

used_exposure_compensation = 0

key_max_exposure_compensation = 4

key_min_exposure_compensation = -4

key_step_exposure_compensation = 1

key_default_exposure_compensation = 0

 

; only for facing back camera

used_zoom = 0

key_zoom_supported = false

key_smooth_zoom_supported = false

key_zoom_ratios = 100,120,150,200,230,250,300

key_max_zoom = 6

key_default_zoom = 0

 

然后把TVD的驱动放入lichee\linux-2.6.36\drivers\media\video\中,在makefile 和kconfig中添加编译配置

 

修改android2.3.4\device\softwinner\crane-common\hardware\libcamera\V4L2Camera.cpp在函数V4L2Camera::v4l2SetVideoParams()中修改:把videoIn->format.fmt.pix.pixelformat = videoIn->formatIn; 改为videoIn->format.fmt.pix.pixelformat = V4L2_PIX_FMT_NV12;

 

修改android2.3.4\device\softwinner\crane-common\hardware\libcamera\CameraHardware.cpp中:把所有的 DISP_SEQ_VUVU 改为DISP_SEQ_UVUV。

 

108VGA输出1080P播放视频时,移动鼠标会抖动

修改VGA抖动问题先修改sys_config1.xx.fex里面的这段配置,如下:

 

[disp_init]

disp_init_enable         = 1

disp_mode                = 0

                         

screen0_output_type      = 4

screen0_output_mode      = 10

screen1_output_type      = 1

screen1_output_mode      = 4

fb0_framebuffer_num      = 2

fb0_format               = 10

fb0_pixel_sequence       = 0

fb0_scaler_mode_enable   = 1

fb1_framebuffer_num      = 2

fb1_format               = 10

fb1_pixel_sequence       = 0

fb1_scaler_mode_enable   = 0

 

然后修改

lichee\linux-2.6.36\drivers\video\sun4i\disp\dev_disp.c 里面找到这个函数:long disp_ioctl(struct file *file, unsigned int cmd, unsigned long arg)

找到这case DISP_CMD_SET_COLORKEY 这样改:

 

case DISP_CMD_SET_COLORKEY:

     {

         __disp_colorkey_t para;

     if(copy_from_user(¶, (void __user *)ubuffer[1],sizeof(__disp_colorkey_t)))

     {

     return  -EFAULT;

     }

         para.red_match_rule= 2;

         para.green_match_rule= 2;

         para.blue_match_rule= 2;

         para.ck_min.red = 0;

         para.ck_min.green = 0;

         para.ck_min.blue = 0;

         para.ck_max.red = 0;

         para.ck_max.green = 0;

         para.ck_max.blue = 0;

     ret = BSP_disp_set_color_key(ubuffer[0], ¶);

    break;

}

109Launcher显示的列数如何修改

 Launcher显示的列数如何修改,比如改为7列

 

将Launcher修改为7列, 如下两种方法均可.

方法1: workspace.xml文件中, 在 launcher:defaultScreen="2" 的下面增加一行: launcher:cellCountX="7"

方法2: dimens.xml文件中, 修改workspace_cell_width的值. 改小, 使屏幕宽度除以这个值大于7.

110超清播放器分享功能问题

在A13的1.5版本上,客户在美国那边发现在超清播放器里面图片分享的功能,如果只安装了gmail或者email的时候无法使用,但是安装了比如facebook、twitter这些东西之后就可以使用了

在 frameworks\base\core\java\android\widget\ActivityChooserView.java

 public ActivityChooserView(Context context, AttributeSet attrs, int defStyle) { 这个函数大概 239 行,

 mAdapter = new ActivityChooserViewAdapter();加上

        mAdapter.setShowFooterView(true);

2

frameworks/base/core/java/android/widget/ActivityChooserView.java
 private void updateAppearance()   line 490

//  if (mAdapter.getCount() > 0) {
  if (mAdapter.getActivityCount() > 0) {  
              mExpandActivityOverflowButton.setEnabled(true);
         } else {

             mExpandActivityOverflowButton.setEnabled(false);

111升级后首次开机不显示音量图标

升级后首次开机需要先待机锁屏再解锁,才能显示音量图标

 

在 TabletStatusBar.java文件的 makeStatusBarView 函数中,

mVolumeDownButton = mNavigationArea.findViewById(R.id.volume_down);

mVolumeUpButton = mNavigationArea.findViewById(R.id.volume_up);

// 增加下面这个if分支

if(mContext.getResources().getBoolean(R.bool.hasVolumeButton))

{

mVolumeUpButton.setVisibility(View.VISIBLE);

mVolumeDownButton.setVisibility(View.VISIBLE);

}

112视频实时旋转

转动时,视频跟着会旋转

1.frameworks\base\services\surfaceflinger\SurfaceTextureLayer.cpp中修改一下函数

uint32_t SurfaceTextureLayer::getParameter(uint32_t cmd) 

{

    uint32_t res = 0;

    

/* if(cmd == NATIVE_WINDOW_CMD_GET_SURFACE_TEXTURE_TYPE) {

return 1;

}

*/

 

    sp layer(mLayer.promote());

    if (layer != NULL) 

    {

        res = layer->getDisplayParameter(cmd);

    }

    

    return res;

}

 

 

2.在frameworks\base\policy\src\com\android\internal\policy\impl\PhoneWindowManager.java 

rotationForOrientationLw()函数里 注释掉多余的

// if(MediaPlayer.isPlayingVideo())

// {

// Log.i(TAG, "MediaPlayer.isPlayingVideo");

// if(SystemProperties.getInt("ro.sf.hwrotation",0)==270)

// {

// sensorRotation = Surface.ROTATION_90;

// }

// else

// {

// sensorRotation = Surface.ROTATION_0;

// }

// }

// else

// {

Log.i(TAG, "MediaPlayer.is not PlayingVideo");

sensorRotation = mOrientationListener.getProposedRotation(); // may be -1

// }

 

3.修改 packages\apps\Gallery2\AndroidManifest.xml  修改

        

                android:label="@string/movie_view_label"

android:configChanges="keyboardHidden|orientation"

                android:theme="@style/Theme.Movie" >

 

113开启wifi连3G会出现wifi和3G两个图标,退出3G后3G图标不消失

 开启wifi连3G会出现wifi和3G两个图标,退出3G后3G图标不消失,还是两个.

修改如红色代码所示:


./frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java

 void refreshViews() {
        Context context = mContext;

        int combinedSignalIconId = 0;
        int combinedActivityIconId = 0;
        String combinedLabel = "";
        String wifiLabel = "";
        String mobileLabel = "";
        int N;

         if (mWifiConnected && !mDataConnected) {
             mDataSignalIconId = mPhoneSignalIconId = 0;
            mobileLabel = "";
        }
  
      if (!mHasMobileDataFeature) {
            mDataSignalIconId = mPhoneSignalIconId = 0;
            mobileLabel = "";
        } else {

114高清播放器图片预览时,不是居中预览

同上

 

问题补充 2012/08/09 16:54

在高清播放器中,选择 slide (播放幻灯片),图片浏览时,有些图片不是居中显示

 

修改
 packages\apps\Gallery2\src\com\android\gallery3d\ui\SlideshowView.java  
     public void apply(GLCanvas canvas) {

//            float centerX = viewWidth / 2 + mMovingVector.x * mProgress;

//            float centerY = viewHeight / 2 + mMovingVector.y * mProgress;

            

            float centerX = viewWidth / 2 ;

            float centerY = viewHeight / 2 ;

//            float centerX = viewWidth / 2 + mMovingVector.x * mProgress;

//            float centerY = viewHeight / 2 + mMovingVector.y * mProgress;

            

            float centerX = viewWidth / 2 ;

            float centerY = viewHeight / 2 ;

约 152
    // float centerX = viewWidth / 2 + mMovingVector.x * mProgress;
   //  float centerY = viewHeight / 2 + mMovingVector.y * mProgress;
  float centerX = viewWidth / 2 ;
  float centerY = viewHeight / 2 ; 

114camera.cfg中camera_id和device_id的区别

camera.cfg中camera_id和device_id的区别

 

amera_id是给android系统用的id,如果只有一个摄像头,无论是前置还是后置摄像头, android系统中的camera_id都是0;如果是双摄像头, camera_id = 0对应后置, 1对应前置;如果一个CSI接两个摄像头,camera_id也是设置为01来对应后置或者前置摄像头;device_id是指同一个CSI上接两个sensor时来区分打开哪一个摄像头的;

 

115VGA输出偏白怎么办

VGA输出偏白怎么办

 

VGA显示偏白,因为板子上VGA输出的 RGB输出3根线对地接的是75欧姆的电阻,所以把TVE_008设置为0x2<<16,匹配75欧姆的终端

 

116LCD显示相位的调节

lcd_io_cfg0

这个参数提供RGB同步屏的相位调节。

lcd_dclk_freq < 40时,该参数可设置为0x00000000,0x04000000,0x10000000,0x14000000,0x20000000,0x24000000,对应LCD DCLK的六个不同相位。

lcd_dclk_freq > 40时,该参数可设置为0x00000000,0x04000000对应LCD DCLK的两个不同相位。

 

117A10串口5疑问

串口5配置如下。

[uart_para5]

uart_used = 1

uart_port = 5

uart_type = 2

uart_tx         = port:PI10<3>

uart_rx         = port:PI11<3>

 

在2.3.4 SDK下串口一切正常,用ADB SHELL进入机器后

输入 echo test > /dev/ttyS5后,在PC端用串口工具 9600波特率,可以看到打印 test

但在4.0 SDK系统上,输入 echo test > /dev/ttyS5 后PC端没看到任何东西。

 

经测试uart是没问题的,很可能的是由于驱动注册tty设背的方式是枚举的所以有可能uart5生成的设备名不是ttyS5

 

 

118怎么设置启动就是hdmi显示

1.lichee\tools\pack\chips\sun4i\wboot\bootfs\boot.ini中更改以下
display_device= 3

display_mode  = 4  
2.sys_config1.fex中更改以下
screen0_output_type      = 3

screen0_output_mode      = 4

119如何设置IO中断频率

针对有些中断时间特别短的设置:比如:触摸屏中断发生时,只有5个us的低电平。若要设置中断频率为24MHZ,该在哪儿设置?

 

针对有些中断时间特别短的设置:比如:触摸屏中断发生时,只有5个us的低电平。

以触摸屏驱动为例,设置中断频率为24MHZ

在驱动定义IO中断寄存器偏移地址宏:#define PIO_INT_DEB_OFFSET 0x218

在probe函数中设置中断的地方设置该寄存器:

       reg_val = readl(gpio_addr + PIO_INT_DEB_OFFSET);

    reg_val |= 1;

    writel(reg_val,gpio_addr + PIO_INT_DEB_OFFSET);

120linux3.0里面如何修改音频驱动的音量设置

想限制最大的音量级别,linux3.0里面在哪儿修改音量设置?

 

Linux/sound/soc/sun4i/sun4i-codec.c里面的codec_init里面的
codec_wr_control(SUN4I_DAC_ACTL,0x6,VOLUME,0x3b)最后一项,向下1代表一个db

 

121如何动态修改内核的打印等级

默认内核打印没有出来,想降低打印等级该如何做?

 

proc系统中可以修改,具体如下:
echo x > /proc/sys/kernel/printk

其中x表示允许的打印等级,数值越大,等级越低

 

 

 

你可能感兴趣的:(全志问题解决方法)