小编Pau*_*zzi的帖子

我的自定义selinux策略似乎被android系统忽略了

我在基于AOSP的Android 7.1.2(更准确地说是基于sony开放设备树)上正确运行自定义selinux策略时遇到一些麻烦.

我的问题是审计日志不断告诉我我实际添加的文件访问规则丢失.我还将audit2allow创建的规则复制到我的策略文件中,但即使那些规则也没有正常工作.

那么,让我们深入了解细节:

我创建了一个名为vendor_app的自定义域.此域根据其签名分配给应用程序.我在mac_permissions.xml中添加了一个条目来分配seinfo字段供应商.在seapp_contexts中,我像这样分配vendor_app域:

user=_app seinfo=vendor domain=vendor_app type=app_data_file levelFrom=user
Run Code Online (Sandbox Code Playgroud)

我的应用程序在vendor_app上下文中正确启动:

# ps -Z | grep permissiontest
u:r:vendor_app:s0:c512,c768    u0_a109   4110  508   1620732 79584 SyS_epoll_ 0000000000 S com.vendor.android.permissiontest
Run Code Online (Sandbox Code Playgroud)

所以,现在对于根本不起作用的部分.在vendor_app上下文中运行的应用程序将获得/ persist/vendor中文件的读/写访问权限.为了创建nessesary规则,我将一个名为vendor.te的文件添加到设备目录中的sepolicy文件夹中,其中包含以下内容:

type vendor_app, domain;
type vendor_file, file_type, data_file_type;
# permissive vendor_app;

app_domain(vendor_app)
net_domain(vendor_app)
bluetooth_domain(vendor_app)

allow vendor_app persist_file:dir r_dir_perms;
allow vendor_app vendor_file:dir create_dir_perms;
allow vendor_app vendor_file:file create_file_perms;

allow vendor_app audioserver_service:service_manager find;
allow vendor_app cameraserver_service:service_manager find; …
Run Code Online (Sandbox Code Playgroud)

android selinux m4 seandroid

8
推荐指数
1
解决办法
2155
查看次数

如何重启或关闭Genymotion设备?

我正在关注在Genymotion VM中安装Google Play的指南.导游说要跑adb reboot.我怎么做?

对指南的评论问同样的问题,有人回复说:adb connect 192.168.56.101接着是adb -e reboot.但输入第一个命令会给我错误:

adb server is out of date.  killing...
cannot bind 'tcp:5037'
ADB server didn't ACK
* failed to start daemon *
error: 
Run Code Online (Sandbox Code Playgroud)

在模拟器上长按电源按钮,在Android内部启用选项以关闭设备但是当我尝试以这种方式关闭设备时(通过Android),模拟器挂起"关闭..."并且不转关闭设备.

Linux Mint 17; Genymotion 2.3.1; Android 4.4.4

android adb genymotion

6
推荐指数
2
解决办法
2万
查看次数

android UsbDeviceConnection.requestWait() 超时

我正在尝试将 USB 调谐卡连接到 android 设备(版本 19)。

目前我正在使用 UsbDeviceConnection.requestWait() 读取数据,然后是 16kb 的 UsbRequest.queue。一切正常。

如果调谐器没有输入,USB 将不会接收任何数据。在这种情况下, requestWait() 将永远阻塞。我尝试使用 UsbRequest.close 和 UsbRequest.cancel 但没有用。

我查看了链接“ http://code.google.com/p/android/issues/detail?id=39522 ”,它提到了同样的问题,但需要编写一个新的 JNI 接口。

我的要求是我应该能够摆脱等待并且不想尝试编写新的 JNI 接口(按照上面的帖子)。请建议。

usb android android-usb

5
推荐指数
0
解决办法
1275
查看次数

Android Studio渲染异常:"LinearLayout的mBaselineAlignedChildIndex指向不知道如何获取其基线的视图"

Android Studio中此设计视图错误的原因是什么?

渲染期间引发异常:mBaselineAlignedChildIndex of LinearLayout points to a View that doesn't know how to get its baseline.

