小编mk.*_*k..的帖子

su如何在android上运行?它的先决条件是什么?什么是Android上的根源?

可能重复:su的含义是什么:process = Runtime.getRuntime().exec("su");

我厌倦了尝试所有不同的事情,但我仍然没有成功地理解什么时候会起作用.什么是Android中的设备?有人请帮帮我.

我回答了以下问题.我在那里发布的解决方案,我测试过它也有效.

在android中添加图像文件的完全权限.

这是我的问题:

我试过以下.

复制了su.

已安装SuperUser.apk,

从程序i调用su然后使用新创建的进程,我执行了所需的操作.

这有2个结果.

1)当设备被root(如在z4root中执行Permanent root选项)时,它可以工作,它会更改系统文件权限.

2)当设备没有root时,它不起作用.

请解释z4root执行哪些额外的操作,这使得任务成为可能.请简要说明一下.

如果我的问题不明确,请告诉我.万分感谢..

android root su

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

在vim中用正斜杠'/'替换反斜杠'\'

我有一些脚本(linux)正在生成关于Windows的o/p.我希望它能够/home/manty/...生成\home\manty\...当我尝试一直一个接一个地改变时,这非常烦人.所以只是为了这个目的,我要离开vim并去gedit执行"查找和替换".我怎么能在vim中做到这一点?

我试过以下:

:%s/\\/\/
Run Code Online (Sandbox Code Playgroud)

它只在两个地方发生了变化.我尝试了其他几种组合,但没有任何结果.

linux vim

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

对H264 NAL流进行碎片整理(最初为1722个avb数据包)

手头的任务:

捕获通过以太网端口传输的1722个avb视频数据包,并在android中将其作为实时视频播放.视频包是NAL H.264流.

现有资料:

从以太网端口读取数据并捕获数据包的代码已准备就绪.简而言之,我有我的有效载荷数据.

我在找什么:

  1. 可以分析这些NAL H264数据包的C代码.
  2. 从连续的有效载荷流中识别起始帧,中间帧和结束帧.
  3. 合并所有相关的H264 NAL有效载荷以形成视频帧.

我猜上面的过程称为去碎片.一旦去碎片化,我将把这个视频帧发送到android视频视图并在屏幕上显示它们.

任何有用的资源将非常感激.

java-native-interface android ethernet video-streaming h.264

7
推荐指数
1
解决办法
680
查看次数

如果在递归复制期间存在软链接,则ADB推送失败

我在目录中有很多文件.其中很少是软链接.

当我单独复制时,软链接副本工作正常,没有任何问题.

$ adb push .libs/libgsti.la /sdcard/temp/.libs/
121 KB/s (5196 bytes in 0.041s)
Run Code Online (Sandbox Code Playgroud)

但是当我尝试复制包含软链接的目录中的所有文件时,尝试复制带有错误的软链接时会失败:

功能未实现

$ adb push .libs/ /sdcard/tmp/.libs/
...... (All success)
failed to copy '.libs/libgsti.la' to '/sdcard/temp/.libs/libgsti.la': Function not implemented
Run Code Online (Sandbox Code Playgroud)

这个问题有解决方法吗?

android adb

6
推荐指数
0
解决办法
482
查看次数

struct mystruct a = b; 这有效吗?直接赋值结构变量,它在C中是否有效?

我有以下代码.

struct rectangle {
int length;
int breadth;
};

int main (void) 
{
    struct rectangle a,b;
    a.length = 10;
    a.breadth = 5;

    b=a;  
    printf("\nValues of b.length = %d, b.breadth=%d\n",b.length,b.breadth);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

上面的赋值是一个有效的语句吗?(b = a)我在我的项目中这样做了.我得到了评论评论说,这种类型的任务是错误的,我应该使用memcpy.我打印了b的值并检查了.值是正确的.我想知道为什么上面的任务是错的?如果将结构变量传递给函数并将其捕获到单独的变量中会发生什么错误?我希望我对我的问题很清楚.如果我不清楚我的问题,请回复我.

c coding-style

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

如何使用多个线程进行zlib压缩(相同的输入源)

我的目标是在并行线程中压缩相同源的数据.我已经定义了列表中的作业,这些作业具有读取信息(每个作业中500kb-1MB).

我的压缩器线程将使用ZLIB压缩每个块的数据并将其存储在相应作业的outbuf中.

现在,我想合并所有这些并创建一个标准ZLIB格式的输出文件.

从ZLIB RFC和浏览了pigzee的来源后,我明白了

ZLIB标题如下所示

     +---+---+
     |CMF|FLG| (2 bytes)
     +---+---+
     +---+---+---+---+
     |     DICTID    | (4 bytes. Present only when FLG.FDICT is set)
     +---+---+---+---+
     +=====================+
     |...compressed data...| (variable size of data)
     +=====================+
     +---+---+---+---+
     |     ADLER32   |  (4 bytes of variable data)
     +---+---+---+---+
Run Code Online (Sandbox Code Playgroud)

就我而言,也没有字典.

所以当我组合两个压缩单元时,所有单元的标题都是相同的.

因此,我正在做以下的操作.

  1. 对于第一个单元,我正在编写标头+压缩数据.

  2. 对于第二个单元到最后一个单元,我只写了压缩数据(没有标题,没有预告片)

  3. 完成所有单元后,我正在使用adlrer32_combine()并将所有作业输出数据的校验和转换为最终的一个adler 32,然后我在底部更新输出文件.

但问题是,我在deflate期间收到错误,说某些地方的数据无效.

有人已经尝试过这样的事吗?任何相关信息都会非常有用.

linux compression multithreading zlib

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

如何在C中检查变量是否为"const"限定符类型?

要检查的示例代码

#include<stdio.h>

int main(void)
{
    const int i = 1;
    printf("Variable i is %s\n",
           __builtin_constant_p(i) ? "a const variable" : "not a const variable");
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出:

Variable i is not a const variable
Run Code Online (Sandbox Code Playgroud)

__builtin_constant_p()不是确定一个变量的类型是否为右侧的API const或没有?

c gcc const

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

open/dev/mem - 不允许操作

我正在研究ubuntu.

我想打开/dev/mem,我正在接受permission denied

int32_t open_memdev()
{
        int32_t fd;

        fd = open("/dev/mem", O_RDONLY);
        if (fd < 0) {
                printf("Failed to open /dev/mem : %s\n", strerror(errno));
                return-EINVAL;
        }

        return fd;
}
Run Code Online (Sandbox Code Playgroud)

此代码始终打印 "Failed to open /dev/mem : Operation not permitted"

我在SO上搜索过这个

  1. 访问权限-的-DEV-MEM

  2. 访问-mmaped-DEV-MEM

这些q似乎讨论了无法访问超过1 MB的问题,但我的问题是我甚至无法打开一次.

添加详细信息如果有帮助:

1)我检查了配置是否启用了CONFIG_STRICT_DEVMEM.

2) ls -l /dev/mem
crw-r----- 1 root kmem 1, 1 2014-03-13 13:57 /dev/mem
Run Code Online (Sandbox Code Playgroud)

如果需要其他信息,请与我们联系.

c linux memory-management

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

sizeof vs sizeof()在标准C中?

我看到一些直接使用sizeof的代码,并想知道它是否是标准的C.令我惊讶的是,它工作得很好.这是一个例子:

#include <stdio.h>
#include <string.h>

int main()
{
   char buff[255];
   printf("size %d\n", sizeof buff);
   return 0;
}

Output: size 255
Run Code Online (Sandbox Code Playgroud)

如您所见,在上面的示例中,我使用的是sizeof <variable>代替sizeof(<variable>)

请多点亮一下.

c sizeof

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

如何使用多线程进行 zlib 压缩

我有大量数据(大约 2 GB)需要使用 zlib (deflate()) 进行压缩。我目前正在一次读取 500 kb 的数据,将其压缩并将其写入我的输出文件。

使用 1 个线程,一切都很好。数据被压缩,我可以写它并解压缩它。

有 2 个线程时,进程挂在 deflate() 调用中。

这是我的 2 个 zlib comp 线程调用的函数的概要。

static z_stream z_str;

zlib_compress(...., bool last, bool first)
{

    if (first)
        deflateInit(&z_str, Z_DEFAULT_COMPRESSION);

    if (last)
        flush = Z_FINISH;
    else
        flush = Z_SYNC_FLUSH;

....
....
    status = deflate(&z_str, flush);
...
...
    if (last)
        deflateEnd(&z_str);

}
Run Code Online (Sandbox Code Playgroud)

据我了解,这两个调用在调用 deflate() 时都指的是同一个 zstream,这会导致不受欢迎的行为。

我试图将 z_str 作为局部变量并相应地修改代码。但是在解压缩时,它假设文件的总大小为 512,而这实际上只是第一个数据块。

知道如何实现这一目标吗?

compression multithreading zlib

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