这是布局:

    <ScrollView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/mainListView"
            android:orientation="vertical">

            <ImageButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="@drawable/bg_btn_btm_actionbar"
                android:src="@mipmap/ab_solid_example"/>

            <ListView
                android:id="@+id/eventStates"
                android:layout_width="wrap_content"
                android:layout_height="40dp"
                android:background="@drawable/listviewimg"
                android:drawSelectorOnTop="true"
                android:footerDividersEnabled="true"
                android:headerDividersEnabled="true"
                android:textColor="#000000" />

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content" >

                <Button
                    android:id="@+id/btn_cancel_callresult"
                    android:layout_width="153dp"
                    android:layout_height="wrap_content"
                    android:layout_gravity="bottom"                             android:layout_marginRight="@dimen/abc_action_bar_default_padding_material"
                    android:background="@color/white"
                    android:onClick="cancelCallResult"
                    android:text="Cancel"
                    android:textAppearance="?android:attr/textAppearanceLarge"
                    android:textColor="@color/white" />



            </LinearLayout>
        </LinearLayout>
    </ScrollView>

</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

xml android android-studio

5
推荐指数
1
解决办法
480
查看次数

Android Binder示例

我在C/C++中寻找简单的绑定器IPC示例.最近我开始阅读关于Android Binder基本版(http://bharathi.posterous.com/android-binder)并且通过Android源码中的代码也开始阅读.大部分的binder使用部分都是用C++编写的.有人可以解释为什么使用C++而不是C?

android android-binder

4
推荐指数
1
解决办法
2万
查看次数

为什么我需要READ_CONTACTS权限来读取通话记录?

该应用程序正在读取通话记录.在大多数设备上都很好,其他一些设备也SecurityException适合READ_CONTACTS(我没有,也不想要我的设备)AndroidManifest.xml.

为什么这样,我能为此做点什么吗?也许,通过投影,这并不能CACHED_NAME

android android-securityexception

3
推荐指数
1
解决办法
3171
查看次数

java.lang.NullPointerException:尝试在空对象引用上调用虚方法'void java.util.Calendar.setTimeInMillis(long)'

我是Android新手,我目前正在研究闹钟应用.但是当我运行它时,我得到了一个NullPointerException.任何人都可以帮助我吗?这是我的代码:

public class MainActivity extends ActionBarActivity {
    private Calendar c;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        final TextView textView=(TextView)findViewById(R.id.textview1);
        final Button setbtn=(Button)findViewById(R.id.setclock);
        final Button unsetbtn=(Button)findViewById(R.id.unsetclock);
        setbtn.setOnClickListener(new OnClickListener(){
            @Override
            public void onClick(View v){
                long current=System.currentTimeMillis();
                c.setTimeInMillis(current);
                int mHour=c.get(Calendar.HOUR_OF_DAY);
                int mMinute=c.get(Calendar.MINUTE);
                new TimePickerDialog(MainActivity.this, new TimePickerDialog.OnTimeSetListener() {

                    @Override
                    public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
                        c.setTimeInMillis(System.currentTimeMillis());
                        c.set(Calendar.HOUR_OF_DAY,hourOfDay);
                        c.set(Calendar.MINUTE, minute);
                        c.set(Calendar.SECOND,0);
                        c.set(Calendar.MILLISECOND,0);
                        Intent intent=new Intent(MainActivity.this, CallAlarm.class);
                        PendingIntent sender= PendingIntent.getBroadcast(MainActivity.this,
                                1, intent, PendingIntent.FLAG_UPDATE_CURRENT);
                        AlarmManager am=(AlarmManager)getSystemService(ALARM_SERVICE);
                        am.set(AlarmManager.RTC_WAKEUP,c.getTimeInMillis(),sender);
                        String tmpS= format(hourOfDay)+""+format(minute); …
Run Code Online (Sandbox Code Playgroud)

android nullpointerexception android-actionbar

2
推荐指数
1
解决办法
1万
查看次数